Subject: Re: High Load / bad response times
To: None <netbsd-users@netbsd.org>
From: Jochen Keil <J.Keil@gmx.de>
List: netbsd-users
Date: 01/08/2005 16:30:04
Manuel Bouyer wrote:
>>I've attached the output from sysstat vmstat while running vinum (i have
>>to admit that i don't get everything of what it's telling me). It's also
>>just a snapshot because the interrupt range is dithering from below 3000
>>up to 21000).
>
>
>>From which source ? With IDE disks, you should only get one interrupt per
> disk transfer. in systat it's easy to check that the sum of the transfers
> match the number of interrupts for the line.
The interrupt behaviour seems to be all the same on disk io wether
raidframe, a single ide disk or a single scsi disk.
At the moment i don't know how to check if the interrupts match a disk
transfer. I'm really sorry for that.
>>From the output you posted it looks like you have a lot of TLB shootdown IPIs.
> This is a MP issue, but I don't know the real cause (maybe too much RAM
> touched at the same time ?)
How can i check if there is too much RAM touched at the same time?
My knowledge doesn't cover that..
Meanwhile i have found some options in the Kernel Configuration which i
enabled but they didn't get me any improvement.
options PCIBIOS # PCI BIOS support
options PCIBIOSVERBOSE # PCI BIOS verbose info
options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
options PCIBIOS_INTR_GUESS # see pcibios(4)
options PCIINTR_DEBUG # super-verbose PCI interrupt fixup
Enabling them will show up these lines on startup:
BIOS32 rev. 0 found at 0xfdb90
PCI BIOS rev. 2.1 found at 0xfdbb1
pcibios: config mechanism [1][x], special cycles [x][x], last bus 1
PCI IRQ Routing Table rev. 1.0 found at 0xf5230, size 176 bytes (9 entries)
PCI Interrupt Router at 000:15:0 (vendor 0x1166 product 0x0225 compatible)
[A lot of stuff about PIR Entry 0-8 comes here which boils down to this
for every entry:
Bus: 0 Device: 15 (there also Devices 1-4 and 6)
INTA: link 0x01 bitmap 0x0400
INTB: link 0x00 bitmap 0x8000
INTC: link 0x00 bitmap 0x0000
INTD: link 0x00 bitmap 0x0000]
pci_intr_fixup: no compatible PCI ICU found: ICU vendor 0x1166 product
0x0225
pciintr_guess_irq (stage 1): guessing PIRQ 0x01 to be IRQ 10
------------------------------------------
device vendor product pin PIRQ IRQ stage
------------------------------------------
000:01:0 0x105a 0x4d68 A 0x10 - 0
000:02:0 0x105a 0x4d68 A 0x12 - 0
000:06:0 0x8086 0x1229 A 0x1f - 0
000:15:2 0x1166 0x0220 A 0x01 10 1 fixed up
001:01:0 0x8086 0x1026 A 0x18 - 0
001:03:0 0x9005 0x008f A 0x1c - 0
------------------------------------------
PCI fixup examining 1166:09
PCI fixup examining 1166:09
PCI fixup examining 105a:4d68
PCI fixup examining 105a:4d68
PCI fixup examining 1002:4354
PCI fixup examining 8086:1229
PCI fixup examining 1166:200
PCI fixup examining 1166:211
PCI fixup examining 1166:220
PCI bus #0 is the last bus
[System BIOS Setting]-----------------------
device vendor product
register space address size
--------------------------------------------
000:00:0 0x1166 0x0009
[OK]
000:00:1 0x1166 0x0009
[OK]
000:01:0 0x105a 0x4d68
10h port 0x0000a800 0x00000008
14h port 0x0000a400 0x00000004
18h port 0x0000a000 0x00000008
1ch port 0x00009800 0x00000004
20h port 0x00009400 0x00000010
24h mem 0xfe9e0000 0x00004000
[OK]
000:02:0 0x105a 0x4d68
10h port 0x0000c800 0x00000008
14h port 0x0000c400 0x00000004
18h port 0x0000c000 0x00000008
1ch port 0x0000b800 0x00000004
20h port 0x0000b400 0x00000010
24h mem 0xfe9ec000 0x00004000
[OK]
000:04:0 0x1002 0x4354
10h mem 0xfd000000 0x01000000
[OK]
000:06:0 0x8086 0x1229
10h mem 0xfe9e6000 0x00001000
14h port 0x0000b000 0x00000040
18h mem 0xfe800000 0x00100000
[OK]
000:15:0 0x1166 0x0200
[OK]
000:15:1 0x1166 0x0211
20h port 0x0000ffa0 0x00000010
[OK]
000:15:2 0x1166 0x0220
10h mem 0xfffff000 0x00001000
[OK]
--------------------------[ 0 devices bogus]
WARNING: can't reserve area for BIOS PROM.
Physical memory end: 0x1fffc000
PCI memory mapped I/O space start: 0x20000000
All this tells me that there is a problem with the PCI interrupt routing
(options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing)
as a chip is identified but cannot be addressed.
I can be completely wrong with that too of course. Maybe somebody else
can tell me what this output means an what there can be done about it.
Best Regards,
Jochen Keil