RELENG7 using lpt causes panic

Michael Proto mike at jellydonut.org
Mon Jan 7 19:55:26 PST 2008


Adrian Wontroba wrote:
> I've recently switched some of my home systems to RELENG7.
> 
> All seemed fairly well until I tried printing a CUPS test page on my
> backup and print server to an elderly Laserjet IIIp, where I seem to
> have a reproducible panic. It has happened twice.  This is painful, as
> I have a big home fileystem (striped over two mirrors over most of two
> 500 GB disks). The gmirror syncronisation and background fsck leave the
> system close to unusable for hours while they fight over the disks.
> 
> I was somewhat startled that something so basic as printing causes a
> panic. There have been no hardware changes since I last printed under
> RELENG6, but I don't print often, so hardware decay is a possibility.
> 
> Is this a known problem? If not, I'll take the time to try various tests
> (with /home unmounted) and raise a PR.
> 
> I envisage tests such as:
> * Does switching to a kernel without SMP and apic make a difference?
> * Does direct output cause a crash?
> * Does polling make a difference?
> * Does the parallel port mode (I think extended at present) make a
>   difference?
> 
> Some detail below.
> 
> Throwaway comment: On my workstation I find that a GENERIC - SMP - apic
> + SCHED_ULE kernel is MUCH more responsive during buildworld than a
> GENERIC kernel.
> 
> console / dmesg
> ===============
> 
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> lpt0: [GIANT-LOCKED]
> lpt0: [ITHREAD]
> Fatal trap 30: reserved (unknown) fault while in kernel mode
> cpuid = 0; apic id = 00
> instruction pointer     = 0x20:0xc0a5747b
> stack pointer           = 0x28:0xe67ea968
> frame pointer           = 0x28:0xe67ea96c
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, IOPL = 0
> current process         = 1421 (parallel)
> trap number             = 30
> panic: reserved (unknown) fault
> cpuid = 0
> Uptime: 23m3s
> Physical memory: 1011 MB
> Dumping 168 MB: 153 137 121 105 89 73 57 41 25 9
> Dump complete
> 
> Which?
> ======
> 
> RELENG7 cvsupped and built in the late evening of Sunday 06/01/07
> 
> [root at rottcodd ~]# uname -a
> FreeBSD rottcodd.hanley.stade.co.uk 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #0: Sun Jan  6 23:33:45 GMT 2008     toor at steerpike.hanley.stade.co.uk:/usr/obj/usr/src/sys/GENERIC  i386
> 
> kgdb
> ====
> 
> [root at rottcodd ~]# kgdb /boot/kernel/kernel.symbols /var/crash/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 "i386-marcel-freebsd".
> 
> Unread portion of the kernel message buffer:
> 
> 
> Fatal trap 30: reserved (unknown) fault while in kernel mode
> cpuid = 0; apic id = 00
> instruction pointer     = 0x20:0xc0a5747b
> stack pointer           = 0x28:0xe67ea968
> frame pointer           = 0x28:0xe67ea96c
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, IOPL = 0
> current process         = 1421 (parallel)
> trap number             = 30
> panic: reserved (unknown) fault
> cpuid = 0
> Uptime: 23m3s
> Physical memory: 1011 MB
> Dumping 168 MB: 153 137 121 105 89 73 57 41 25 9
> 
> #0  doadump () at pcpu.h:195
> 195     pcpu.h: No such file or directory.
>         in pcpu.h
> (kgdb) where
> #0  doadump () at pcpu.h:195
> #1  0xc0753f07 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:409
> #2  0xc07541c9 in panic (fmt=Variable "fmt" is not available.
> ) at /usr/src/sys/kern/kern_shutdown.c:563
> #3  0xc0a6737c in trap_fatal (frame=0xe67ea928, eva=0) at /usr/src/sys/i386/i386/trap.c:899
> #4  0xc0a6813d in trap (frame=0xe67ea928) at /usr/src/sys/i386/i386/trap.c:686
> #5  0xc0a4df4b in calltrap () at /usr/src/sys/i386/i386/exception.s:139
> #6  0xc0a5747b in spinlock_exit () at cpufunc.h:365
> #7  0xc0a53e20 in ioapic_program_intpin (intpin=0xc3f05d3c) at /usr/src/sys/i386/i386/io_apic.c:273
> #8  0xc0a541b1 in ioapic_disable_intr (isrc=0xc3f05d3c) at /usr/src/sys/i386/i386/io_apic.c:375
> #9  0xc0a530bc in intr_remove_handler (cookie=0xc47019c0) at /usr/src/sys/i386/i386/intr_machdep.c:208
> #10 0xc0a5f1b1 in nexus_teardown_intr (dev=0xc3fc4a80, child=0xc4199980, r=0xc419d6c0, ih=0xc47019c0)
>     at /usr/src/sys/i386/i386/nexus.c:498
> #11 0xc0774942 in bus_generic_teardown_intr (dev=0xc3fc4180, child=0xc4199980, irq=0xc419d6c0, cookie=0xc47019c0) at bus_if.h:416
> #12 0xc0774942 in bus_generic_teardown_intr (dev=0xc3f52d00, child=0xc4199980, irq=0xc419d6c0, cookie=0xc47019c0) at bus_if.h:416
> #13 0xc0774942 in bus_generic_teardown_intr (dev=0xc403d600, child=0xc4199980, irq=0xc419d6c0, cookie=0xc47019c0) at bus_if.h:416
> #14 0xc063653d in pci_teardown_intr (dev=0xc403d600, child=0xc4199980, irq=0xc419d6c0, cookie=0xc47019c0)
>     at /usr/src/sys/dev/pci/pci.c:2866
> #15 0xc0774942 in bus_generic_teardown_intr (dev=0xc403d500, child=0xc4199980, irq=0xc419d6c0, cookie=0xc47019c0) at bus_if.h:416
> #16 0xc0a6c732 in isa_teardown_intr (bus=0xc416fe80, child=0xc4199980, r=0xc419d6c0, cookie=0xc47019c0) at bus_if.h:416
> #17 0xc0648d41 in ppc_teardown_intr (bus=0xc419a400, child=0xc4199980, r=0xc419d6c0, ih=0xc47019c0) at bus_if.h:416
> #18 0xc0645e2e in ppbus_teardown_intr (bus=0xc4199b80, child=0xc4199980, r=0xc419d6c0, ih=0xc47019c0) at bus_if.h:416
> #19 0xc06468e3 in ppb_release_bus (bus=0xc4199b80, dev=0xc4199980) at bus_if.h:416
> #20 0xc0642271 in lpt_release_ppbus (dev=0xc4199980) at /usr/src/sys/dev/ppbus/lpt.c:227
> #21 0xc06430e5 in lptwrite (dev=0xc4156c00, uio=0xe67eac60, ioflag=0) at /usr/src/sys/dev/ppbus/lpt.c:826
> #22 0xc07209ac in giant_write (dev=0xc4156c00, uio=0xe67eac60, ioflag=0) at /usr/src/sys/kern/kern_conf.c:373
> #23 0xc06e9442 in devfs_write_f (fp=0xc507b2d0, uio=0xe67eac60, cred=0xc506d500, flags=0, td=0xc4a8f840)
>     at /usr/src/sys/fs/devfs/devfs_vnops.c:1304
> #24 0xc0786f87 in dofilewrite (td=0xc4a8f840, fd=5, fp=0xc507b2d0, auio=0xe67eac60, offset=-1, flags=0) at file.h:254
> #25 0xc0787268 in kern_writev (td=0xc4a8f840, fd=5, auio=0xe67eac60) at /usr/src/sys/kern/sys_generic.c:401
> #26 0xc07872df in write (td=0xc4a8f840, uap=0xe67eacfc) at /usr/src/sys/kern/sys_generic.c:317
> #27 0xc0a67955 in syscall (frame=0xe67ead38) at /usr/src/sys/i386/i386/trap.c:1035
> #28 0xc0a4dfb0 in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:196
> #29 0x00000033 in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> (kgdb) quit
> 
> dmesg.boot
> ==========
> 
> Copyright (c) 1992-2008 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>         The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 7.0-PRERELEASE #0: Sun Jan  6 23:33:45 GMT 2008
>     toor at steerpike.hanley.stade.co.uk:/usr/obj/usr/src/sys/GENERIC
> module_register: module g_label already exists!
> Module g_label failed to register: 17
> Timecounter "i8254" frequency 1193182 Hz quality 0
> CPU: AMD Athlon(tm) XP 3200+ (2205.02-MHz 686-class CPU)
>   Origin = "AuthenticAMD"  Id = 0x6a0  Stepping = 0
>   Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
>   AMD Features=0xc0400800<SYSCALL,MMX+,3DNow!+,3DNow!>
> real memory  = 1073676288 (1023 MB)
> avail memory = 1037062144 (989 MB)
> ACPI APIC Table: <AMIINT VIA_K7  >
> ioapic0 <Version 0.3> irqs 0-23 on motherboard
> kbd1 at kbdmux0
> ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
> hptrr: HPT RocketRAID controller driver v1.1 (Jan  6 2008 23:33:21)
> acpi0: <AMIINT VIA_K7> on motherboard
> acpi0: [ITHREAD]
> acpi0: Power Button (fixed)
> Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
> acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
> cpu0: <ACPI CPU> on acpi0
> acpi_button0: <Power Button> on acpi0
> pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
> pci0: <ACPI PCI bus> on pcib0
> agp0: <VIA 8377 (Apollo KT400/KT400A/KT600) host to PCI bridge> on hostb0
> agp0: aperture size is 128M
> pcib1: <PCI-PCI bridge> at device 1.0 on pci0
> pci1: <PCI bus> on pcib1
> vgapci0: <VGA-compatible display> mem 0xde000000-0xdeffffff,0xc0000000-0xcfffffff irq 16 at device 0.0 on pci1
> atapci0: <Promise PDC20268 UDMA100 controller> port 0xec00-0xec07,0xe800-0xe803,0xe400-0xe407,0xe000-0xe003,0xdc00-0xdc0f mem 0xdfffc000-0xdfffffff irq 16 at device 5.0 on pci0
> atapci0: [ITHREAD]
> ata2: <ATA channel 0> on atapci0
> ata2: [ITHREAD]
> ata3: <ATA channel 1> on atapci0
> ata3: [ITHREAD]
> atapci1: <Promise PDC20269 UDMA133 controller> port 0xd800-0xd807,0xd400-0xd403,0xd000-0xd007,0xcc00-0xcc03,0xc800-0xc80f mem 0xdfff4000-0xdfff7fff irq 19 at device 7.0 on pci0
> atapci1: [ITHREAD]
> ata4: <ATA channel 0> on atapci1
> ata4: [ITHREAD]
> ata5: <ATA channel 1> on atapci1
> ata5: [ITHREAD]
> bge0: <Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0x3003> mem 0xdffb0000-0xdffbffff irq 18 at device 11.0 on pci0
> miibus0: <MII bus> on bge0
> brgphy0: <BCM5705 10/100/1000baseTX PHY> PHY 1 on miibus0
> brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
> bge0: Ethernet address: 00:0c:76:e9:64:ee
> bge0: [ITHREAD]
> fwohci0: <VIA Fire II (VT6306)> port 0xc400-0xc47f mem 0xdfff3800-0xdfff3fff irq 17 at device 14.0 on pci0
> fwohci0: [FILTER]
> fwohci0: OHCI version 1.0 (ROM=1)
> fwohci0: No. of Isochronous channels is 8.
> fwohci0: EUI64 00:10:dc:00:00:5e:9f:42
> fwohci0: Phy 1394a available S400, 3 ports.
> fwohci0: Link S400, max_rec 2048 bytes.
> firewire0: <IEEE1394(FireWire) bus> on fwohci0
> fwe0: <Ethernet over FireWire> on firewire0
> if_fwe0: Fake Ethernet address: 02:10:dc:5e:9f:42
> fwe0: Ethernet address: 02:10:dc:5e:9f:42
> fwip0: <IP over FireWire> on firewire0
> fwip0: Firewire address: 00:10:dc:00:00:5e:9f:42 @ 0xfffe00000000, S400, maxrec 2048
> sbp0: <SBP-2/SCSI over FireWire> on firewire0
> dcons_crom0: <dcons configuration ROM> on firewire0
> dcons_crom0: bus_addr 0x134c000
> fwohci0: Initiate bus reset
> fwohci0: BUS reset
> fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
> atapci2: <VIA 8237 UDMA133 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 15.0 on pci0
> ata0: <ATA channel 0> on atapci2
> ata0: [ITHREAD]
> ata1: <ATA channel 1> on atapci2
> ata1: [ITHREAD]
> uhci0: <VIA 83C572 USB controller> port 0xb400-0xb41f irq 21 at device 16.0 on pci0
> uhci0: [GIANT-LOCKED]
> uhci0: [ITHREAD]
> usb0: <VIA 83C572 USB controller> on uhci0
> usb0: USB revision 1.0
> uhub0: <VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0
> uhub0: 2 ports with 2 removable, self powered
> uhci1: <VIA 83C572 USB controller> port 0xb800-0xb81f irq 21 at device 16.1 on pci0
> uhci1: [GIANT-LOCKED]
> uhci1: [ITHREAD]
> usb1: <VIA 83C572 USB controller> on uhci1
> usb1: USB revision 1.0
> uhub1: <VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb1
> uhub1: 2 ports with 2 removable, self powered
> uhci2: <VIA 83C572 USB controller> port 0xbc00-0xbc1f irq 21 at device 16.2 on pci0
> uhci2: [GIANT-LOCKED]
> uhci2: [ITHREAD]
> usb2: <VIA 83C572 USB controller> on uhci2
> usb2: USB revision 1.0
> uhub2: <VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb2
> uhub2: 2 ports with 2 removable, self powered
> uhci3: <VIA 83C572 USB controller> port 0xc000-0xc01f irq 21 at device 16.3 on pci0
> uhci3: [GIANT-LOCKED]
> uhci3: [ITHREAD]
> usb3: <VIA 83C572 USB controller> on uhci3
> usb3: USB revision 1.0
> uhub3: <VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb3
> uhub3: 2 ports with 2 removable, self powered
> ehci0: <VIA VT6202 USB 2.0 controller> mem 0xdfff3600-0xdfff36ff irq 21 at device 16.4 on pci0
> ehci0: [GIANT-LOCKED]
> ehci0: [ITHREAD]
> usb4: EHCI version 1.0
> usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
> usb4: <VIA VT6202 USB 2.0 controller> on ehci0
> usb4: USB revision 2.0
> uhub4: <VIA EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb4
> uhub4: 8 ports with 8 removable, self powered
> isab0: <PCI-ISA bridge> at device 17.0 on pci0
> isa0: <ISA bus> on isab0
> pci0: <multimedia, audio> at device 17.5 (no driver attached)
> acpi_button1: <Sleep Button> on acpi0
> atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
> atkbd0: <AT Keyboard> irq 1 on atkbdc0
> kbd0 at atkbd0
> atkbd0: [GIANT-LOCKED]
> atkbd0: [ITHREAD]
> psm0: <PS/2 Mouse> irq 12 on atkbdc0
> psm0: [GIANT-LOCKED]
> psm0: [ITHREAD]
> psm0: model Generic PS/2 mouse, device ID 0
> fdc0: <floppy drive controller> port 0x3f2-0x3f3,0x3f4-0x3f5,0x3f7 irq 6 drq 2 on acpi0
> fdc0: [FILTER]
> fd0: <1440-KB 3.5" drive> on fdc0 drive 0
> sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
> sio0: type 16550A
> sio0: [FILTER]
> sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
> sio1: type 16550A
> sio1: [FILTER]
> pmtimer0 on isa0
> orm0: <ISA Option ROMs> at iomem 0xc0000-0xcefff,0xcf000-0xd17ff,0xd1800-0xd3fff,0xd4000-0xd57ff pnpid ORM0000 on isa0
> ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
> ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
> ppc0: FIFO with 16/16/9 bytes threshold
> ppbus0: <Parallel port bus> on ppc0
> plip0: <PLIP network interface> on ppbus0
> lpt0: <Printer> on ppbus0
> lpt0: Interrupt-driven port
> ppi0: <Parallel I/O> on ppbus0
> ppc0: [GIANT-LOCKED]
> ppc0: [ITHREAD]
> sc0: <System console> at flags 0x100 on isa0
> sc0: VGA <16 virtual consoles, flags=0x300>
> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
> Timecounter "TSC" frequency 2205018060 Hz quality 800
> Timecounters tick every 1.000 msec
> hptrr: no controller detected.
> firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
> firewire0: bus manager 0 (me)
> The GEOM class LABEL is already loaded.
> acd0: DVDR <NEC DVD RW ND-3520A/1.04> at ata0-master UDMA33
> ad4: 476940MB <WDC WD5000AAKB-22UKA0 07.01N01> at ata2-master UDMA100
> ad6: 476940MB <WDC WD5000AAKB-22UKA0 07.01N01> at ata3-master UDMA100
> ad8: 476940MB <WDC WD5000AAKB-22UKA0 07.01N01> at ata4-master UDMA100
> ad10: 476940MB <WDC WD5000AAKB-22UKA0 07.01N01> at ata5-master UDMA100
> GEOM_MIRROR: Device mirror/gmrcvar1 launched (2/2).
> GEOM_MIRROR: Device mirror/gmrcusr1 launched (2/2).
> GEOM_MIRROR: Device mirror/gmrcswp1 launched (2/2).
> GEOM_MIRROR: Device mirror/gmrchom1 launched (2/2).
> GEOM_MIRROR: Device mirror/gmrcroot launched (4/4).
> GEOM_MIRROR: Device mirror/gmrcvar2 launched (2/2).
> GEOM_MIRROR: Device mirror/gmrcusr2 launched (2/2).
> GEOM_MIRROR: Device mirror/gmrcswp2 launched (2/2).
> GEOM_MIRROR: Device mirror/gmrchom2 launched (2/2).
> GEOM_STRIPE: Device gsrcvar created (id=937835587).
> GEOM_STRIPE: Disk mirror/gmrcvar1 attached to gsrcvar.
> GEOM_STRIPE: Device gsrcusr created (id=533043218).
> GEOM_STRIPE: Disk mirror/gmrcusr1 attached to gsrcusr.
> GEOM_STRIPE: Device gsrcswp created (id=534629169).
> GEOM_STRIPE: Disk mirror/gmrcswp1 attached to gsrcswp.
> GEOM_STRIPE: Device gsrchom created (id=2161269149).
> GEOM_STRIPE: Disk mirror/gmrchom1 attached to gsrchom.
> GEOM_LABEL: Label for provider mirror/gmrcroot is ufs/rcroot.
> GEOM_STRIPE: Disk mirror/gmrcvar2 attached to gsrcvar.
> GEOM_STRIPE: Device gsrcvar activated.
> GEOM_STRIPE: Disk mirror/gmrcusr2 attached to gsrcusr.
> GEOM_STRIPE: Device gsrcusr activated.
> GEOM_STRIPE: Disk mirror/gmrcswp2 attached to gsrcswp.
> GEOM_STRIPE: Device gsrcswp activated.
> GEOM_STRIPE: Disk mirror/gmrchom2 attached to gsrchom.
> GEOM_STRIPE: Device gsrchom activated.
> GEOM_LABEL: Label for provider stripe/gsrcvar is ufs/rcvar.
> GEOM_LABEL: Label for provider stripe/gsrcusr is ufs/rcusr.
> GEOM_LABEL: Label for provider stripe/gsrcswp is label/rcswap.
> GEOM_LABEL: Label for provider stripe/gsrchom is ufs/rchome.
> Trying to mount root from ufs:/dev/ufs/rcroot
> bge0: link state changed to UP
> 


According to the Handbook, some HP printers don't like interrupt mode
very much. I can't think of why this would have changed with 7, but if
you change lpt0 to polling (lptcontrol -p) or extended (lptcontrol -e)
mode do you still see panics?


-Proto


More information about the freebsd-stable mailing list