Report: IOAPIC SMP-2.1.82 with Tomcat III

Harald Hoyer (HarryH@Royal.Net)
Fri, 30 Jan 1998 07:41:16 +0100


This is a multi-part message in MIME format.
--------------4AE21E8EB7109C9FFCA4477C
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

HI,

This report is for those who want their Tomcat to run SMP with V2.1.82,
and those who implemented the IO-APIC (Ingo ?).

After beeing disappointed, because my computer stuck in ide init as I
booted
the fresh compiled linux-2.1.82, I read that irq-probing is broken and
that
APIC Version:0000 OEM:0000 will get blacklisted. :(
So I tried to tell the ide driver what irqs it should use:
ide0=0x1f0,0x3f6,14
ide1=0x170,0x376,15
ide3=0x168,0x36e,10

But the driver claims ide1=0x170,0x376,15 -- BAD OPTION and hangs after
finding
the ide0 drives. Then I changed the corresponding check in
drivers/block/ide.c: __initfunc(void ide_setup (char *s))
line 2309
- if ((i <= -7)||(i > 0))
+ if (i <= -7)

Now the kernel boots (although autoprobing of my ne2000-clone doesn't
work).

Doing a cat /proc/interrupts resulted in s.th. like this:
CPU0 CPU1
0: 95484 0 XT PIC timer
1: 801 0 XT PIC keyboard
2: 0 0 XT PIC cascade
4: 5410 0 XT PIC serial
5: 0 0 XT PIC soundblaster
10: 8 0 XT PIC ide3
13: 4 0 XT PIC fpu
14: 4125 0 XT PIC ide0
15: 2440 0 XT PIC ide1
NMI: 0
IPI: 0

Uhhh .... none of the interrupts doing its job on my second CPU ... :(
OK ... lets look at the reason:

arch/i386/kernel/irq.c: line 128
unsigned int io_apic_irqs = 0xff0000;

which means, only interrupts > 15 are turned into IO-APIC interrupts.

Experimenting a little bit (try-and-failure) resulted in this

unsigned int io_apic_irqs = 0xff0000|(1<<11)|(1<<5)|(1<<1);

which causes a cat /proc/interrupts look like this:

CPU0 CPU1
0: 132649 0 XT PIC timer
1: 1113 4464 IO-APIC keyboard
2: 0 0 XT PIC cascade
4: 11640 0 XT PIC serial
5: 436 120 IO-APIC soundblaster
10: 707 0 XT PIC ide3
13: 4 0 XT PIC fpu
14: 4281 0 XT PIC ide0
15: 2472 0 XT PIC ide1
NMI: 0
IPI: 0

my s3virge uses irq 11 and works well under X.

Trying to make irq 4 an IO-APIC irq resulted in a kernel crash, caused
by gpm
as I ended the X-Server. It said s.th. about missing IPI's. Hmm...

Any other irq makes the kernel unbootable.

Hey, what are these PIRQ's for ??????

So long,
Harald Hoyer

-- 
mailto:HarryH@Royal.Net http://hot.spotline.de
http://home.pages.de/~saturn
___________________________________________________________________________
Computers are like air conditioner. Both stop working, if you open
windows.
--------------4AE21E8EB7109C9FFCA4477C
Content-Type: text/x-vcard; charset=us-ascii; name="vcard.vcf"
Content-Transfer-Encoding: 7bit
Content-Description: Card for Harald Hoyer
Content-Disposition: attachment; filename="vcard.vcf"

begin: vcard fn: Harald Hoyer n: Hoyer;Harald org: Software Beratung, Erstellung und Vertrieb adr: Alleenstr. 27;;;Asperg;Baden-Württemberg;71679;Germany email;internet: HarryH@Royal.Net title: Software Engineer tel;home: 07141 / 64 10 65 x-mozilla-cpt: ;0 x-mozilla-html: TRUE version: 2.1 end: vcard

--------------4AE21E8EB7109C9FFCA4477C--