Panic Kernel Dump to umass device?
Nate Nielsen
nielsen-list at memberwebs.com
Fri Feb 10 22:00:19 PST 2006
I'm developing for small embedded systems, and I'm looking into the
possibility of dumping a kernel core dump to a USB memory stick (umass
driver). It currently doesn't work (see below), but I'm interested in
fixing it.
Yes, I know it'll be slow. It's probably also a non-tested (and
non-reliable) code path for a kernel dump. But leaving those issues aside...
First I wanted to ask if anyone else has tried this. Is it an insane
idea, impossible? I'm not very familiar with the CAM/SCSI/USB
sub-systems so perhaps someone more knowledgeable than I can set me
straight.
Currently when doing a dump to a USB device, I get the following. This
with 6.0-RELEASE. Dump device is /dev/da0s1.
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x0
> fault code = supervisor write, page not present
> instruction pointer = 0x20:0xc0cea412
> stack pointer = 0x28:0xc6cf5c1c
> frame pointer = 0x28:0xc6cf5c24
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 473 (kldload)
> trap number = 12
> panic: page fault
> Uptime: 3m48s
> Dumping 95 MB (2 chunks)
> Aborting dump due to I/O error.
> status == 0xb, scsi status == 0x0
>
> ** DUMP FAILED (ERROR 5) **
> Automatic reboot in 5 seconds - press a key on the console to abort
It waits for about a minute after 'Dumping 95 MB (2 chunks)'. The light
on the USB stick goes and remains stuck in the on state. The status: 0xb
seems to be CAM_CMD_TIMEOUT. ERROR 5 is EIO.
As far as I know, kernel dumps are always dune without interrupts and
the driver runs with polling. It's likely that the umass driver and/or
USB subsystem doesn't like this.
Cheers,
Nate
More information about the freebsd-hackers
mailing list