Re: panic when printing

From: John Baldwin <jhb_at_freebsd.org>
Date: Mon, 23 Jul 2007 18:04:14 -0400
On Tuesday 03 July 2007 05:42:48 am Gary Jennejohn wrote:
> I haven't seen this reported before.
> 
> Trying to print to my parallel printer with a -current kernel from July
> 2 (amd64) results in a kernel panic. A kernel from June 16 (i386) does
> not cause a panic.
> 
> If I boot with the printer turned on then the kernel sees it (PnP)
> with no problem. Just printing causes a panic.
> 
> BTW this kernel is using the SMP-scheduler from Jeff Roberson, but
> IIRC a different kernel (June 29) w/o that scheduler also panics.
> 
> I can't say whether it's amd64-specific or just due to recent changes to
> the sources. I'm rather reluctant to generate a new i386 kernel to check
> that, but I could be persuaded to do it.
> 
> Below a typescript of a very limited kgdb session:

You got an interrupt after the lpt driver removed its handler.  Really the 
ppbus device should not be so stupid and should have its own interrupt 
handler that routes interrupts to the "active" child.

> root:peedub:crash:bash:1> gdb /boot/kernel/kernel vmcore.1
> [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 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
> "amd64-marcel-freebsd".
> 
> Unread portion of the kernel message buffer:
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> 
> 
> Fatal trap 30: reserved (unknown) fault while in kernel mode
> cpuid = 1; apic id = 01
> instruction pointer	= 0x8:0xffffffff804ece83
> stack pointer	        = 0x10:0xffffffffaf97a760
> frame pointer	        = 0x10:0xffffffffaf97a780
> code segment		= base 0x0, limit 0xfffff, type 0x1b
> 			= DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags	= interrupt enabled, IOPL = 0
> current process		= 1980 (lpd)
> trap number		= 30
> panic: reserved (unknown) fault
> cpuid = 1
> Uptime: 2h41m43s
> Physical memory: 2037 MB
> Dumping 977 MB: 961 945 929 913 897 881 865 849 833 817 801 785 769 753
> 737 721 705 689 673 657 641 625 609 593 577 561 545 529 513 497 481 465
> 449 433 417 401 385 369 353 337 321 305 289 273 257 241 225 209 193 177
> 161 145 129 113 97 81 65 49 33 17 1
> 
> #0  doadump () at pcpu.h:194
> 194	pcpu.h: No such file or directory.
> 	in pcpu.h
> (kgdb) bt
> #0  doadump () at pcpu.h:194
> #1  0xffffffff802f94db in boot (howto=260)
>     at /usr/src/sys/kern/kern_shutdown.c:409
> #2  0xffffffff802f97de in panic (fmt=Variable "fmt" is not available.
> ) at /usr/src/sys/kern/kern_shutdown.c:563
> #3  0xffffffff804fec9c in trap_fatal (frame=0xffffffffaf97a6b0, eva=0)
>     at /usr/src/sys/amd64/amd64/trap.c:695
> #4  0xffffffff804ffaa3 in trap (frame=0xffffffffaf97a6b0)
>     at /usr/src/sys/amd64/amd64/trap.c:498
> #5  0xffffffff804e566e in calltrap ()
>     at /usr/src/sys/amd64/amd64/exception.S:169
> #6  0xffffffff804ece83 in spinlock_exit () at cpufunc.h:391
> #7  0xffffffff804e9291 in ioapic_program_intpin
> #(intpin=0xffffff0001043208)
>     at /usr/src/sys/amd64/amd64/io_apic.c:273
> #8  0xffffffff804e967a in ioapic_disable_intr (isrc=0xffffff0001043208)
>     at /usr/src/sys/amd64/amd64/io_apic.c:375
> #9  0xffffffff804e843d in intr_remove_handler (cookie=Variable "cookie"
> #is not available.
> )
>     at /usr/src/sys/amd64/amd64/intr_machdep.c:217
> #10 0xffffffff804f23bc in nexus_teardown_intr (dev=Variable "dev" is
> #not available.
> )
>     at /usr/src/sys/amd64/amd64/nexus.c:451
> #11 0xffffffff8031bf8f in bus_generic_teardown_intr
> #(dev=0xffffffffabf30000, 
>     child=0xffffff0003285b00, irq=0xffffff0003316480, 
>     cookie=0xffffff001bf44100) at bus_if.h:416
> #12 0xffffffff8022fc9d in ppc_teardown_intr (bus=0xffffff0001216500, 
>     child=0xffffff0003285b00, r=0xffffff0003316480,
> ih=0xffffff001bf44100) at bus_if.h:416
> #13 0xffffffff8022e3f4 in ppbus_teardown_intr (bus=0xffffff0003286e00, 
>     child=0xffffff0003285b00, r=Variable "r" is not available.
> ) at bus_if.h:416
> #14 0xffffffff8022ef6a in ppb_release_bus (bus=0xffffff0003286e00, 
>     dev=0xffffff0003285b00) at bus_if.h:416
> #15 0xffffffff8022a9a5 in lpt_release_ppbus (dev=0xffffff0003285b00)
>     at /usr/src/sys/dev/ppbus/lpt.c:227
> #16 0xffffffff8022b796 in lptwrite (dev=Variable "dev" is not available.
> ) at /usr/src/sys/dev/ppbus/lpt.c:826
> #17 0xffffffff802c6f61 in giant_write (dev=0xffffff00032fe800, 
>     uio=0xffffffffaf97ab00, ioflag=0)
> at /usr/src/sys/kern/kern_conf.c:358
> #18 0xffffffff8028b9f7 in devfs_write_f (fp=0xffffff0003b092d0, 
>     uio=0xffffffffaf97ab00, cred=Variable "cred" is not available.
> ) at /usr/src/sys/fs/devfs/devfs_vnops.c:1290
> #19 0xffffffff8033058a in dofilewrite (td=0xffffff00039c5360, fd=6, 
>     fp=0xffffff0003b092d0, auio=0xffffffffaf97ab00, offset=Variable
> "offset" is not available. ) at file.h:254
> #20 0xffffffff8033080f in kern_writev (td=0xffffff00039c5360, fd=6, 
>     auio=0xffffffffaf97ab00) at /usr/src/sys/kern/sys_generic.c:373
> #21 0xffffffff8033088b in write (td=0xffffffffabf30000, uap=0x1e)
>     at /usr/src/sys/kern/sys_generic.c:303
> #22 0xffffffff804ff2d1 in syscall (frame=0xffffffffaf97ac70)
>     at /usr/src/sys/amd64/amd64/trap.c:820
> #23 0xffffffff804e581b in Xfast_syscall ()
>     at /usr/src/sys/amd64/amd64/exception.S:272
> #24 0x000000080071ccac in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> (kgdb) q
> 
> --- 
> Gary Jennejohn / garyjATjennejohnDOTorg gjATfreebsdDOTorg
> garyjATdenxDOTde
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 



-- 
John Baldwin
Received on Mon Jul 23 2007 - 20:29:34 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:15 UTC