Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Nov 2001 14:47:30 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Paul Herman <pherman@frenchfries.net>
Cc:        FreeBSD Alpha <freebsd-alpha@FreeBSD.ORG>
Subject:   RE:
Message-ID:  <XFMail.011128144730.jhb@FreeBSD.org>
In-Reply-To: <200111282233.fASMXUA01849@tick.sc.omation.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On 28-Nov-01 Paul Herman wrote:
> Hi,
> 
> My 4.4-RELEASE (alpha) paniced 4 times in a row today and all at
> the same place.  I don't know what to make of it, so I thought I'd
> start here.
> 
> It happens when I do a lot of NFS traffic (like "pkg_add
> /nfs/mount/package.tgz")  What is XentUna?  Is that a trap for
> unaligned access?  If so, what does fxdr_unsigned() do, and why
> would XentUna fail?  Or does it not try to correct it?  I do have
> machdep.unaligned_fix=1 if that makes a difference.

The *(tl + 1) is the problem I think.  What is the type of 'tl'?

        register u_int32_t *tl;

Ah yes, definitely the problem here.  NFS is evil.  It's basically performing
an unaligned access of a 32-bit integer in the middle of a 64-bit word.  I'm
not sure what the best way of fixing this is.  The bad news is that NFS is
probably full of such bugs. :(
 
> Regards,
> -Paul.
> 
> 
> tick# gdb -k /kernel.debug /var/crash/vmcore.4
> GNU gdb 4.18
> Copyright 1998 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "alpha-unknown-freebsd"...
> panic: trap
>#0  0xfffffc00003a9d40 in dumpsys () at /usr/src/sys/kern/kern_shutdown.c:472
> 472           savectx(&dumppcb);
> (kgdb) bt
>#0  0xfffffc00003a9d40 in dumpsys () at /usr/src/sys/kern/kern_shutdown.c:472
>#1  0xfffffc00003a9908 in boot (howto=256)
>     at /usr/src/sys/kern/kern_shutdown.c:313
>#2  0xfffffc00003aa150 in panic (fmt=0xfffffc00005d284c "trap")
>     at /usr/src/sys/kern/kern_shutdown.c:581
>#3  0xfffffc0000559560 in trap (a0=18446741874698165282, a1=8192, a2=0,
>     entry=4, framep=0xfffffe0012a1f9a0) at
> /usr/src/sys/alpha/alpha/trap.c:551
>#4  0xfffffc000054b724 in XentUna ()
>#5  0xfffffc00004b45bc in nfs_readrpc (vp=0xfffffe0012b11a80,
>     uiop=0xfffffe0012a1fbd0, cred=0xfffffe0001468b80)
>     at /usr/src/sys/nfs/nfs_vnops.c:1114
> (kgdb) up 5
>#5  0xfffffc00004b45bc in nfs_readrpc (vp=0xfffffe0012b11a80,
>     uiop=0xfffffe0012a1fbd0, cred=0xfffffe0001468b80)
>     at /usr/src/sys/nfs/nfs_vnops.c:1114
> 1114                          eof = fxdr_unsigned(int, *(tl + 1));
> (kgdb) list
> 1109                          if (error) {
> 1110                                  m_freem(mrep);
> 1111                                  goto nfsmout;
> 1112                          }
> 1113                          nfsm_dissect(tl, u_int32_t *, 2 *
NFSX_UNSIGNED);
> 1114                          eof = fxdr_unsigned(int, *(tl + 1));
> 1115                  } else
> 1116                          nfsm_loadattr(vp, (struct vattr *)0);
> 1117                  nfsm_strsiz(retlen, nmp->nm_rsize);
> 1118                  nfsm_mtouio(uiop, retlen);
> (kgdb) print tl
> $1 = (u_int32_t *) 0xfffffe0000b51c22
> (kgdb) print tl+1
> $2 = (u_int32_t *) 0xfffffe0000b51c26
> (kgdb) print *(tl+1)
> $3 = 379828717
> (kgdb) quit
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-alpha" in the body of the message

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.011128144730.jhb>