I just tried to submit this on bugzilla, but couldn't: kept getting
interal server errors. I'll try again later. For now, has anyone seen
anything like this? This is with kernel-smp-2.4.21.0.13mdk-1-1mdk.
IO-APIC is enabled on my system, however all interrupts are routed to
CPU0. This didn't used to be the case, and I see a *drastic*
performance hit because of this (for instance, using mencoder to
capture real-time TV I used to get 35fps, now I can't even get 20fps).
However, if I reset all the /proc/irq/x/smp_affinity's, interrupts
immediately begin being routed to both CPUs as they should.
Before doing anything special on boot:
$ cat /proc/interrupts
CPU0 CPU1
0: 39230 0 IO-APIC-edge timer
1: 1209 0 IO-APIC-edge keyboard
2: 0 0 XT-PIC cascade
5: 9628 0 IO-APIC-level EMU10K1
8: 1 0 IO-APIC-edge rtc
10: 2 0 IO-APIC-level usb-uhci, bttv
11: 21079 0 IO-APIC-level eth0, [EMAIL PROTECTED]:1:0:0
12: 14394 0 IO-APIC-edge PS/2 Mouse
14: 21915 0 IO-APIC-edge ide0
15: 118 0 IO-APIC-edge ide1
NMI: 0 0
LOC: 63419 63418
ERR: 1
MIS: 0
$ cat /proc/irq/0/smp_affinity
ffffffff
This indicates that the irq's should be shared... but it's not happening
unless I write something to smp_affinity.
$ echo 3 > /proc/irq/0/smp_affinity
(repeated for each /proc/irq/[0 .. 15]/smp_affinity)
(this actually works as expected if I write 1 (only goes to CPU0) or 2
(only goes to CPU1) or f or ffffffff (shares properly); it seems to be
the *writing* that wakes it up and makes it work =)
$ cat /proc/interrupts
CPU0 CPU1
0: 60473 45340 IO-APIC-edge timer
1: 2816 2246 IO-APIC-edge keyboard
2: 0 0 XT-PIC cascade
5: 19564 19645 IO-APIC-level EMU10K1
8: 1 0 IO-APIC-edge rtc
10: 2 0 IO-APIC-level usb-uhci, bttv
11: 38152 37213 IO-APIC-level eth0, [EMAIL PROTECTED]:1:0:0
12: 20214 20033 IO-APIC-edge PS/2 Mouse
14: 22348 14098 IO-APIC-edge ide0
15: 118 50 IO-APIC-edge ide1
NMI: 0 0
LOC: 105730 105729
ERR: 5
MIS: 0
Oh wow! Look, now it's routing to both processors!
Attached in my dmesg, in case this is helpful:
found SMP MP-table at 000f5940
hm, page 000f5000 reserved twice.
hm, page 000f6000 reserved twice.
hm, page 000f1000 reserved twice.
hm, page 000f2000 reserved twice.
On node 0 totalpages: 98304
zone(0): 4096 pages.
zone(1): 94208 pages.
zone(2): 0 pages.
ACPI: Unable to locate RSDP
Intel MultiProcessor Specification v1.1
Virtual Wire compatibility mode.
OEM ID: OEM00000 Product ID: PROD00000000 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.
Enabling APIC mode: Flat. Using 1 I/O APICs
Processors: 2
Kernel command line: BOOT_IMAGE=2421-13smp ro root=306 devfs=mount
hdd=ide-scsi
ide_setup: hdd=ide-scsi
Initializing CPU#0
Detected 751.727 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 1500.77 BogoMIPS
Memory: 385140k/393216k available (1497k kernel code, 7688k reserved,
1138k data,
144k 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: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 32768 (order: 5, 131072 bytes)
Page-cache hash table entries: 131072 (order: 7, 524288 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU serial number disabled.
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
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: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: 0383fbff 00000000 00000000 00000000
CPU: Common caps: 0383fbff 00000000 00000000 00000000
CPU0: Intel Pentium III (Coppermine) stepping 01
per-CPU timeslice cutoff: 732.02 usecs.
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Booting processor 1/1 eip 3000
Initializing CPU#1
masked ExtINT on CPU#1
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Calibrating delay loop... 1500.77 BogoMIPS
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU serial number disabled.
Intel machine check reporting enabled on CPU#1.
CPU: After generic, caps: 0383fbff 00000000 00000000 00000000
CPU: Common caps: 0383fbff 00000000 00000000 00000000
CPU1: Intel Pentium III (Coppermine) stepping 01
Total of 2 processors activated (3001.54 BogoMIPS).
ENABLING IO-APIC IRQs
Setting 2 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 2 ... ok.
init IO_APIC IRQs
IO-APIC (apicid-pin) 2-0, 2-5, 2-10, 2-11, 2-17, 2-20, 2-21, 2-22, 2-23
not connected.
..TIMER: vector=0x31 pin1=2 pin2=0
number of MP IRQ sources: 16.
number of IO-APIC #2 registers: 24.
testing the IO APIC.......................
IO APIC #2......
.... register #00: 02000000
....... : physical APIC id: 02
.... register #01: 00170011
....... : max redirection entries: 0017
....... : PRQ implemented: 0
....... : 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 001 01 0 0 0 0 0 1 1 39
02 001 01 0 0 0 0 0 1 1 31
03 001 01 0 0 0 0 0 1 1 41
04 001 01 0 0 0 0 0 1 1 49
05 000 00 1 0 0 0 0 0 0 00
06 001 01 0 0 0 0 0 1 1 51
07 001 01 0 0 0 0 0 1 1 59
08 001 01 0 0 0 0 0 1 1 61
09 001 01 0 0 0 0 0 1 1 69
0a 000 00 1 0 0 0 0 0 0 00
0b 000 00 1 0 0 0 0 0 0 00
0c 001 01 0 0 0 0 0 1 1 71
0d 001 01 0 0 0 0 0 1 1 79
0e 001 01 0 0 0 0 0 1 1 81
0f 001 01 0 0 0 0 0 1 1 89
10 001 01 1 1 0 1 0 1 1 91
11 000 00 1 0 0 0 0 0 0 00
12 001 01 1 1 0 1 0 1 1 99
13 001 01 1 1 0 1 0 1 1 A1
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:18
IRQ6 -> 0:6
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9
IRQ10 -> 0:19
IRQ11 -> 0:16
IRQ12 -> 0:12
IRQ13 -> 0:13
IRQ14 -> 0:14
IRQ15 -> 0:15
.................................... done.
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 751.7716 MHz.
..... host bus clock speed is 100.2361 MHz.
cpu: 0, clocks: 1002361, slice: 334120
CPU0<T0:1002352,T1:668224,D:8,S:334120,C:1002361>
cpu: 1, clocks: 1002361, slice: 334120
CPU1<T0:1002352,T1:334112,D:0,S:334120,C:1002361>
checking TSC synchronization across CPUs: passed.
Waiting on wait_init_idle (map = 0x2)
All processors have done init_idle
mtrr: your CPUs had inconsistent variable MTRR settings
mtrr: probably your BIOS does not setup all CPUs
ACPI: Subsystem revision 20030122
PCI: PCI BIOS revision 2.10 entry at 0xfb2c0, last bus=1
PCI: Using configuration type 1
ACPI: System description tables not found
ACPI-0084: *** Error: acpi_load_tables: Could not get RSDP,
AE_NOT_FOUND
ACPI-0134: *** Error: acpi_load_tables: Could not load tables:
AE_NOT_FOUND
ACPI: Unable to load the System Description Tables
PCI: Probing PCI hardware
PCI: ACPI tables contain no PCI IRQ routing entries
PCI: Probing PCI hardware (bus 00)
PCI: Using IRQ router VIA [1106/0596] at 00:07.0
Activating ISA DMA hang workarounds.
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
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16)
apm: disabled - APM is not SMP safe.
Starting kswapd
VFS: Disk quotas vdquot_6.5.1
devfs: v1.12c (20020818) Richard Gooch ([EMAIL PROTECTED])
devfs: boot_options: 0x1
pty: 1024 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with HUB-6 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
RAMDISK driver initialized: 16 RAM disks of 32000K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00beta-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
VP_IDE: IDE controller at PCI slot 00:07.1
VP_IDE: chipset revision 16
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt82c596b (rev 23) IDE UDMA66 controller on pci00:07.1
ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:DMA
ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:DMA, hdd:DMA
hda: IBM-DTLA-307045, ATA DISK drive
hdb: MAXTOR 6L080J4, ATA DISK drive
hda: DMA disabled
blk: queue c0413060, I/O limit 4095Mb (mask 0xffffffff)
hdb: DMA disabled
blk: queue c04131ac, I/O limit 4095Mb (mask 0xffffffff)
hdc: Pioneer DVD-ROM ATAPIModel DVD-115 0111, ATAPI CD/DVD-ROM drive
hdd: PHILIPS CDD3610 CD-R/RW, ATAPI CD/DVD-ROM drive
hdc: DMA disabled
hdd: DMA disabled
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hda: host protected area => 1
hda: 90069840 sectors (46116 MB) w/1916KiB Cache, CHS=5606/255/63,
UDMA(66)
hdb: host protected area => 1
hdb: 156355584 sectors (80054 MB) w/1819KiB Cache, CHS=9732/255/63,
UDMA(66)
Partition check:
/dev/ide/host0/bus0/target0/lun0: p1 p2 < p5 p6 p7 p8 p9 >
/dev/ide/host0/bus0/target1/lun0: p1
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: 119k freed
VFS: Mounted root (ext2 filesystem).
Mounted devfs on /dev
reiserfs: checking transaction log (device 03:06) ...
Using r5 hash to sort names
ReiserFS version 3.6.25
Mounted devfs on /dev
Freeing unused kernel memory: 144k freed
Real Time Clock Driver v1.10e
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb-uhci.c: $Revision: 1.275 $ time 04:44:10 Mar 7 2003
usb-uhci.c: High bandwidth mode enabled
usb-uhci.c: USB UHCI at I/O 0xd400, IRQ 10
usb-uhci.c: Detected 2 ports
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
usbdevfs: remount parameter error
Adding Swap: 401552k swap-space (priority -1)
hub.c: new USB device 00:07.2-1, assigned address 2
usb_control/bulk_msg: timeout
usb.c: USB device not accepting new address=2 (error=-110)
hub.c: new USB device 00:07.2-1, assigned address 3
usb_control/bulk_msg: timeout
usb.c: USB device not accepting new address=3 (error=-110)
SCSI subsystem driver Revision: 1.00
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
Vendor: PHILIPS Model: CDD3610 CD-R/RW Rev: 3.01
Type: CD-ROM ANSI SCSI revision: 02
i2c-core.o: i2c core module version 2.7.0 (20021208)
Linux video capture interface: v1.00
i2c-algo-bit.o: i2c bit algorithm module version 2.7.0 (20021208)
bttv: driver version 0.7.100 loaded
bttv: using 4 buffers with 2080k (8320k total) for capture
bttv: Host bridge is VIA Technologies, Inc. VT82C693A/694x [Apollo
PRO133x]
bttv: Host bridge is VIA Technologies, Inc. VT82C596 Power Management
bttv: Bt8xx card found (0).
bttv0: Bt878 (rev 17) at 00:13.0, irq: 10, latency: 32, mmio: 0xda101000
bttv0: detected: Pinnacle PCTV [card=39], PCI subsystem ID is 11bd:0012
bttv0: using: BT878(Pinnacle PCTV Studio/Ra) [card=39,autodetected]
bttv0: i2c: checking for MSP34xx @ 0x80... not found
bttv0: pinnacle/mt: id=5 info="NTSC / mono" radio=no
tda9887: probing bt848 #0 i2c adapter [id=0x10005]
tda9887: chip found @ 0x86
bttv0: i2c attach [client=tda9887,ok]
bttv0: using tuner=33
bttv0: i2c: checking for MSP34xx @ 0x80... not found
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
tvaudio: TV audio decoder + audio/video mux driver
tvaudio: known chips:
tda9840,tda9873h,tda9874h/a,tda9850,tda9855,tea6300,tea6420,tda8425,pic16c54
(PV951)
tuner: probing bt848 #0 i2c adapter [id=0x10005]
tuner: chip found @ 0xc0
tuner: type set to 33 (MT2032 universal)
MT2032: Companycode=4d54 Part=04 Revision=04
bttv0: i2c attach [client=MT2032 universal,ok]
MT2032: Companycode=4d54 Part=04 Revision=04
bttv0: PLL: 28636363 => 35468950 ... ok
bttv0: registered device video0
bttv0: registered device vbi0
hdc: ATAPI DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.12
Journalled Block Device driver loaded
kjournald starting. Commit interval 5 seconds
EXT3 FS 2.4-0.9.19, 19 August 2002 on ide0(3,65), internal journal
EXT3-fs: mounted filesystem with ordered data mode.
reiserfs: checking transaction log (device 03:08) ...
Using r5 hash to sort names
ReiserFS version 3.6.25
reiserfs: checking transaction log (device 03:09) ...
Using r5 hash to sort names
ReiserFS version 3.6.25
blk: queue c0413060, I/O limit 4095Mb (mask 0xffffffff)
blk: queue c04131ac, I/O limit 4095Mb (mask 0xffffffff)
eepro100.c:v1.09j-t 9/29/99 Donald Becker
http://www.scyld.com/network/eepro100.html
eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin
<[EMAIL PROTECTED]> and others
eth0: Intel Corp. 82557/8/9 [Ethernet Pro 100], 00:D0:B7:AF:35:0D, IRQ
11.
Board assembly 741462-004, Physical connectors present: RJ45
Primary interface chip i82555 PHY #1.
General self-test: passed.
Serial sub-system self-test: passed.
Internal registers self-test: passed.
ROM checksum self-test: passed (0x04f4518b).
inserting floppy driver for 2.4.21-0.13mdksmp
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0
sr0: scsi3-mmc drive: 6x/6x writer cd/rw xa/form2 cdda tray
Installing knfsd (copyright (C) 1996 [EMAIL PROTECTED]).
Creative EMU10K1 PCI Audio Driver, version 0.20, 04:41:37 Mar 7 2003
emu10k1: EMU10K1 rev 8 model 0x8040 found, IO at 0xd800-0xd81f, IRQ 5
ac97_codec: AC97 Audio codec, id: 0x8384:0x7609 (SigmaTel STAC9721/23)
parport0: PC-style at 0x378 [PCSPP,TRISTATE,EPP]
lp0: using parport0 (polling).
Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 322M
agpgart: Detected Via Apollo Pro chipset
agpgart: AGP aperture is 64M @ 0xd0000000
[drm] AGP 0.99 aperture @ 0xd0000000 64MB
[drm] Initialized mga 3.1.0 20021029 on minor 0
APIC error on CPU1: 00(08)
udf: registering filesystem
UDF-fs DEBUG lowlevel.c:57:udf_get_last_session: XA disk: no,
vol_desc_start=0
UDF-fs DEBUG super.c:1426:udf_read_super: Multi-session=0
UDF-fs DEBUG super.c:415:udf_vrs: Starting at sector 16 (2048 byte
sectors)
UDF-fs DEBUG super.c:442:udf_vrs: ISO9660 Primary Volume Descriptor
found
UDF-fs DEBUG super.c:445:udf_vrs: ISO9660 Supplementary Volume
Descriptor found
UDF-fs DEBUG super.c:451:udf_vrs: ISO9660 Volume Descriptor Set
Terminator found
UDF-fs: No VRS found
ISO 9660 Extensions: Microsoft Joliet Level 1
ISOFS: changing to secondary root
UDF-fs DEBUG lowlevel.c:57:udf_get_last_session: XA disk: no,
vol_desc_start=0
UDF-fs DEBUG super.c:1426:udf_read_super: Multi-session=0
UDF-fs DEBUG super.c:415:udf_vrs: Starting at sector 16 (2048 byte
sectors)
attempt to access beyond end of device
0b:00: rw=0, want=34, (=0x22), limit=2
UDF-fs DEBUG super.c:1162:udf_check_valid: Failed to read byte 32768.
Assuming open
disc. Skipping validity check
sr0: CDROM (ioctl) reports ILLEGAL REQUEST.
attempt to access beyond end of device
0b:00: rw=0, want=626, (=0x272), limit=2
attempt to access beyond end of device
0b:00: rw=0, want=514, (=0x202), limit=2
UDF-fs DEBUG misc.c:274:udf_read_tagged: block=256, location=256: read
failed
UDF-fs DEBUG super.c:1216:udf_load_partition: No Anchor block found
UDF-fs: No partition found (1)
attempt to access beyond end of device
0b:00: rw=0, want=34, (=0x22), limit=2
isofs_read_super: bread failed, dev=0b:00, iso_blknum=16, block=16
I/O error: dev 0b:00, sector 0
FAT: unable to read boot sector
I/O error: dev 0b:00, sector 0
FAT: unable to read boot sector
I/O error: dev 0b:00, sector 0
EXT2-fs: unable to read superblock
end_request: I/O error, dev 02:00 (floppy), sector 0
NET4: Linux IPX 0.47 for NET4.0
IPX Portions Copyright (c) 1995 Caldera, Inc.
IPX Portions Copyright (c) 2000, 2001 Conectiva, Inc.
NET4: AppleTalk 0.18a for Linux NET4.0
--
Wesley J. Landaker - [EMAIL PROTECTED]
OpenPGP FP: C99E DF40 54F6 B625 FD48 B509 A3DE 8D79 541F F830