Re: *Possible* SMP bug.

Mark Harburn (marcus@xcalibre.uk.com)
Tue, 29 Jun 1999 00:55:21 +0100


Details:

When the kernel is compiled SMP with pii optomistations certain programs
block on ide writes of various forms. This in turn prevens any signal from
being sent to the process to kill it, and makes the system slowley spiral
out of control. I'll provide all the process blocking details on request,
but means I have to mess up a co-location server again which isn't really
good.

When compiled with 486 it's fine.

Programs affected:-
sync, repquota, hdparm, mount/umount and any process writing to the disk.

When umount fails the system fails to reboot as the harddisk is locked by
the blocking process's.

Any further details can be provided on request.

System boot:-
Linux version 2.2.10 (root@fable) (gcc version 2.7.2.3) #5 SMP Mon Jun 28
22:30:05 BST 1999
Intel MultiProcessor Specification v1.4
Virtual Wire compatibility mode.
OEM ID: INTEL Product ID: 440BX APIC at: 0xFEE00000
Processor #0 Pentium(tm) Pro APIC version 17
Processor #1 Pentium(tm) Pro APIC version 17
I/O APIC #2 Version 17 at 0xFEC00000.
Processors: 2
mapped APIC to ffffe000 (fee00000)
mapped IOAPIC to ffffd000 (fec00000)
Detected 400912547 Hz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 399.77 BogoMIPS
Memory: 517556k/524288k available (872k kernel code, 420k reserved, 5392k
data, 48k init)
VFS: Diskquotas version dquot_6.4.0 initialized
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.35 (19990512) Richard Gooch (rgooch@atnf.csiro.au)
per-CPU timeslice cutoff: 100.22 usecs.
CPU0: Intel Pentium II (Deschutes) stepping 03
calibrating APIC timer ...
..... CPU clock speed is 400.9264 MHz.
..... system bus clock speed is 100.2315 MHz.
Booting processor 1 eip 2000
Calibrating delay loop... 400.59 BogoMIPS
OK.
CPU1: Intel Pentium II (Deschutes) stepping 03
Total of 2 processors activated (800.36 BogoMIPS).
enabling symmetric IO mode... ...done.
ENABLING IO-APIC IRQs
init IO_APIC IRQs
IO-APIC pin 0, 11, 16, 17, 19, 20, 21, 22, 23 not connected.
number of MP IRQ sources: 17.
number of IO-APIC registers: 24.
testing the IO APIC.......................
.... register #00: 02000000
....... : physical APIC id: 02
.... register #01: 00170011
....... : max redirection entries: 0017
....... : IO APIC version: 0011
.... register #02: 00000000
....... : arbitration: 00
.... IRQ redirection table:
NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
00 000 00 1 0 0 0 0 0 0 00
01 000 00 0 0 0 0 0 1 1 59
02 0FF 0F 0 0 0 0 0 1 1 51
03 000 00 0 0 0 0 0 1 1 61
04 000 00 0 0 0 0 0 1 1 69
05 000 00 0 0 0 0 0 1 1 71
06 000 00 0 0 0 0 0 1 1 79
07 000 00 0 0 0 0 0 1 1 81
08 000 00 0 0 0 0 0 1 1 89
09 000 00 0 0 0 0 0 1 1 91
0a 000 00 0 0 0 0 0 1 1 99
0b 000 00 1 0 0 0 0 0 0 00
0c 000 00 0 0 0 0 0 1 1 A1
0d 000 00 1 0 0 0 0 0 0 00
0e 000 00 0 0 0 0 0 1 1 A9
0f 000 00 0 0 0 0 0 1 1 B1
10 000 00 1 0 0 0 0 0 0 00
11 000 00 1 0 0 0 0 0 0 00
12 0FF 0F 1 1 0 1 0 1 1 B9
14 000 00 1 0 0 0 0 0 0 00
15 000 00 1 0 0 0 0 0 0 00
16 000 00 1 0 0 0 0 0 0 00
17 000 00 1 0 0 0 0 0 0 00
IRQ to pin mappings:
IRQ0 -> 2
IRQ1 -> 1
IRQ3 -> 3
IRQ4 -> 4
IRQ5 -> 5
IRQ6 -> 6
IRQ7 -> 7
IRQ8 -> 8
IRQ9 -> 9
IRQ10 -> 10
IRQ11 -> 18
IRQ12 -> 12
IRQ13 -> 13
IRQ14 -> 14
IRQ15 -> 15
.................................... done.
PCI: PCI BIOS revision 2.10 entry at 0xfdb81
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Enabling I/O for device 00:3a
Linux NET4.0 for Linux 2.2
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0 for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
Starting kswapd v 1.5
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
Software Watchdog Timer: 0.05, timer margin: 60 sec
PIIX4: IDE controller on PCI bus 00 dev 39
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:pio, hdd:pio
hda: WDC AC310200R, ATA DISK drive
hdd: HP COLORADO 14GB, ATAPI TAPE drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: WDC AC310200R, 9787MB w/512kB Cache, CHS=1247/255/63, UDMA
ide-tape: hdd: overriding capabilities->speed (assuming 650KB/sec)
ide-tape: hdd: overriding capabilities->max_speed (assuming 650KB/sec)
ide-tape: hdd <-> ht0, 650KBps, 13*32kB buffer, 3200kB pipeline, 100ms tDSC
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
tulip.c:v0.89H 5/23/98 becker@cesdis.gsfc.nasa.gov
eth0: Lite-On 82c168 PNIC at 0xe800, 00 a0 cc 3b 0b 8a, IRQ 11.
eth0: MII transceiver found at MDIO address 1, config 1000 status 782d.
eth0: Advertising 01e1 on PHY 1, previously advertising 01e1.
Partition check:
hda: hda1 hda2 hda3 hda4
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 48k freed
Adding Swap: 262580k swap-space (priority -1)
eth0: Changing PNIC configuration to full-duplex, CSR6 812e0200.

/proc/pci:
PCI devices found:
Bus 0, device 0, function 0:
Host bridge: Intel 440BX - 82443BX Host (rev 3).
Medium devsel. Master Capable. Latency=64.
Prefetchable 32 bit memory at 0xff400000 [0xff400008].
Bus 0, device 1, function 0:
PCI bridge: Intel 440BX - 82443BX AGP (rev 3).
Medium devsel. Master Capable. Latency=64. Min Gnt=128.
Bus 0, device 7, function 0:
ISA bridge: Intel 82371AB PIIX4 ISA (rev 2).
Medium devsel. Fast back-to-back capable. Master Capable. No
bursts.
Bus 0, device 7, function 1:
IDE interface: Intel 82371AB PIIX4 IDE (rev 1).
Medium devsel. Fast back-to-back capable. Master Capable.
Latency=64.
I/O at 0xffa0 [0xffa1].
Bus 0, device 7, function 2:
USB Controller: Intel 82371AB PIIX4 USB (rev 1).
Medium devsel. Fast back-to-back capable. Master Capable.
Latency=64.
I/O at 0xef80 [0xef81].
Bus 0, device 7, function 3:
Bridge: Intel 82371AB PIIX4 ACPI (rev 2).
Medium devsel. Fast back-to-back capable.
Bus 0, device 13, function 0:
Ethernet controller: LiteOn LNE100TX (rev 33).
Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable.
Latency=64.
I/O at 0xe800 [0xe801].
Non-prefetchable 32 bit memory at 0xfebeff00 [0xfebeff00].
Bus 0, device 20, function 0:
VGA compatible controller: Alliance AT3D (rev 2).
Slow devsel.
Non-prefetchable 32 bit memory at 0xfd000000 [0xfd000000].
I/O at 0xefa0 [0xefa1].

Mark Harburn
marcus@xcalibre.co.uk

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/