Hi there, I was (until last week) a happy user of SLES8 running on Compaq/HJP ML350, which is Dual PIV Xeon. Hyperthreading is enabled and with older kernels (<2.4.21) I was able to see 4 CPUs. Last week I rather unwisely decided to apply SP3 which includes kernel 2.4.21. Since than I can't see 4 CPUs. Only two. When I disabled HyperThreading in BIOS I was able to see only one CPU. I tried to boot the kernel with apic and without apic (noapic). See snippet of dmesg below. I've changed SMP behaviour in BIOS (Auto/APIC/Mapping). No difference. I've seen in lkm-list that there have been some changes to APIC code in 2.4.21, but didn't find anything that could help me. It might be problem with the Hyperthreading code or it can't see the second CPU (and is using Hyperthreading to show two of them). I suppose that one of the options might be to downgrade back to pre 2.4.21 kernel, but I'd hate to admit a defeat. I would be happy to recompile the kernel, but I am not sure what to change because all SMP options are already enabled. Has anyone got any idea what else can I do? I am getting pretty desperate. Thanks Robert Here are the logs: --------- Hyperthreading with APIC ---------- It can see 4 APICs, but uses 2 CPUs only --------------------------------------------- testing the IO APIC....................... IO APIC #2...... .... register #00: 02000000 ....... : physical APIC id: 02 ....... : Delivery Type: 0 ....... : LTS : 0 .... register #01: 000F0011 ....... : max redirection entries: 000F ....... : PRQ implemented: 0 ....... : IO APIC version: 0011 .... register #02: 02000000 ....... : arbitration: 02 .... 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 0 0 39 02 001 01 0 0 0 0 0 0 0 31 03 000 00 1 0 0 0 0 0 0 00 04 001 01 0 0 0 0 0 0 0 41 05 000 00 1 0 0 0 0 0 0 00 06 001 01 0 0 0 0 0 0 0 49 07 000 00 0 0 0 0 0 0 0 51 08 001 01 0 0 0 0 0 0 0 59 09 000 00 1 1 0 1 0 0 0 61 0a 000 00 1 0 0 0 0 0 0 00 0b 000 00 1 1 0 1 0 0 0 69 0c 001 01 0 0 0 0 0 0 0 71 0d 000 00 0 0 0 0 0 0 0 79 0e 001 01 0 0 0 0 0 0 0 81 0f 000 00 1 0 0 0 0 0 0 00 IO APIC #3...... .... register #00: 03000000 ....... : physical APIC id: 03 ....... : Delivery Type: 0 ....... : LTS : 0 .... register #01: 000F0011 ....... : max redirection entries: 000F ....... : PRQ implemented: 0 ....... : IO APIC version: 0011 .... register #02: 03000000 ....... : arbitration: 03 .... 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 1 1 0 1 0 0 0 89 02 001 01 1 1 0 1 0 0 0 91 03 000 00 1 1 0 1 0 0 0 99 04 001 01 1 1 0 1 0 0 0 A1 05 000 00 1 1 0 1 0 0 0 A9 06 001 01 1 1 0 1 0 0 0 B1 07 000 00 1 1 0 1 0 0 0 B9 08 001 01 1 1 0 1 0 0 0 C1 09 000 00 1 1 0 1 0 0 0 C9 0a 001 01 1 1 0 1 0 0 0 D1 0b 000 00 1 0 0 0 0 0 0 00 0c 001 01 1 1 0 1 0 0 0 D9 0d 000 00 1 1 0 1 0 0 0 E1 0e 000 00 1 0 0 0 0 0 0 00 0f 000 00 1 1 0 1 0 0 0 E9 IO APIC #4...... .... register #00: 04000000 ....... : physical APIC id: 04 ....... : Delivery Type: 0 ....... : LTS : 0 .... register #01: 000F0011 ....... : max redirection entries: 000F ....... : PRQ implemented: 0 ....... : IO APIC version: 0011 .... register #02: 04000000 ....... : arbitration: 04 .... 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 1 0 0 0 0 0 0 00 02 000 00 1 0 0 0 0 0 0 00 03 000 00 1 0 0 0 0 0 0 00 04 000 00 1 0 0 0 0 0 0 00 05 000 00 1 0 0 0 0 0 0 00 06 000 00 1 0 0 0 0 0 0 00 07 000 00 1 0 0 0 0 0 0 00 08 000 00 1 0 0 0 0 0 0 00 09 000 00 1 0 0 0 0 0 0 00 0a 000 00 1 0 0 0 0 0 0 00 0b 000 00 1 0 0 0 0 0 0 00 0c 000 00 1 0 0 0 0 0 0 00 0d 000 00 1 0 0 0 0 0 0 00 0e 000 00 1 0 0 0 0 0 0 00 0f 000 00 1 0 0 0 0 0 0 00 IO APIC #5...... .... register #00: 05000000 ....... : physical APIC id: 05 ....... : Delivery Type: 0 ....... : LTS : 0 .... register #01: 000F0011 ....... : max redirection entries: 000F ....... : PRQ implemented: 0 ....... : IO APIC version: 0011 .... register #02: 05000000 ....... : arbitration: 05 .... 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 1 0 0 0 0 0 0 00 02 000 00 1 0 0 0 0 0 0 00 03 000 00 1 0 0 0 0 0 0 00 04 000 00 1 0 0 0 0 0 0 00 05 000 00 1 0 0 0 0 0 0 00 06 000 00 1 0 0 0 0 0 0 00 07 000 00 1 0 0 0 0 0 0 00 08 000 00 1 0 0 0 0 0 0 00 09 000 00 1 0 0 0 0 0 0 00 0a 000 00 1 0 0 0 0 0 0 00 0b 000 00 1 0 0 0 0 0 0 00 0c 000 00 1 0 0 0 0 0 0 00 0d 000 00 1 0 0 0 0 0 0 00 0e 000 00 1 0 0 0 0 0 0 00 0f 000 00 1 0 0 0 0 0 0 00 IRQ to pin mappings: IRQ0 -> 0:2 IRQ1 -> 0:1 IRQ4 -> 0:4 IRQ6 -> 0:6 IRQ7 -> 0:7 IRQ8 -> 0:8 IRQ9 -> 0:9 IRQ11 -> 0:11 IRQ12 -> 0:12 IRQ13 -> 0:13 IRQ14 -> 0:14 IRQ17 -> 1:1 IRQ18 -> 1:2 IRQ19 -> 1:3 IRQ20 -> 1:4 IRQ21 -> 1:5 IRQ22 -> 1:6 IRQ23 -> 1:7 IRQ24 -> 1:8 IRQ25 -> 1:9 IRQ26 -> 1:10 IRQ28 -> 1:12 IRQ29 -> 1:13 IRQ31 -> 1:15 .................................... done. Using local APIC timer interrupts. calibrating APIC timer ... ..... CPU clock speed is 2193.0332 MHz. ..... host bus clock speed is 99.6832 MHz. cpu: 0, clocks: 996832, slice: 332277 CPU0T0:996832,T1:664544,D:11,S:332277,C:996832 cpu: 1, clocks: 996832, slice: 332277 CPU1T0:996832,T1:332272,D:6,S:332277,C:996832 checking TSC synchronization across CPUs: passed. migration_task 0 on cpu=0 migration_task 1 on cpu=1 ...... -------------------------- END -------------------- ------------- Hyperthreading with NOAPIC ---------- It can see 4 CPUs, but uses 2 CPUs only --------------------------------------------------- Linux version 2.4.21-169-smp (root@i386.suse.de) (gcc version 3.2.2) #1 SMP Fri Jan 2 19:10:04 UTC 2004 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009f400 (usable) BIOS-e820: 000000000009f400 - 00000000000a0000 (reserved) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000005fffa000 (usable) BIOS-e820: 000000005fffa000 - 0000000060000000 (ACPI data) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved) BIOS-e820: 00000000ffc00000 - 0000000100000000 (reserved) 128MB vmalloc/ioremap area available. 639MB HIGHMEM available. 896MB LOWMEM available. ACPI: have wakeup address 0xc0002000 found SMP MP-table at 000f4fd0 hm, page 000f4000 reserved twice. hm, page 000f5000 reserved twice. hm, page 000f3000 reserved twice. hm, page 000f4000 reserved twice. On node 0 totalpages: 393210 zone(0): 4096 pages. zone(1): 225280 pages. zone(2): 163834 pages. Compaq ProLiant ML350 G3 detected: force use of acpi=oldboot ACPI: Searched entire block, no RSDP was found. ACPI: RSDP located at physical address c00f4f70 RSD PTR v0 [COMPAQ] [snip] LAPIC (acpi_id[0x0000] id[0x0] enabled[1]) CPU 0 (0x0000) enabledProcessor #0 Pentium 4(tm) XEON(tm) APIC version 20 LAPIC (acpi_id[0x0002] id[0x2] enabled[0]) CPU 1 (0x0200) disabled LAPIC (acpi_id[0x0004] id[0x4] enabled[0]) CPU 2 (0x0400) disabled LAPIC (acpi_id[0x0006] id[0x6] enabled[1]) CPU 3 (0x0600) enabledProcessor #6 Pentium 4(tm) XEON(tm) APIC version 20 LAPIC (acpi_id[0x0001] id[0x1] enabled[1]) CPU 4 (0x0100) enabledProcessor #1 Pentium 4(tm) XEON(tm) APIC version 20 LAPIC (acpi_id[0x0003] id[0x3] enabled[0]) CPU 5 (0x0300) disabled LAPIC (acpi_id[0x0005] id[0x5] enabled[0]) CPU 6 (0x0500) disabled LAPIC (acpi_id[0x0007] id[0x7] enabled[1]) CPU 7 (0x0700) enabledProcessor #7 Pentium 4(tm) XEON(tm) APIC version 20 IOAPIC (id[0x2] address[0xfec00000] global_irq_base[0x0]) IOAPIC (id[0x3] address[0xfec01000] global_irq_base[0x10]) IOAPIC (id[0x4] address[0xfec02000] global_irq_base[0x20]) IOAPIC (id[0x5] address[0xfec03000] global_irq_base[0x30]) INT_SRC_OVR (bus[0] irq[0x0] global_irq[0x2] polarity[0x1] trigger[0x1]) LAPIC_NMI (acpi_id[0x00ff] polarity[0x0] trigger[0x0] lint[0x1]) 8 CPUs total Local APIC address fee00000 __va_range(0x5fffa1c0, 0x24): idx=32 mapped at fffde000 __va_range(0x5fffa1c0, 0x50): idx=32 mapped at fffde000 ACPI table found: SPCR v1 [COMPAQ SPCRRBSU 0.1] Using ACPI for processor (LAPIC) configuration information Intel MultiProcessor Specification v1.4 Virtual Wire compatibility mode. OEM ID: COMPAQ Product ID: PROLIANT APIC at: 0xFEE00000 I/O APIC #2 Version 17 at 0xFEC00000. I/O APIC #3 Version 17 at 0xFEC01000. I/O APIC #4 Version 17 at 0xFEC02000. I/O APIC #5 Version 17 at 0xFEC03000. Enabling APIC mode: Physical. Using 4 I/O APICs Processors: 4 Building zonelist for node : 0 Kernel command line: auto BOOT_IMAGE=linux ro root=6803 noapic Initializing CPU#0 Detected 2192.979 MHz processor. [snip] CPU0: Intel(R) Xeon(TM) CPU 2.20GHz stepping 07 per-CPU timeslice cutoff: 1463.11 usecs. task migration cache decay timeout: 10 msecs. enabled ExtINT on CPU#0 Leaving ESR disabled. Booting processor 1/1 eip 3000 Initializing CPU#1 masked ExtINT on CPU#1 Leaving ESR disabled. Calibrating delay loop... 4377.80 BogoMIPS CPU: Trace cache: 12K uops, L1 D cache: 8K CPU: L2 cache: 512K CPU: Physical Processor ID: 0 Intel machine check reporting enabled on CPU#1. CPU: After generic, caps: bfebfbff 00000000 00000000 00000000 CPU: Common caps: bfebfbff 00000000 00000000 00000000 CPU1: Intel(R) Xeon(TM) CPU 2.20GHz stepping 07 Total of 2 processors activated (8755.60 BogoMIPS). ........ ------------------------- END ----------------------------