Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Apr 2008 09:10:23 -0700
From:      "Steve Franks" <stevefranks@ieee.org>
To:        "Roland Smith" <rsmith@xs4all.nl>, freebsd-stable@freebsd.org
Subject:   Re: umass causes panic on 7 amd64
Message-ID:  <539c60b90804160910q3a242d7amb474b40065d6c9c6@mail.gmail.com>
In-Reply-To: <20080415192028.GA31706@slackbox.xs4all.nl>
References:  <539c60b90804111420kcb73e6do8a20dce574d13864@mail.gmail.com> <20080412213225.GB24224@slackbox.xs4all.nl> <539c60b90804141549u6a138ad9u9c77bbfcbbad0ff3@mail.gmail.com> <20080415175347.GA29045@slackbox.xs4all.nl> <539c60b90804151134q7a25a141m1205a1b04d8ffc2c@mail.gmail.com> <20080415192028.GA31706@slackbox.xs4all.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 15, 2008 at 12:20 PM, Roland Smith <rsmith@xs4all.nl> wrote:
> On Tue, Apr 15, 2008 at 11:34:31AM -0700, Steve Franks wrote:
>  > Being a naturally curious guy, with your pointers, I've located the fo=
llowing:
>  >
>  > [steve@dystant /var/crash]$ sudo cat info.2
>
>  Yep. This is what you need.
>
>
>  > Dump header from device /dev/ad4s1b
>  >   Architecture: amd64
>  >   Architecture Version: 2
>  >   Dump Length: 211496960B (201 MB)
>  >   Blocksize: 512
>  >   Dumptime: Fri Apr 11 11:02:40 2008
>
>  As you can see it went wrong _just_ after you plugged in the olympus.
>
>
>  >   Hostname: dystant.franks-development.dyndns.biz
>  >   Magic: FreeBSD Kernel Dump
>  >   Version String: FreeBSD 7.0-STABLE #14: Mon Mar 10 16:35:38 MST 2008
>  >     steve@dystant.franks-development.dyndns.biz:/usr/obj/usr/src/sys/G=
ENERIC
>  >   Panic String: page fault
>
>  This is what caused the crash. The system was trying to access memory
>  that it shouldn't. The question is where did it happen.
>
>
>  >   Dump Parity: 2580707083
>  >   Bounds: 2
>  >   Dump Status: good
>
>  The developers' handbook* will show you how to debug the crashdump. The
>  developers will be interested in the cause of the crash and the stack
>  backtrace. See =A710.2 of the developers' handbook.
>
>  With that info you could post a question on the -amd64 or -stable list.
>
>  (* if installed you should be able to find it at
>  file:///usr/share/doc/en_US.ISO8859-1/books/developers-handbook/index.ht=
ml)
>
>
>  > [steve@dystant /var/log]$ cat messages.0 | grep umass
>  > Apr 11 11:02:39 dystant kernel: umass0: <OLYMPUS C-700 Ultra Zoom,
>
>  I presume that the next line is 'Copyright (c) 1992-2008 The FreeBSD Pro=
ject.'?
>  That would indicate that the systems crashes before it gets to assign a
>  da device to the umass device.
>
>  If it is something like 'da0 at umass-sim0 bus 0 target 0 lun 0' it is
>  interesting as well, because it can show _where_ things go wrong.
>
>  Try something like "grep -A 1 'umass0: <' /var/log/messages.0"
>
>  By the way, can you reproduce the crash with another umass device?
>
>
>  > It could be hardware-related, I guess - the crash is rather faster if
>  > I plug into the front of the case vs. directly into the motherboard in
>  > the back.
>
>  That could be interesting. But it could also be caused by the topology
>  of the usb bus. I'm not an expert on this issue. :-)
>
>
>  >  The interesting thing is that it is only umass, not ucom,
>  > ugen, or ums (they all play fine).
>
>  Well, they are different drivers using different code paths through the
>  kernel. But it will help in narrowing down the cause of the crash.
>
>  My guesstimate would be that it bombs in trying to assign a da device to
>  the umass device. But I could be wrong.
>
>  BTW, if you post a followup to one of the mailing lists, don't forget to
>  mention what usb controller you're using. You can easily find that out
>  with 'dmesg|grep "^usb"'. This will show you how many usb controllers
>  you have and what type of controller chip they use.
>
>
>
>  Roland
>  --
>  R.F.Smith                                   http://www.xs4all.nl/~rsmith=
/
>  [plain text _non-HTML_ PGP/GnuPG encrypted/signed email much appreciated=
]
>  pgp: 1A2B 477F 9970 BA3C 2914  B7CE 1277 EFB0 C321 A725 (KeyID: C321A725=
)
>

freebsd-stable: as you can see, Roland has been teaching me about
crashdumps since my umass brought down one system, and is rather
unusable on another.  Here's the kgdb output:

Best,
Steve

[steve@dystant /usr/obj/usr/src/sys/GENERIC]$ sudo kgdb kernel.debug
/var/crash/vmcore.3
[GDB will not be able to debug user-mode threads:
/usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you ar=
e
welcome to change it and/or distribute copies of it under certain condition=
s.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd".

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid =3D 0; apic id =3D 00
fault virtual address   =3D 0x0
fault code              =3D supervisor read instruction, page not present
instruction pointer     =3D 0x8:0x0
stack pointer           =3D 0x10:0xffffffffa0208570
frame pointer           =3D 0x10:0xffffff0001e1ca00
code segment            =3D base 0x0, limit 0xfffff, type 0x1b
                        =3D DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        =3D interrupt enabled, resume, IOPL =3D 0
current process         =3D 12 (swi4: clock sio)
trap number             =3D 12
panic: page fault
cpuid =3D 0
Uptime: 32s
Physical memory: 1002 MB
Dumping 96 MB: 81 65 49 33 17

#0  doadump () at pcpu.h:194
194             __asm __volatile("movq %%gs:0,%0" : "=3Dr" (td));
(kgdb)



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