Messages in this thread Patches in this message | | | Date | Wed, 28 Mar 2001 17:08:36 -0600 (CST) | From | Paul Cassella <> | Subject | Hangs under 2.4.2-ac{18,19,24} that do not happen under -ac12. |
| |
[1.] One line summary of the problem:
Hangs under 2.4.2-ac{18,19,24} that do not happen under -ac12.
[2.] Full description of the problem/report:
I have had hangs under 2.4.2-ac18, -ac19, and -ac24, after uptimes of 36 hours, 12 hours, and 10 hours, respectively. -ac12 has twice run for a week without crashing. I didn't see anything in the later -ac changelogs that looks responsible, but I haven't actually tried them.
All the crashes were under X. The machine did not respond to pings, and no sysrq keys other than B worked; I didn't hear disk activity after S, and the disks weren't unmounted. Nothing made it to the logs. In the -ac19 crash, I had run at the console for about 12 hours, and then started X; it crashed within 15 minutes.
In the one crash that happened while I was at the console, X completely froze, and sound output stopped. In the others, the monitor was in power-save mode and didn't wake up.
The hangs don't appear to be related to IO load or anything else I can think of besides X. Each time, there was a distributed.net client running, and nothing else that was in any way intensive. I don't believe any sort of updatedb or makewhatis was running during the crashes, and it never hung overnight when these jobs run.
I ran with -ac12 with nearly 1300 lines of diff narrowed down from "interdiff -h ac12 ac18" for about 36 hours in console mode; it hung within 3 hours of starting X.
When I get home and reboot (following this most recent hang :( ), I'll put the diff, .config, and more stuff from /proc at
http://manetheren.eigenray.com/~fortytwo/crash-12-18.2
This should be sometime around 8PM CST. (If someone wants the diff now, email me. I have it here, but I don't want to spam the list with it.)
This diff wasn't "complete"; some modules (ide-cd, at least) weren't able to load due to missing symbols.
The diff included all the changes referencing bust_spinlocks(), and everything to do with the console_sem and the console tasklet/tq. This included all the changes to printk.c.
It also included the following. In -ac18, this is a BUG(), not a printk(), but I wanted something I could see while X was running. The message never showed up. I didn't look to see what the effect of returning -1 here is, though.
diff -u linux.ac/kernel/pm.c linux.ac/kernel/pm.c --- linux.ac/kernel/pm.c +++ linux.ac/kernel/pm.c @@ -150,6 +154,10 @@ { int status = 0; int prev_state, next_state; + + if (in_interrupt()) + {printk("pm_send called from interrupt (0x%p)!\n", __builtin_return_address(0)); return -1; } + switch (rqst) { case PM_SUSPEND: case PM_RESUME: AFAICT there was nothing else in the diff.
[7.1.] Software (add the output of the ver_linux script here)
Linux manetheren 2.4.2-ac12 #8 Mon Mar 5 20:02:30 CST 2001 i686 unknown
Gnu C 2.95.2 Gnu make 3.79.1 binutils 2.11.90.0.1 util-linux 2.11a modutils 2.4.2 e2fsprogs 1.19 Linux C Library 2.2.2 Dynamic linker (ldd) 2.2.2 Procps 2.0.7 Net-tools 1.59 Console-tools 0.2.3 Sh-utils 2.0.11 Modules Loaded usb-uhci parport_pc lp parport binfmt_misc rtc usbcore
Since I didn't think to copy my .config off the machine, I won't be able to get to it until tonight. In the meantime, I do remember that
- It's a UP kernel on a UP box - Celeron kernel and processor - The hang happens with USB completely disabled (Though I don't think I ever turned off hotplugging.) - VTs, console on VT, and console on serial configured (console was not on serial) - i810, (Debian unstable) X 4.0.2, with DRI - PIIX tuning enabled - Auto-DMA - No kernel debugging other than SysRq - No SCSI - APM was off; don't remember the other pm stuff. - ecn was on, syncookies off. - no ip masquerading or firewalling or anything fancy. - 128M RAM; no HIGHMEM stuff.
I'll be happy to try out patches, configuration changes, and other suggestions, but I won't be able to tell for three or four days whether or not it helped.
[7.2.] Processor information (from /proc/cpuinfo):
Single processor, cpu family : 6 model : 6 model name : Celeron (Mendocino) (466Mhz/66Mhz FSB) stepping : 5 cpu MHz : 465.265 cache size : 128 KB
[7.3.] Module information (from /proc/modules):
The modules loaded at the -ac24 crash appear to have been
visor 8400 1 usbserial 17488 1 [visor] parport_pc 18480 1 (autoclean) lp 6096 1 (autoclean) parport 24704 1 (autoclean) [parport_pc lp] uhci 21920 0 (unused) binfmt_misc 5600 0 rtc 5056 0 (autoclean) usbcore 50480 1 (autoclean) [visor usbserial uhci]
from Debian's /var/log/ksymoops
[7.4.] Loaded driver and hardware information (/proc/ioports, /proc/iomem)
Under plain -ac12:
manetheren:/var/log/ksymoops# cat /proc/ioports 0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 0170-0177 : ide1 01f0-01f7 : ide0 0376-0376 : ide1 0378-037a : parport0 037b-037f : parport0 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(set) 0cf8-0cff : PCI conf1 d000-dfff : PCI Bus #01 d800-d8ff : Lite-On Communications Inc LNE100TX d800-d8ff : eth0 df00-df3f : Ensoniq ES1371 [AudioPCI-97] df00-df3f : es1371 ef80-ef9f : Intel Corporation 82801AA USB ef80-ef9f : usb-uhci efa0-efaf : Intel Corporation 82801AA SMBus ffa0-ffaf : Intel Corporation 82801AA IDE ffa0-ffa7 : ide0 ffa8-ffaf : ide1 manetheren:/var/log/ksymoops# cat /proc/iomem 00000000-0009fbff : System RAM 0009fc00-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000f0000-000fffff : System ROM 00100000-07ebffff : System RAM 00100000-001cd2c5 : Kernel code 001cd2c6-0020c2ff : Kernel data 07ec0000-07ef7fff : ACPI Tables 07ef8000-07efffff : ACPI Non-volatile Storage f6a00000-f6afffff : PCI Bus #01 f8000000-fbffffff : Intel Corporation 82810-DC100 CGC [Chipset Graphics Controller] ff800000-ff8fffff : PCI Bus #01 ff8ffc00-ff8ffcff : Lite-On Communications Inc LNE100TX ff8ffc00-ff8ffcff : eth0 ffa80000-ffafffff : Intel Corporation 82810-DC100 CGC [Chipset Graphics Controller] ffb80000-ffbfffff : reserved fff00000-ffffffff : reserved [7.5.] PCI information ('lspci -vvv' as root) manetheren:/var/log/ksymoops# lspci -vvv 00:00.0 Host bridge: Intel Corporation 82810-DC100 GMCH [Graphics Memory Controller Hub] (rev 02) Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- Latency: 0
00:01.0 VGA compatible controller: Intel Corporation 82810-DC100 CGC [Chipset Graphics Controller] (rev 02) (prog-if 00 [VGA]) Subsystem: Intel Corporation: Unknown device 4341 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Interrupt: pin A routed to IRQ 11 Region 0: Memory at f8000000 (32-bit, prefetchable) [size=64M] Region 1: Memory at ffa80000 (32-bit, non-prefetchable) [size=512K] Capabilities: [dc] Power Management version 1 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- 00:1e.0 PCI bridge: Intel Corporation 82801AA PCI Bridge (rev 02) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=64 I/O behind bridge: 0000d000-0000dfff Memory behind bridge: ff800000-ff8fffff Prefetchable memory behind bridge: f6a00000-f6afffff BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B- 00:1f.0 ISA bridge: Intel Corporation 82801AA ISA Bridge (LPC) (rev 02) Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0
00:1f.1 IDE interface: Intel Corporation 82801AA IDE (rev 02) (prog-if 80 [Master]) Subsystem: Intel Corporation 82801AA IDE Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Region 4: I/O ports at ffa0 [size=16]
00:1f.2 USB Controller: Intel Corporation 82801AA USB (rev 02) (prog-if 00 [UHCI]) Subsystem: Intel Corporation 82801AA USB Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Interrupt: pin D routed to IRQ 9 Region 4: I/O ports at ef80 [size=32]
00:1f.3 SMBus: Intel Corporation 82801AA SMBus (rev 02) Subsystem: Intel Corporation 82801AA SMBus Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin B routed to IRQ 10 Region 4: I/O ports at efa0 [size=16]
01:08.0 Ethernet controller: Lite-On Communications Inc LNE100TX (rev 21) Subsystem: Netgear FA310TX Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 64 Interrupt: pin A routed to IRQ 11 Region 0: I/O ports at d800 [size=256] Region 1: Memory at ff8ffc00 (32-bit, non-prefetchable) [size=256] Expansion ROM at ff880000 [disabled] [size=256K] 01:09.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 06) Subsystem: Ensoniq Creative Sound Blaster AudioPCI64V, AudioPCI128 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort+ <MAbort+ >SERR- <PERR- Latency: 64 (3000ns min, 32000ns max) Interrupt: pin A routed to IRQ 10 Region 0: I/O ports at df00 [size=64] Capabilities: [dc] Power Management version 1 Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA PME(D0+,D1-,D2+,D3hot+,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME-
BTW (and this isn't related to my crash because I didn't include this in my diff) I noticed this in the difference between -ac12 and -ac18 (and I believe it's still like this in -ac24):
diff -u linux.ac/mm/memory.c linux.ac/mm/memory.c --- linux.ac/mm/memory.c +++ linux.ac/mm/memory.c @@ -978,7 +978,12 @@ } inode->i_size = offset; if (inode->i_op && inode->i_op->truncate) + { + /* This doesnt scale but it is meant to be a 2.4 invariant */ + lock_kernel(); inode->i_op->truncate(inode); + unlock_kernel(); + } return 0; out: return -EFBIG;
A few lines earlier in this function, inode->i_op->truncate() is called without lock_kernel(). Should it also have a lock_kernel(), or is it not needed there?
-- Paul Cassella
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |