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>
