lkml.org 
[lkml]   [2000]   [Oct]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectSMP irq sharing problem in 2.2.17
Date

I'm using ALSA sound modules with a VIA 82C686A onboard audio chip on a MSI
694D-ProA motherboard. When I only had one cpu installed and the kernel and
ALSA were compiled for non-SMP, the sound worked fine. Since installing a
second CPU and recompiling the kernel for SMP and recompiling ALSA with
--with-smp=yes, the sound loops. I can hear the sound, but it doesn't
continue to play normally, rather, a sample will loop over and over.
However, if I cause disk activity, the sound will begin to play forward until
the disk stops. The onboard VIA Audio Controller is sharing an IRQ (IRQ18)
with the onboard promise 202065 UltraATA-100 controller. Something is broken
in SMP, the kernel or ALSA. I notice that since booting an SMP kernel, some
additional things happen on bootup: IO-APIC and related setup. It looks like
more IRQs are available in a dual system but I'm not sure how they are used.
I've tried many things in an attempt to put the via686a and the promise ide
on separate IRQs, but I can't get the BIOS to do anything different and I'm
not sure what the Linux kernel or ALSA can do to change the IRQs.

Kernel 2.2.17 patched with ide.2.2.17.all.20000904.patch
PNP enabled in kernel.
PNP OS = yes in BIOS (I've tried all combinations of these two)

ALSA 0.5.9c --with-smp=yes --with-cards=via686 --with-oss=yes
--with-sequencer=yes

I'm not sure if pnptools will help or not, but when I run pnpdump, it reports
that no devices are found so I guess it can't do anything for me - I'm not
using it.

Any suggestions/help appreciated.

The following is my boot messages if that helps to see anything:
====================================================================
Linux version 2.2.17 (root@cts2) (gcc version egcs-2.91.66 19990314/Linux
(egcs-1.1.2 release)) #7 SMP Thu Oct 12 16:46:44 EDT 2000
Scan SMP from c0000000 for 1024 bytes.
Scan SMP from c009fc00 for 1024 bytes.
Scan SMP from c00f0000 for 65536 bytes.
Intel MultiProcessor Specification v1.4
Virtual Wire compatibility mode.
OEM ID: OEM00000 Product ID: PROD00000000 APIC at: 0xFEE00000
Processor #0 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Bootup CPU
Processor #1 Pentium(tm) Pro APIC version 17
Floating point unit present.
Machine Exception supported.
64 bit compare & exchange supported.
Internal APIC present.
Bus #0 is PCI
Bus #1 is PCI
Bus #2 is ISA
I/O APIC #2 Version 17 at 0xFEC00000.
Processors: 2
mapped APIC to ffffe000 (fee00000)
mapped IOAPIC to ffffd000 (fec00000)
Detected 800032 kHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 1595.80 BogoMIPS
Memory: 128012k/131072k available (1016k kernel code, 428k reserved, 1560k
data, 56k init)
Dentry hash table entries: 16384 (order 5, 128k)
Buffer cache hash table entries: 131072 (order 7, 512k)
Page cache hash table entries: 32768 (order 5, 128k)
VFS: Diskquotas version dquot_6.4.0 initialized
CPU serial number disabled.
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
CPU serial number disabled.
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
per-CPU timeslice cutoff: 49.98 usecs.
CPU0: Intel Pentium III (Coppermine) stepping 03
Getting VERSION: 40011
Getting VERSION: 40011
Getting LVT0: 700
Getting LVT1: 400
setup_APIC_clock() called.
calibrating APIC timer ...
..... 8000261 CPU clocks in 1 timer chip tick.
..... 1333374 APIC bus clocks in 1 timer chip tick.
..... CPU clock speed is 800.0261 MHz.
..... system bus clock speed is 133.3374 MHz.
CPU map: 3
Booting processor 1 eip 2000
Setting warm reset code and vector.
1.
2.
3.
Asserting INIT.
Deasserting INIT.
Sending STARTUP #1.
After apic_write.
Before start apic_write.
Startup point 1.
Waiting for send to finish...
+CPU#1 waiting for CALLOUT
Sending STARTUP #2.
After apic_write.
Before start apic_write.
Startup point 1.
Waiting for send to finish...
+After Startup.
Before Callout 1.
After Callout 1.
CALLIN, before enable_local_APIC().
setup_APIC_clock() called.
waiting for other CPU calibrating APIC ... done, continuing.
Calibrating delay loop... 1599.08 BogoMIPS
Stack at about c7ffbfbc
CPU serial number disabled.
Intel machine check reporting enabled on CPU#1.
OK.
CPU1: Intel Pentium III (Coppermine) stepping 03
CPU has booted.
Before bogomips.
Total of 2 processors activated (3194.88 BogoMIPS).
Before bogocount - setting activated=1.
Boot done.
enabling symmetric IO mode... ...done.
ENABLING IO-APIC IRQs
init IO_APIC IRQs
IO-APIC (apicid-pin) 2-0, 2-9, 2-10, 2-11, 2-20, 2-21, 2-22, 2-23 not
connected.
number of MP IRQ sources: 20.
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
....... : 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 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 0 0 0 0 0 1 1 91
0d 000 00 1 0 0 0 0 0 0 00
0e 000 00 0 0 0 0 0 1 1 99
0f 000 00 0 0 0 0 0 1 1 A1
10 0FF 0F 1 1 0 1 0 1 1 A9
11 0FF 0F 1 1 0 1 0 1 1 B1
12 0FF 0F 1 1 0 1 0 1 1 B9
13 0FF 0F 1 1 0 1 0 1 1 C1
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
IRQ12 -> 12
IRQ13 -> 13
IRQ14 -> 14
IRQ15 -> 15
IRQ16 -> 16
IRQ17 -> 17
IRQ18 -> 18
IRQ19 -> 19
.................................... done.
checking TSC synchronization across CPUs: passed.
Setting commenced=1, go go go
PCI: PCI BIOS revision 2.10 entry at 0xfb2d0
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI->APIC IRQ transform: (B0,I7,P3) -> 19
PCI->APIC IRQ transform: (B0,I7,P3) -> 19
PCI->APIC IRQ transform: (B0,I7,P2) -> 18
PCI->APIC IRQ transform: (B0,I12,P0) -> 18
PCI->APIC IRQ transform: (B0,I14,P0) -> 16
PCI->APIC IRQ transform: (B0,I18,P0) -> 17
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
TCP: Hash tables configured (ehash 131072 bhash 65536)
Starting kswapd v 1.5
parport0: PC-style at 0x378 (0x778) [SPP,ECP,ECPEPP,ECPPS2]
Detected PS/2 Mouse Port.
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
lp0: using parport0 (polling).
Real Time Clock Driver v1.09
loop: registered device at major 7
Uniform Multi-Platform E-IDE driver Revision: 6.30
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 39
VP_IDE: chipset revision 16
VP_IDE: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xc000-0xc007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0xc008-0xc00f, BIOS settings: hdc:pio, hdd:pio
PDC20265: IDE controller on PCI bus 00 dev 60
PDC20265: chipset revision 2
PDC20265: not 100% native mode: will probe irqs later
PDC20265: (U)DMA Burst Bit ENABLED Primary PCI Mode Secondary PCI Mode.
ide2: BM-DMA at 0xe800-0xe807, BIOS settings: hde:pio, hdf:pio
ide3: BM-DMA at 0xe808-0xe80f, BIOS settings: hdg:pio, hdh:DMA
hde: WDC WD205BA, ATA DISK drive
hdg: CD-540E, ATAPI CDROM drive
ide2 at 0xd800-0xd807,0xdc02 on irq 18
ide3 at 0xe000-0xe007,0xe402 on irq 18
hde: WDC WD205BA, 19574MB w/1961kB Cache, CHS=39770/16/63, UDMA(66)
hdg: ATAPI 40X CD-ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.11
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
ne2k-pci.c:vpre-1.00e 5/27/99 D. Becker/P. Gortmaker
http://cesdis.gsfc.nasa.gov/linux/drivers/ne2k-pci.html
ne2k-pci.c: PCI NE2000 clone 'RealTek RTL-8029' at I/O 0xec00, IRQ 16.
eth0: RealTek RTL-8029 found at 0xec00, IRQ 16, 00:E0:29:44:7F:CF.
Partition check:
hde: [PTBL] [2495/255/63] hde1 hde2 hde3 hde4 < hde5 hde6 hde7 >
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 56k freed
Adding Swap: 128484k swap-space (priority -1)
kcminfo uses obsolete /proc/pci interface
====================================================================

--
-------- Robert B. Easter reaster@comptechnews.com ---------
- CompTechNews Message Board http://www.comptechnews.com/ -
- CompTechServ Tech Services http://www.comptechserv.com/ -
---------- http://www.comptechnews.com/~reaster/ ------------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:41    [W:0.065 / U:3.848 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site