Skip to contentSkip to conversation

Intel SMP problem with ASUS mb

DISCUSSION Snehasis Sinha 3 participants 6 messages Sep 27, 2002 – Sep 30, 2002

lore
Share & tools
lore
#0 lore raw

Friends,

I have a typical problem with Dual Intel board from ASUS. Everytime I boot with SMP kernel, the system hangs (stops responding) sometimes by giving a kernel panic, sometimes the display goes off. In all cases I cannot attempt rebooting using CTRL+ALT+DEL.

I entered into BIOS and disabled MP1.4 as recommended by some sites dealing with SMP problem with ASUS motherboard. The system smoothly booted, but failed to start the ethernet (eth0) interface. I checked if the driver module is there in /lib/modules/2.4.7-10smp/ directory as it is in /lib/modules/2.4.9-13/ (non-SMP generic) directory. I made appropriate correction in /etc/lilo.conf also.

Can anyone please suggest, where the problem is.

One more amazing thing I notices. I was testing the performance by using a multi-threaded Java program to calculate PI using Monte-Carlo simulation. For 90,000,000 iterations using non-SMP generic kernel, it took 21 seconds, while for the same iteration using SMP kernel it took 32 seconds!!

Please suggest me any solution. I am trying for the last several weeks.

The configuration of my system is given below:

Mainboard: ASUS CUV4X-D
Processor: Two Intel PIII/1000MHz Coppermine
Memory:    2 x 256 Mb
I/O:       Adaptec SCSI Controller AHA-2460 80MB/sec
Disk:      Seagate Cheetah, 10000 RPM
Ethernet:  RealTek 8029 (using ne2k-pci driver)

Thanks in advance,
Snehasis Sinha

#1 lore raw
Quoted 6 lines · Snehasis Sinha

I entered into BIOS and disabled MP1.4 as recommended by some sites dealing with SMP problem with ASUS motherboard. The system smoothly booted, but failed to start the ethernet (eth0) interface. I checked if the driver module is there in /lib/modules/2.4.7-10smp/ directory as it is in /lib/modules/2.4.9-13/ (non-SMP generic) directory. I made appropriate correction in /etc/lilo.conf also.

You don't give the exact logged messages from dmesg so its hard to help

Quoted 7 lines

Can anyone please suggest, where the problem is.

One more amazing thing I notices. I was testing the performance by using a multi-threaded Java program to calculate PI using Monte-Carlo simulation. For 90,000,000 iterations using non-SMP generic kernel, it took 21 seconds, while for the same iteration using SMP kernel it took 32 seconds!!

Does your java system correctly handle SMP. Does your locking scale, are you causing cache bouncing ? There are a million ways to write programs that perform far worse on SMP.

Alan

#2 lore raw
Quoted 10 lines · Alan Cox
Quoted 6 lines · Snehasis Sinha

I entered into BIOS and disabled MP1.4 as recommended by some sites dealing with SMP problem with ASUS motherboard. The system smoothly booted, but failed to start the ethernet (eth0) interface. I checked if the driver module is there in /lib/modules/2.4.7-10smp/ directory as it is in /lib/modules/2.4.9-13/ (non-SMP generic) directory. I made appropriate correction in /etc/lilo.conf also.

You don't give the exact logged messages from dmesg so its hard to help

This is the dmesg message:
--------------------------
--------------------------
Linux version 2.4.7-10smp ([email protected]) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)) #1 SMP Thu Sep 6 17:09:31 EDT 2001
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000001fffc000 (usable)
BIOS-e820: 000000001fffc000 - 000000001ffff000 (ACPI data)
BIOS-e820: 000000001ffff000 - 0000000020000000 (ACPI NVS)
BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
Scanning bios EBDA for MXT signature
found SMP MP-table at 000f54d0
hm, page 000f5000 reserved twice.
hm, page 000f6000 reserved twice.
hm, page 000f5000 reserved twice.
hm, page 000f6000 reserved twice.
On node 0 totalpages: 131068
zone(0): 4096 pages.
zone(1): 126972 pages.
zone(2): 0 pages.
Intel MultiProcessor Specification v1.1
Virtual Wire compatibility mode.
OEM ID: OEM00000 Product ID: PROD00000000 APIC at: 0xFEE00000 Processor #3 Pentium(tm) Pro APIC version 17
Processor #0 Pentium(tm) Pro APIC version 17
I/O APIC #2 Version 17 at 0xFEC00000.
Processors: 2
Kernel command line: auto BOOT_IMAGE=smp ro root=801 BOOT_FILE=/boot/vmlinuz-2.4.7-10smp
Initializing CPU#0
Detected 1004.523 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 2005.40 BogoMIPS
Memory: 510244k/524272k available (1396k kernel code, 11580k reserved, 102k data, 240k init, 0k highmem)
Dentry-cache hash table entries: 65536 (order: 7, 524288 bytes) Inode-cache hash table entries: 32768 (order: 6, 262144 bytes) Mount-cache hash table entries: 8192 (order: 4, 65536 bytes) Buffer-cache hash table entries: 32768 (order: 5, 131072 bytes) Page-cache hash table entries: 131072 (order: 8, 1048576 bytes)
CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.

CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
CPU:     After generic, caps: 0383fbff 00000000 00000000 00000000
CPU:             Common caps: 0383fbff 00000000 00000000 00000000

Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done. Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.40 (20010327) Richard Gooch ([email protected])
mtrr: detected mtrr type: Intel
CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Intel machine check reporting enabled on CPU#0.

CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
CPU:     After generic, caps: 0383fbff 00000000 00000000 00000000
CPU:             Common caps: 0383fbff 00000000 00000000 00000000
CPU0: Intel Pentium III (Coppermine) stepping 0a
per-CPU timeslice cutoff: 731.07 usecs.

enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Booting processor 1/0 eip 2000
Initializing CPU#1
masked ExtINT on CPU#1
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Calibrating delay loop... 2005.40 BogoMIPS
CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Intel machine check reporting enabled on CPU#1.

CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
CPU:     After generic, caps: 0383fbff 00000000 00000000 00000000
CPU:             Common caps: 0383fbff 00000000 00000000 00000000
CPU1: Intel Pentium III (Coppermine) stepping 0a

Total of 2 processors activated (4010.80 BogoMIPS). ENABLING IO-APIC IRQs
...changing IO-APIC physical APIC ID to 2 ... ok.
init IO_APIC IRQs
IO-APIC (apicid-pin) 2-0, 2-13, 2-16, 2-17, 2-18, 2-19, 2-20, 2-21,
2-22, 2-23 not connected.
..TIMER: vector=0x31 pin1=2 pin2=0
number of MP IRQ sources: 15.
number of IO-APIC #2 registers: 24.
testing the IO APIC.......................

IO APIC #2......
.... register #00: 02000000
....... : physical APIC id: 02
.... register #01: 00178011
....... : max redirection entries: 0017
....... : IO APIC version: 0011
WARNING: unexpected IO-APIC, please mail
to [email protected]
.... 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 003 03  0    0    0   0   0    1    1    39
 02 003 03  0    0    0   0   0    1    1    31
 03 003 03  0    0    0   0   0    1    1    41
 04 003 03  0    0    0   0   0    1    1    49
 05 003 03  1    1    0   1   0    1    1    51
 06 003 03  0    0    0   0   0    1    1    59
 07 003 03  0    0    0   0   0    1    1    61
 08 003 03  0    0    0   0   0    1    1    69
 09 003 03  0    0    0   0   0    1    1    71
 0a 003 03  1    1    0   1   0    1    1    79
 0b 003 03  1    1    0   1   0    1    1    81
 0c 003 03  0    0    0   0   0    1    1    89
 0d 000 00  1    0    0   0   0    0    0    00
 0e 003 03  0    0    0   0   0    1    1    91
 0f 003 03  0    0    0   0   0    1    1    99
 10 000 00  1    0    0   0   0    0    0    00
 11 000 00  1    0    0   0   0    0    0    00
 12 000 00  1    0    0   0   0    0    0    00
 13 000 00  1    0    0   0   0    0    0    00
 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 -> 0:2
IRQ1 -> 0:1
IRQ3 -> 0:3
IRQ4 -> 0:4
IRQ5 -> 0:5
IRQ6 -> 0:6
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9
IRQ10 -> 0:10
IRQ11 -> 0:11
IRQ12 -> 0:12
IRQ14 -> 0:14
IRQ15 -> 0:15
.................................... done.
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 1004.5340 MHz.
..... host bus clock speed is 133.9377 MHz.
cpu: 0, clocks: 1339377, slice: 446459 CPU0<T0:1339376,T1:892912,D:5,S:446459,C:1339377>
cpu: 1, clocks: 1339377, slice: 446459 CPU1<T0:1339376,T1:446448,D:10,S:446459,C:1339377>
checking TSC synchronization across CPUs: passed.
PCI: PCI BIOS revision 2.10 entry at 0xf0d20, last bus=1
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 0: assuming transparent
Unknown bridge resource 1: assuming transparent
Unknown bridge resource 2: assuming transparent
PCI: Using IRQ router VIA [1106/0686] at 00:04.0
PCI: Enabling Via external APIC routing
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket
Simple Boot Flag extension found and enabled.
apm: BIOS version 1.2 Flags 0x0b (Driver version 1.14)
apm: disabled - APM is not SMP safe.
mxt_scan_bios: enter
Starting kswapd v1.8
VFS: Diskquotas version dquot_6.5.0 initialized
Detected PS/2 Mouse Port.
pty: 2048 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS MULTIPORT SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Real Time Clock Driver v1.10d
block: queued sectors max/low 338752kB/207680kB, 1024 slots per queue RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz PCI bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 21
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
ide: Assuming 33MHz PCI bus speed for PIO modes; override with idebus=xx
VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci00:04.1

    ide0: BM-DMA at 0xd800-0xd807, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:pio, hdd:pio

hda: IRQ probe failed (0xfffffef8)
hda: IRQ probe failed (0xfffffef8)
hda: no response (status = 0x0a), resetting drive
hda: IRQ probe failed (0xfffffef8)
hda: no response (status = 0x0a)
hdb: IRQ probe failed (0xfffffef8)
hdb: IRQ probe failed (0xfffffef8)
hdb: no response (status = 0x0a), resetting drive
hdb: IRQ probe failed (0xfffffef8)
hdb: no response (status = 0x0a)
ide-floppy driver 0.97
floppy0: no floppy controllers found
ide-floppy driver 0.97
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 32768) Linux IP multicast router 0.06 plus PIM-SM
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 378k freed
VFS: Mounted root (ext2 filesystem).
SCSI subsystem driver Revision: 1.00
(scsi0) <Adaptec AHA-294X Ultra SCSI host adapter> found at PCI 0/11/0 (scsi0) Wide Channel, SCSI ID=7, 16/255 SCBs
(scsi0) Cables present (Int-50 NO, Int-68 YES, Ext-68 NO) (scsi0) Downloading sequencer code... 436 instructions downloaded scsi0 : Adaptec AHA274x/284x/294x (EISA/VLB/PCI-Fast SCSI) 5.2.4/5.2.0
<Adaptec AHA-294X Ultra SCSI host adapter>
Vendor: SEAGATE Model: ST318406LW Rev: 0109
Type: Direct-Access ANSI SCSI revision: 03
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 (scsi0:0:0:0) Synchronous at 40.0 Mbyte/sec, offset 8.
SCSI device sda: 35843670 512-byte hdwr sectors (18352 MB) Partition check:
sda: sda1 sda2 sda3 < sda5 sda6 sda7 sda8 sda9 sda10 >
Freeing unused kernel memory: 240k freed
Adding Swap: 530136k swap-space (priority -1)
Journalled Block Device driver loaded
kjournald starting. Commit interval 5 seconds
EXT3 FS 2.4-0.9.8, 25 Aug 2001 on sd(8,10), internal journal
EXT3-fs: mounted filesystem with ordered data mode.
parport0: PC-style at 0x378 [PCSPP,EPP]
parport0: cpp_daisy: aa5500ff(30)
parport0: assign_addrs: aa5500ff(30)
parport0: cpp_daisy: aa5500ff(30)
parport0: assign_addrs: aa5500ff(30)
parport_pc: Via 686A parallel port: io=0x378 ne2k-pci.c:v1.02 10/19/2000 D. Becker/P. Gortmaker
http://www.scyld.com/network/ne2k-pci.html
PCI: Enabling device 00:0a.0 (0000 -> 0001)
PCI: No IRQ known for interrupt pin A of device 00:0a.0. Probably buggy MP table.
eth0: RealTek RTL-8029 found at 0xb800, IRQ 0, 00:40:05:71:AD:0F.
--------------------------------------
--------------------------------------

Quoted 9 lines
Quoted 8 lines

Can anyone please suggest, where the problem is.

One more amazing thing I notices. I was testing the performance by using a multi-threaded Java program to calculate PI using Monte-Carlo simulation. For 90,000,000 iterations using non-SMP generic kernel, it took 21 seconds, while for the same iteration using SMP kernel it took 32 seconds!!

Quoted 3 lines

Does your java system correctly handle SMP. Does your locking scale, are you causing cache bouncing ? There are a million ways to write programs that perform far worse on SMP.

I am not sure about it. I am using Sun J2SDK 1.3.1 for Linux which uses green_thread. I don't have any idea about ``lock scale'' or ``cache bouncing''. Please give a little more light.

Thanks,
Snehasis

Quoted 7 lines

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-smp" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 3 lines · Snehasis Sinha

PCI: No IRQ known for interrupt pin A of device 00:0a.0. Probably buggy MP table.
eth0: RealTek RTL-8029 found at 0xb800, IRQ 0, 00:40:05:71:AD:0F.

So it found your ne2k clone.

Quoted 3 lines

I am not sure about it. I am using Sun J2SDK 1.3.1 for Linux which uses green_thread. I don't have any idea about ``lock scale'' or ``cache bouncing''. Please give a little more light.

You need to learn how computers and caches actually work. This isnt something the JDK can hide, or something anyone else can do for you.

#4 lore raw
Quoted 7 lines · Alan Cox
Quoted 3 lines · Snehasis Sinha

PCI: No IRQ known for interrupt pin A of device 00:0a.0. Probably buggy MP table.
eth0: RealTek RTL-8029 found at 0xb800, IRQ 0, 00:40:05:71:AD:0F.

So it found your ne2k clone.

Is there any workaround to get it going? It loads the driver and fails to start the network. I am trying to dig. Please give me any hint, if possible.

Quoted 7 lines
Quoted 4 lines

I am not sure about it. I am using Sun J2SDK 1.3.1 for Linux which uses green_thread. I don't have any idea about ``lock scale'' or ``cache bouncing''. Please give a little more light.

You need to learn how computers and caches actually work. This isnt something the JDK can hide, or something anyone else can do for you.

Actually I was not aware of the terminologies. I am going through it. Trying to write some raw C based system Program to use SMP directly and looking for some ready to run program to test out.

Quoted 5 lines

-
To unsubscribe from this list: send the line "unsubscribe linux-smp" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#5 lore raw
Quoted 7 lines · Snehasis Sinha
Quoted 6 lines · Alan Cox
Quoted 3 lines · Snehasis Sinha

PCI: No IRQ known for interrupt pin A of device 00:0a.0. Probably buggy MP table.
eth0: RealTek RTL-8029 found at 0xb800, IRQ 0, 00:40:05:71:AD:0F.

Quoted 5 lines
Quoted 1 line

So it found your ne2k clone.

Is there any workaround to get it going? It loads the driver and fails to start the network. I am trying to dig. Please give me any hint, if possible.

Nothing in the log you posted says it wasnt going.

Quoted 3 lines

Actually I was not aware of the terminologies. I am going through it. Trying to write some raw C based system Program to use SMP directly and looking for some ready to run program to test out.

You might want to borrow "Unix Systems For Modern Architectures" from the local library before the RIAA have libraries banned. Its aimed at OS designers but it does give a basic grounding in things like caches.

Roughly speaking its

- Don't context switch needlessly
- Don't reference write to the same data from multiple threads all the time
- Try not to write data that is regularly read by all the threads to often
(Same being typically 'within 64 bytes/within 256 bytes' sort of
ranges.
- Threads are not free, you probably want one thread per cpu when doing compute jobs
- When you have to do large computations use algorithms that don't have all threads randomly accessing all data use algorithms designed for the job.