xfs
[Top] [All Lists]

Re: SGI XFS on ppc

To: Thomas Graichen <graichen@xxxxxxxxxxxxx>, thomas.graichen@xxxxxxxxxxxxx
Subject: Re: SGI XFS on ppc
From: Steve Lord <lord@xxxxxxx>
Date: Wed, 02 Aug 2000 15:51:38 -0500
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: Message from Thomas Graichen <news-innominate.list.sgi.xfs@xxxxxxxxxxxxx> of "02 Aug 2000 20:06:39 GMT." <news2mail-8m9v0f$a6k$1@xxxxxxxxxxxxxxxxxxxxxx>
Sender: owner-linux-xfs-announce@xxxxxxxxxxx
Hmmm, so the super block got read from disk, but you did not get much
further than this. The super block read comes out of xfs_readsb in
fs/xfs/xfs_mount.c, in this section of code:

        XFS_BUF_SET_BRELSE_FUNC(bp,xfs_sb_relse);
        XFS_BUF_SET_ADDR(bp, XFS_SB_DADDR);
        XFS_BUF_READ(bp);
        XFS_BUF_SET_TARGET(bp, mp->m_ddev_targp);
        xfsbdstrat(mp, bp);
        if (error = xfs_iowait(bp)) {
                cmn_err(CE_WARN, "XFS: SB read failed\n");
                goto err;
        }

        /*
         * Initialize the mount structure from the superblock.
         * But first do some basic consistency checking.
         */
        sbp = XFS_BUF_TO_SBP(bp);
        xfs_xlatesb(XFS_BUF_PTR(bp), &(mp->m_sb), 1, ARCH_CONVERT, 
XFS_SB_ALL_BITS);
        if (error = xfs_mount_validate_sb(mp, &(mp->m_sb))) {
                cmn_err(CE_WARN, "XFS: SB validate failed\n");
                goto err;
        }

        mp->m_sb_bp = bp;
        xfs_buf_relse(bp);
        ASSERT(XFS_BUF_VALUSEMA(bp) > 0);
        return 0;

You got as far as returning from xfs_iowait, but you did not get as
far as the xfs_buf_relse at the end of the function - the first thing
it will end up doing is another pagebuf trace call. There is not a
lot in here which could hang you up - the only possibility I can see
is cmn_err() which is in fs/xfs/linux/xfs_random.c and looks like
this:

void
cmn_err(register int level, char *fmt, ...)
{
        char    *fp = fmt;
        char    message[256];
        va_list ap;
        va_start(ap, fmt);
        if (*fmt == '!') fp++;
        vsprintf(message, fp, ap);
        printk("%s\n", message);
        va_end(ap);
}

Possibly this is messing up, but I do not really see how.

Maybe scattering prinks through the xfs_readsb will tell us something
else.

Steve



> Steve Lord <lord@xxxxxxx> wrote:
> 
> > Try changing include/linux/page_buf_trace.h to look like this:
> > ...
> 
> ok - got it now going on the ppc and here are the results for
> the try of a xfs mount (in the hope that this helps someone
> to get closer to the problem):
> 
> page_buf module - Copyright (C) by Silicon Graphics Inc. 2000 
> pb 0xc1d2c080 [get] (hold 1 lock 0) misc 0xc38be360 
>     address 0xc586f200
>     offset 0x0 size 0x200 task 0xc39fc000
>     flags: NONE LOCKABLE FORECIO
> pb 0xc1d2c080 [no_daddr] (hold 1 lock 0) misc 0xc32dd200
>     address 0xc58fa0b4
>     offset 0x0 size 0x200 task 0xc39fc000
>     flags: MAPPED NONE LOCKABLE MEM_ALLOCATED FORECIO
> pb 0xc1d2c080 [ioreq] (hold 1 lock 0) misc 0x00000000
>     address 0xc58fa040
>     offset 0x0 size 0x200 task 0xc39fc000
>     flags: READ MAPPED NONE LOCKABLE MEM_ALLOCATED FORECIO
> pb 0xc1d2c080 [hold] (hold 2 lock 0) misc 0x00000000
>     address 0xc587090b
>     offset 0x0 size 0x200 task 0xc39fc000
>     flags: READ MAPPED NONE LOCKABLE MEM_ALLOCATED FORECIO
> pb 0xc1d2c080 [rele] (hold 2 lock 0) misc 0xc58d7f44
>     address 0xc5870a2c
>     offset 0x0 size 0x200 task 0xc39fc000
>     flags: READ MAPPED NONE LOCKABLE MEM_ALLOCATED FORECIO
> pb 0xc1d2c080 [iowait] (hold 1 lock 0) misc 0x00000000
>     address 0xc58d621c
>     offset 0x0 size 0x200 task 0xc39fc000
>     flags: READ MAPPED NONE LOCKABLE MEM_ALLOCATED FORECIO
> pb 0xc1d2c080 [done] (hold 1 lock 0) misc 0x00000000
>     address 0xc586fc74
>     offset 0x0 size 0x200 task 0xc39fc000
>     flags: MAPPED LOCKABLE MEM_ALLOCATED FORECIO
> pb 0xc1d2c080 [iowaited] (hold 1 lock 0) misc 0x00000000
>     address 0xc58d621c
>     offset 0x0 size 0x200 task 0xc39fc000
>     flags: MAPPED LOCKABLE MEM_ALLOCATED FORECIO
> 
> yes and here it hangs ... if you need any other debugging
> info - just let me know and i'll do my best to provide it
> 
> a diff of the code used against the current sgi xfs cvs
> tree from oss.sgi.com can be found at
> 
>   http://innominate.org/~graichen/projects/xfs-ppc/diff.000802
> 
> t
> 
> -- 
> thomas.graichen@xxxxxxxxxxxxx
> technical director                                       innominate AG
> clustering & security                                networking people
> tel: +49.30.308806-13 fax: -77 web: http://innominate.de pgp: /pgp/tgr



<Prev in Thread] Current Thread [Next in Thread>