Subject: Re: clode-to-final i386 testcode/kernels with new intr code
To: Frank van der Linden <fvdl@wasabisystems.com>
From: Luke Mewburn <lukem@wasabisystems.com>
List: port-i386
Date: 11/20/2002 15:50:20
On Wed, Nov 20, 2002 at 12:55:40AM +0100, Frank van der Linden wrote:
  | I've put the following files in ftp://ftp.netbsd.org/pub/NetBSD/misc/fvdl/intr/
  | 
  | MD5 (i386intr6.tgz) = 96e0cbc1db7797011cca9d44ea049d7a
  | MD5 (netbsd.GENERIC.bz2) = 1f84a52a2e59cac739b3608da2673ec9
  | MD5 (netbsd.GENERIC_LAPTOP.bz2) = 00ce6419baab8f2304c3c410de82fd51
  | MD5 (netbsd.GENERIC_MPVERBOSE.bz2) = 266e5734ba12420812e3cca1b87a4ab2
  | 
  | They're the source of and 3 kernels containing the changed interrupt
  | code for i386. This should be close to the version that will be
  | checked in. I'm interested in test results for machines with
  | shared interrupt lines on MP machines, and machines that have
  | some problem with interrupt delivery on -current MP.

GENERIC_MPVERBOSE on my dual PIII-600 works fine.

Here's a diff between the dmesg of -current GENERIC.MP kernel and
your GENERIC_MPVERBOSE kernel.  I note in yours that there's no
warning about "broken sharing of interrupts" :)


1,2c1,2
< NetBSD 1.6K (GENERIC.MP) #0: Mon Nov 18 13:49:04 EST 2002
<     lukem@hippolyte:/var/scratch/obj.i386-current/z/src/netbsd/src-clean/sys/arch/i386/compile/GENERIC.MP
---
> NetBSD 1.6K (GENERIC.MPVERBOSE) #0: Tue Nov 19 22:21:16 CET 2002
>     fvdl@k2:/work/trees/mpmerge/sys/arch/i386/compile/GENERIC.MPVERBOSE
7a8,12
> mainbus0: scanning 0x9fc00 to 0x9fff0 for MP signature
> mainbus0: scanning 0x9f000 to 0x9f3f0 for MP signature
> mainbus0: scanning 0xf0000 to 0xffff0 for MP signature
> mainbus0: MP floating pointer found in bios at 0xfaf50
> mainbus0: MP config table at 0xf4dc0, 356 bytes long
21a27,28
> cpu0: kstack at 0xe3598000 for 16384 bytes
> cpu0: idle pcb at 0xe3598000, idle sp at 0xe359bf98
24c31
< cpu1: Intel Pentium III (Coppermine) Pentium III (686-class), 599.71 MHz
---
> cpu1: Intel Pentium III (Coppermine) Pentium III (686-class), 599.72 MHz
32a40,41
> cpu1: kstack at 0xe35a4000 for 16384 bytes
> cpu1: idle pcb at 0xe35a4000, idle sp at 0xe35a7f98
40c49
< ioapic0: pa 0xfec00000, version 20, 24 pins
---
> ioapic0: pa 0xfec00000, virtual wire mode, version 20, 24 pins
42c51,77
< ioapic1: pa 0xfc8ff000, version 20, 24 pins
---
> ioapic1: pa 0xfc8ff000, virtual wire mode, version 20, 24 pins
> ioapic0: int0 attached to ExtINT (type 3<type=3=ExtINT> flags 0<pol=0,trig=0>)
> ioapic0: int1 attached to isa0 irq 1 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int2 attached to isa0 irq 0 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int3 attached to isa0 irq 3 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int4 attached to isa0 irq 4 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int5 attached to isa0 irq 5 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int6 attached to isa0 irq 6 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int7 attached to isa0 irq 7 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int8 attached to isa0 irq 8 (type 0<type=0> flags 5<pol=1=Act Hi,trig=1=Edge>)
> ioapic0: int9 attached to isa0 irq 9 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int10 attached to isa0 irq 10 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int11 attached to isa0 irq 11 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int12 attached to isa0 irq 12 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int13 attached to isa0 irq 13 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int14 attached to isa0 irq 14 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int15 attached to isa0 irq 15 (type 0<type=0> flags 0<pol=0,trig=0>)
> ioapic0: int16 attached to pci0 device 31 INT_A (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
> ioapic0: int16 attached to pci4 device 0 INT_A (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
> ioapic0: int19 attached to pci0 device 31 INT_D (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
> ioapic0: int17 attached to pci0 device 31 INT_B (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
> ioapic0: int17 attached to pci0 device 31 INT_B (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
> ioapic0: int17 attached to pci1 device 1 INT_A (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
> ioapic0: int16 attached to pci1 device 8 INT_A (type 0<type=0> flags f<pol=3=Act Lo,trig=3=Level>)
> ioapic0: int23 attached to SMI (type 2<type=2=SMI> flags 0<pol=0,trig=0>)
> local apic: int0 attached to ExtINT (type 3<type=3=ExtINT> flags 0<pol=0,trig=0>)
> local apic: int1 attached to NMI (type 1<type=1=NMI> flags 0<pol=0,trig=0>)
65a101
> allocated pic ioapic0 type level pin 17 level 6 to cpu0 slot 10 idt entry 96
69a106
> allocated pic ioapic0 type level pin 16 level 7 to cpu0 slot 11 idt entry 112
82a120
> allocated pic ioapic0 type edge pin 14 level 6 to cpu0 slot 14 idt entry 97
89a128
> allocated pic ioapic0 type edge pin 15 level 6 to cpu0 slot 15 idt entry 98
92a132
> allocated pic ioapic0 type level pin 19 level 6 to cpu0 slot 9 idt entry 99
99a140
> allocated pic ioapic0 type level pin 17 level 11 to cpu0 slot 10 idt entry 96
105a147
> allocated pic ioapic0 type edge pin 4 level 13 to cpu0 slot 4 idt entry 208
106a149
> allocated pic ioapic0 type edge pin 3 level 13 to cpu0 slot 3 idt entry 209
108a152
> allocated pic ioapic0 type edge pin 1 level 9 to cpu0 slot 1 idt entry 144
111a156
> allocated pic ioapic0 type edge pin 7 level 9 to cpu0 slot 7 idt entry 145
117a163
> allocated pic ioapic0 type edge pin 6 level 6 to cpu0 slot 6 idt entry 100
120c166,247
< biomask 0 netmask 0 ttymask 0
---
> cpu0: interrupt masks:
> IPL 0 mask 7ff3125 unmask f800ceda
> IPL 1 mask 7ff3125 unmask f800ceda
> IPL 2 mask 7ff3125 unmask f800ceda
> IPL 3 mask 7ff3125 unmask f800ceda
> IPL 4 mask 87ff3125 unmask 7800ceda
> IPL 5 mask c7ff3125 unmask 3800ceda
> IPL 6 mask c7fff765 unmask 3800089a
> IPL 7 mask c7ffff65 unmask 3800009a
> IPL 8 mask e7ffff65 unmask 1800009a
> IPL 9 mask e7ffffe7 unmask 18000018
> IPL 10 mask e7ffffe7 unmask 18000018
> IPL 11 mask e7ffffe7 unmask 18000018
> IPL 12 mask f7ffffe7 unmask 8000018
> IPL 13 mask f7ffffff unmask 8000000
> IPL 14 mask ffffffff unmask 0
> IPL 15 mask ffffffff unmask 0
> cpu0 source 1 is pin 1 from pic ioapic0 maxlevel 9
> 	handler 0xc02194bc level 9
> cpu0 source 3 is pin 3 from pic ioapic0 maxlevel 13
> 	handler 0xc02178dc level 13
> cpu0 source 4 is pin 4 from pic ioapic0 maxlevel 13
> 	handler 0xc02178dc level 13
> cpu0 source 6 is pin 6 from pic ioapic0 maxlevel 6
> 	handler 0xc046cf18 level 6
> cpu0 source 7 is pin 7 from pic ioapic0 maxlevel 9
> 	handler 0xc04396f8 level 9
> cpu0 source 9 is pin 19 from pic ioapic0 maxlevel 6
> 	handler 0xc0240594 level 6
> cpu0 source 10 is pin 17 from pic ioapic0 maxlevel 11
> 	handler 0xc03fa79c level 11
> 	handler 0xc03bd72c level 6
> cpu0 source 11 is pin 16 from pic ioapic0 maxlevel 7
> 	handler 0xc0207fb8 level 7
> cpu0 source 14 is pin 14 from pic ioapic0 maxlevel 6
> 	handler 0xc03d228c level 6
> cpu0 source 15 is pin 15 from pic ioapic0 maxlevel 6
> 	handler 0xc03d228c level 6
> cpu0 source 27 is pin 0 from pic lapic maxlevel 14
> 	handler 0x0 level 14
> cpu0 source 28 is pin 0 from pic lapic maxlevel 12
> 	handler 0x0 level 12
> cpu0 source 29 is pin 0 from pic softintr_fakepic maxlevel 8
> 	handler 0x0 level 8
> cpu0 source 30 is pin 0 from pic softintr_fakepic maxlevel 5
> 	handler 0x0 level 5
> cpu0 source 31 is pin 0 from pic softintr_fakepic maxlevel 4
> 	handler 0x0 level 4
> cpu1: interrupt masks:
> IPL 0 mask 7ffffff unmask f8000000
> IPL 1 mask 7ffffff unmask f8000000
> IPL 2 mask 7ffffff unmask f8000000
> IPL 3 mask 7ffffff unmask f8000000
> IPL 4 mask 87ffffff unmask 78000000
> IPL 5 mask c7ffffff unmask 38000000
> IPL 6 mask c7ffffff unmask 38000000
> IPL 7 mask c7ffffff unmask 38000000
> IPL 8 mask e7ffffff unmask 18000000
> IPL 9 mask e7ffffff unmask 18000000
> IPL 10 mask e7ffffff unmask 18000000
> IPL 11 mask e7ffffff unmask 18000000
> IPL 12 mask f7ffffff unmask 8000000
> IPL 13 mask f7ffffff unmask 8000000
> IPL 14 mask ffffffff unmask 0
> IPL 15 mask ffffffff unmask 0
> cpu1 source 27 is pin 0 from pic lapic maxlevel 14
> 	handler 0x0 level 14
> cpu1 source 28 is pin 0 from pic lapic maxlevel 12
> 	handler 0x0 level 12
> cpu1 source 29 is pin 0 from pic softintr_fakepic maxlevel 8
> 	handler 0x0 level 8
> cpu1 source 30 is pin 0 from pic softintr_fakepic maxlevel 5
> 	handler 0x0 level 5
> cpu1 source 31 is pin 0 from pic softintr_fakepic maxlevel 4
> 	handler 0x0 level 4
> cpu0: prelint0 700<vector=0,delmode=7,dest=0> 0<target=0>
> cpu0: prelint1 400<vector=0,delmode=4,dest=0> 0<target=0>
> cpu0: timer0 300c0<vector=c0,delmode=0,masked,dest=0> 0<target=0>
> cpu0: pcint0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
> cpu0: lint0 10700<vector=0,delmode=7,masked,dest=0> 0<target=0>
> cpu0: lint1 400<vector=0,delmode=4,dest=0> 0<target=0>
> cpu0: err0 1000f<vector=f,delmode=0,masked,dest=0> 0<target=0>
123,125c250,260
< ioapic0: WARNING: sharing interrupt between different IPLs (currently broken)
< ioapic0: pin 17, ipls 60..b0
< auich0: measured ac97 link rate at 53010 Hz
---
> ioapic0: int1 190<vector=90,delmode=1,dest=0> 0<target=0>
> ioapic0: int3 1d1<vector=d1,delmode=1,dest=0> 0<target=0>
> ioapic0: int4 1d0<vector=d0,delmode=1,dest=0> 0<target=0>
> ioapic0: int6 164<vector=64,delmode=1,dest=0> 0<target=0>
> ioapic0: int7 191<vector=91,delmode=1,dest=0> 0<target=0>
> ioapic0: int14 161<vector=61,delmode=1,dest=0> 0<target=0>
> ioapic0: int15 162<vector=62,delmode=1,dest=0> 0<target=0>
> ioapic0: int16 a170<vector=70,delmode=1,actlo,level,dest=0> 0<target=0>
> ioapic0: int17 a160<vector=60,delmode=1,actlo,level,dest=0> 0<target=0>
> ioapic0: int19 a163<vector=63,delmode=1,actlo,level,dest=0> 0<target=0>
> auich0: measured ac97 link rate at 53005 Hz
136a272,278
> cpu1: prelint0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
> cpu1: prelint1 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
> cpu1: timer0 200c0<vector=c0,delmode=0,dest=0> 0<target=0>
> cpu1: pcint0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>
> cpu1: lint0 10700<vector=0,delmode=7,masked,dest=0> 0<target=0>
> cpu1: lint1 400<vector=0,delmode=4,dest=0> 0<target=0>
> cpu1: err0 10000<vector=0,delmode=0,masked,dest=0> 0<target=0>

--
Luke Mewburn  <lukem@wasabisystems.com>  http://www.wasabisystems.com
Luke Mewburn     <lukem@netbsd.org>      http://www.netbsd.org
Wasabi Systems - NetBSD hackers for hire
NetBSD - the world's most portable UNIX-like operating system