Re: Interrupts being reported twice?

From: Robert Watson <rwatson_at_freebsd.org>
Date: Tue, 19 Oct 2004 10:56:24 -0400 (EDT)
On Mon, 19 Apr 2004, Daniel Eriksson wrote:

> I am either getting a lot of extra interrupts, or they are getting
> reported twice. This is probably not a new problem, but after switching
> some cards around and enabling ACPI (trying to eliminate a recurring
> crash, see thread "Current crash on today's kernel" for details) I am
> now seeing this for the first time. 

I have a number of Xeon boxes that have a very similar problem --
depending on whether I configure with APIC and/or ACPI, I will see the
following symptoms:

- Many hardware devices all configure on the same IRQ, so lots of extra
  handlers run.  Maybe this is honesty in advertising.

- Many hardware devices configure on different IRQ's, but all the IRQs
  fire whenever any one of them wants to generate an interrupt, running
  many different ithreads. 

I see the same problem in 4.x.  Drew and I exchanged some e-mails
comiserating over the fact that this seems to be the case on a lot of
machines.  Not that this is necessarily what you're seeing, but it would
be interesting to know whether in previous configurations you see
different symptoms of a similar problem.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert_at_fledge.watson.org      Principal Research Scientist, McAfee Research


> 
> # vmstat -i
> interrupt                total       rate
> irq1: atkbd0                 2          0
> irq4: sio0                 627          0
> irq6: fdc0                  10          0
> irq8: rtc               763024        127
> irq13: npx0                  1          0
> irq14: ata0              48429          8
> irq15: ata1              48409          8
> irq16: atapci1+       15482279       2596 <-- should be low (<100)
> irq18: atapci3            4689          0
> irq19: atapci4+           3001          0
> irq20: em0            15206541       2550 <-- Real source of interrupts
> irq21: em1 ahc0         502577         84
> irq0: clk              5960581        999
> Total                 38020170       6377
> 
> The two marked values follow each other, with IRQ16 always 20-100 higher
> than IRQ20. Is this anything to worry about? The interrupt load reported by
> 'top' does not seem to be very high, so either the isr for IRQ16 is very
> cheap, or it isn't executed at all.
> 
> Hardware:
> * Dual Athlon MP on a Tyan Tiger S2466N-4M motherboard (AMD 760MPX chipset),
> 1GB ECC DDR
> * Intel Pro/1000 MT Dual Port + Adaptec 29160 in the two 64bit/66MHz PCI
> slots
> * 2 x HighPoint RocketRAID 454 + Promise SATA150 TX4 in 32bit/33MHz PCI
> slots (one slot free)
> 
> Software:
> * 6-CURRENT from today (2004.10.19.11.00.00), compiled with "*FLAGS= -O2
> -pipe" and "CPUTYPE?=athlon-xp"
> * SMP, APIC+ACPI, SCHED_4BSD, HZ=1000, ZERO_COPY_SOCKETS, AHC_ALLOW_MEMIO
> * debug.mpsafenet="1", harvest_interrupt="NO", harvest_ethernet="NO",
> net.isr.enable=1
> * ataraid, geom_vinum
> 
> Below is the dmesg and output from mptable.
> 
> /Daniel Eriksson
> 
> 
> /boot/kernel/acpi.ko text=0x469f8 data=0x1ce4+0x112c
> syms=[0x4+0x7000+0x4+0x93a8]
> KDB: debugger backends: ddb
> KDB: current backend: ddb
> Copyright (c) 1992-2004 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>         The Regents of the University of California. All rights reserved.
> FreeBSD 6.0-CURRENT #1: Tue Oct 19 13:32:08 CEST 2004
>     daniel_at_xxx.xxx.xxx:/usr/obj/usr/src/sys/XXX
> ACPI APIC Table: <PTLTD          APIC  >
> Timecounter "i8254" frequency 1193182 Hz quality 0
> CPU: AMD Athlon(tm) MP 2600+ (2000.08-MHz 686-class CPU)
>   Origin = "AuthenticAMD"  Id = 0x6a0  Stepping = 0
>  
> Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,
> CMOV,PAT,PSE36,MMX,FXSR,SSE>
>   AMD Features=0xc0480000<MP,AMIE,DSP,3DNow!>
> real memory  = 1073217536 (1023 MB)
> avail memory = 1040670720 (992 MB)
> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>  cpu0 (BSP): APIC ID:  1
>  cpu1 (AP): APIC ID:  0
> MADT: Forcing active-low polarity and level trigger for SCI
> ioapic0 <Version 1.1> irqs 0-23 on motherboard
> npx0: [FAST]
> npx0: <math processor> on motherboard
> npx0: INT 16 interface
> acpi0: <PTLTD   RSDT> on motherboard
> acpi0: Power Button (fixed)
> acpi0: Sleep Button (fixed)
> Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
> acpi_timer0: <24-bit timer at 3.579545MHz> port 0x8008-0x800b on acpi0
> cpu0: <ACPI CPU> on acpi0
> cpu1: <ACPI CPU> on acpi0
> acpi_button0: <Power Button> on acpi0
> pcib0: <ACPI Host-PCI bridge> port 0x8080-0x80ff,0x8000-0x807f,0xcf8-0xcff
> iomem 0xd8000-0xdbfff on acpi0
> pci0: <ACPI PCI bus> on pcib0
> agp0: <AMD 762 host to AGP bridge> port 0x1490-0x1493 mem
> 0xea100000-0xea100fff,0xec000000-0xedffffff at device 0.0 on pci0
> pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
> pci1: <ACPI PCI bus> on pcib1
> pci1: <display, VGA> at device 5.0 (no driver attached)
> isab0: <PCI-ISA bridge> at device 7.0 on pci0
> isa0: <ISA bus> on isab0
> atapci0: <AMD 768 UDMA100 controller> port
> 0xf000-0xf00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 7.1 on pci0
> ata0: channel #0 on atapci0
> ata1: channel #1 on atapci0
> pci0: <bridge, PCI-unknown> at device 7.3 (no driver attached)
> em0: <Intel(R) PRO/1000 Network Connection, Version - 1.7.35> port
> 0x1400-0x143f mem 0xe8000000-0xe803ffff,0xe8080000-0xe809ffff irq 20 at
> device 8.0 on pci0
> em0: Ethernet address: 00:04:23:ac:20:8a
> em0:  Speed:N/A  Duplex:N/A
> em1: <Intel(R) PRO/1000 Network Connection, Version - 1.7.35> port
> 0x1440-0x147f mem 0xe8040000-0xe807ffff,0xe80a0000-0xe80bffff irq 21 at
> device 8.1 on pci0
> em1: Ethernet address: 00:04:23:ac:20:8b
> em1:  Speed:N/A  Duplex:N/A
> ahc0: <Adaptec 29160 Ultra160 SCSI adapter> port 0x1000-0x10ff mem
> 0xe80c0000-0xe80c0fff irq 21 at device 9.0 on pci0
> ahc0: [GIANT-LOCKED]
> aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
> pcib2: <ACPI PCI-PCI bridge> at device 16.0 on pci0
> pci2: <ACPI PCI bus> on pcib2
> atapci1: <HighPoint HPT374 (channel 0+1) UDMA133 controller> port
> 0x2000-0x20ff,0x30d0-0x30d3,0x30d8-0x30df,0x30d4-0x30d7,0x30e0-0x30e7 irq 16
> at device 4.0 on pci2
> ata2: channel #0 on atapci1
> ata3: channel #1 on atapci1
> atapci2: <HighPoint HPT374 (channel 2+3) UDMA133 controller> port
> 0x2400-0x24ff,0x30e8-0x30eb,0x30f0-0x30f7,0x30ec-0x30ef,0x30f8-0x30ff irq 16
> at device 4.1 on pci2
> ata4: channel #0 on atapci2
> ata5: channel #1 on atapci2
> atapci3: <Promise PDC20318 SATA150 controller> port
> 0x3000-0x307f,0x30c0-0x30cf,0x3080-0x30bf mem
> 0xea000000-0xea01ffff,0xea021000-0xea021fff irq 18 at device 6.0 on pci2
> atapci3: failed: rid 0x20 is memory, requested 4
> ata6: channel #0 on atapci3
> ata7: channel #1 on atapci3
> ata8: channel #2 on atapci3
> ata9: channel #3 on atapci3
> atapci4: <HighPoint HPT374 (channel 0+1) UDMA133 controller> port
> 0x2800-0x28ff,0x3400-0x3403,0x3408-0x340f,0x3404-0x3407,0x3410-0x3417 irq 19
> at device 7.0 on pci2
> ata10: channel #0 on atapci4
> ata11: channel #1 on atapci4
> atapci5: <HighPoint HPT374 (channel 2+3) UDMA133 controller> port
> 0x2c00-0x2cff,0x3418-0x341b,0x3420-0x3427,0x341c-0x341f,0x3428-0x342f irq 19
> at device 7.1 on pci2
> ata12: channel #0 on atapci5
> ata13: channel #1 on atapci5
> atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
> atkbd0: <AT Keyboard> irq 1 on atkbdc0
> kbd0 at atkbd0
> atkbd0: [GIANT-LOCKED]
> sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on
> acpi0
> sio0: type 16550A, console
> fdc0: <floppy drive controller> port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on acpi0
> fdc0: [FAST]
> fd0: <1440-KB 3.5" drive> on fdc0 drive 0
> pmtimer0 on isa0
> orm0: <ISA Option ROMs> at iomem 0xe0000-0xe3fff,0xc0000-0xcafff on isa0
> sc0: <System console> at flags 0x100 on isa0
> sc0: VGA <16 virtual consoles, flags=0x100>
> vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
> sio1: configured irq 3 not in bitmap of probed irqs 0
> sio1: port may not be enabled
> Timecounters tick every 1.000 msec
> ipfw2 initialized, divert enabled, rule-based forwarding disabled, default
> to accept, logging unlimited
> ad0: 117800MB <IC35L120AVV207-0/V24OA66A> [239340/16/63] at ata0-master
> UDMA100
> ad1: 117800MB <HDS722512VLAT20/V33OA60A> [239340/16/63] at ata0-slave
> UDMA100
> ad2: 117800MB <IC35L120AVV207-0/V24OA66A> [239340/16/63] at ata1-master
> UDMA100
> ad3: 117800MB <IC35L120AVV207-0/V24OA66A> [239340/16/63] at ata1-slave
> UDMA100
> ad4: 238475MB <WDC WD2500JB-00FUA0/15.05R15> [484521/16/63] at ata2-master
> UDMA100
> ad5: 238475MB <WDC WD2500JB-00FUA0/15.05R15> [484521/16/63] at ata2-slave
> UDMA100
> ad6: 239372MB <Maxtor 4A250J0/RAMB1TU0> [486344/16/63] at ata3-master
> UDMA133
> ad7: 239372MB <Maxtor 5A250J0/RAMB1TV0> [486344/16/63] at ata3-slave UDMA133
> ad8: 194481MB <Maxtor 6Y200P0/YAR41BW0> [395136/16/63] at ata4-master
> UDMA133
> ad9: 194481MB <Maxtor 6Y200P0/YAR41VW0> [395136/16/63] at ata4-slave UDMA133
> ad10: 194481MB <Maxtor 6Y200P0/YAR41BW0> [395136/16/63] at ata5-master
> UDMA133
> ad11: 239372MB <Maxtor 7Y250P0/YAR41BW0> [486344/16/63] at ata5-slave
> UDMA133
> ad12: 239372MB <Maxtor 7Y250M0/YAR51EW0> [486344/16/63] at ata6-master
> SATA150
> ad14: 238475MB <WDC WD2500JD-00FYB0/02.05D02> [484521/16/63] at ata7-master
> SATA150
> ad16: 239372MB <Maxtor 6B250S0/BANC1980> [486344/16/63] at ata8-master
> SATA150
> ad20: 114473MB <ST3120022A/3.06> [232581/16/63] at ata10-master UDMA100
> ad21: 114473MB <ST3120022A/3.06> [232581/16/63] at ata10-slave UDMA100
> ad22: 117246MB <Maxtor 6Y120L0/YAR41BW0> [238216/16/63] at ata11-master
> UDMA133
> ad23: 117246MB <Maxtor 6Y120L0/YAR41BW0> [238216/16/63] at ata11-slave
> UDMA133
> ad24: 114473MB <WDC WD1200JB-00DUA3/75.13B75> [232581/16/63] at ata12-master
> UDMA100
> ar0: 476950MB <ATA RAID0 array> [60802/255/63] status: READY subdisks:
>  disk0 READY on ad4 at ata2-master
>  disk1 READY on ad5 at ata2-slave
> ar1: 478744MB <ATA RAID0 array> [61031/255/63] status: READY subdisks:
>  disk0 READY on ad6 at ata3-master
>  disk1 READY on ad7 at ata3-slave
> ar2: 388962MB <ATA RAID0 array> [49585/255/63] status: READY subdisks:
>  disk0 READY on ad9 at ata4-slave
>  disk1 READY on ad8 at ata4-master
> ar3: 228946MB <ATA RAID0 array> [29186/255/63] status: READY subdisks:
>  disk0 READY on ad23 at ata11-slave
>  disk1 READY on ad24 at ata12-master
> Waiting 5 seconds for SCSI devices to settle
> em1: Link is up 100 Mbps Full Duplex
> sa0 at ahc0 bus 0 target 5 lun 0
> sa0: <Seagate STT20000N 6A51> Removable Sequential Access SCSI-2 device 
> sa0: 10.000MB/s transfers (10.000MHz, offset 15)
> da0 at ahc0 bus 0 target 0 lun 0
> da0: <QUANTUM ATLAS 10K 9WLS UCH0> Fixed Direct Access SCSI-3 device 
> da0: 40.000MB/s transfers (20.000MHz, offset 31, 16bit), Tagged Queueing
> Enabled
> da0: 8759MB (17938986 512 byte sectors: 255H 63S/T 1116C)
> da1 at ahc0 bus 0 target 1 lun 0
> da1: <QUANTUM ATLAS 10K 9WLS UCH0> Fixed Direct Access SCSI-3 device 
> da1: 40.000MB/s transfers (20.000MHz, offset 31, 16bit), Tagged Queueing
> Enabled
> da1: 8759MB (17938986 512 byte sectors: 255H 63S/T 1116C)
> da2 at ahc0 bus 0 target 10 lun 0
> da2: <IBM DDYS-T36950N S93E> Fixed Direct Access SCSI-3 device 
> da2: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing
> Enabled
> da2: 35003MB (71687340 512 byte sectors: 255H 63S/T 4462C)
> da3 at ahc0 bus 0 target 11 lun 0
> da3: <IBM IC35L036UWD210-0 S5CQ> Fixed Direct Access SCSI-3 device 
> da3: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing
> Enabled
> da3: 35003MB (71687340 512 byte sectors: 255H 63S/T 4462C)
> da4 at ahc0 bus 0 target 12 lun 0
> da4: <IBM DDYS-T36950N S93E> Fixed Direct Access SCSI-3 device 
> da4: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing
> Enabled
> da4: 35003MB (71687340 512 byte sectors: 255H 63S/T 4462C)
> da5 at ahc0 bus 0 target 13 lun 0
> da5: <IBM DDYS-T36950N S93E> Fixed Direct Access SCSI-3 device 
> da5: 160.000MB/s transfers (80.000MHz, offset 63, 16bit), Tagged Queueing
> Enabled
> da5: 35003MB (71687340 512 byte sectors: 255H 63S/T 4462C)
> SMP: AP CPU #1 Launched!
> Mounting root from ufs:/dev/da0s1a
> 
> 
> # mptable 
> 
> ============================================================================
> ===
> 
> MPTable, version 2.0.15
> 
> ----------------------------------------------------------------------------
> ---
> 
> MP Floating Pointer Structure:
> 
>   location:                     BIOS
>   physical address:             0x000f7170
>   signature:                    '_MP_'
>   length:                       16 bytes
>   version:                      1.4
>   checksum:                     0x6b
>   mode:                         Virtual Wire
> 
> ----------------------------------------------------------------------------
> ---
> 
> MP Config Table Header:
> 
>   physical address:             0x0009bc70
>   signature:                    'PCMP'
>   base table length:            316
>   version:                      1.4
>   checksum:                     0x8c
>   OEM ID:                       'TYAN    '
>   Product ID:                   'PAULANER    '
>   OEM table pointer:            0x00000000
>   OEM table size:               0
>   entry count:                  31
>   local APIC address:           0xfee00000
>   extended table length:        324
>   extended table checksum:      18
> 
> ----------------------------------------------------------------------------
> ---
> 
> MP Config Base Table Entries:
> 
> --
> Processors:     APIC ID Version State           Family  Model   Step
> Flags
>                  1       0x10    BSP, usable     6       10      0
> 0x383fbff
>                  0       0x10    AP, usable      6       10      0
> 0x383fbff
> --
> Bus:            Bus ID  Type
>                  0       PCI   
>                  1       PCI   
>                  2       PCI   
>                  3       ISA   
> --
> I/O APICs:      APIC ID Version State           Address
>                  2       0x11    usable          0xfec00000
> --
> I/O Ints:       Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN#
>                 ExtINT  active-hi        edge        3     0          2    0
>                 INT     active-hi        edge        3     1          2    1
>                 INT     active-hi        edge        3     0          2    2
>                 INT     active-lo       level        0   8:B          2   17
>                 INT     active-hi        edge        3     4          2    4
>                 INT     active-lo       level        0   8:A          2   16
>                 INT     active-hi        edge        3     6          2    6
>                 INT     active-hi        edge        3     7          2    7
>                 INT     active-hi        edge        3     8          2    8
>                 INT     active-hi        edge        3     9          2    9
>                 INT     active-lo       level        2   7:A          2   19
>                 INT     active-lo       level        1   5:A          2   18
>                 INT     active-hi        edge        3    12          2   12
>                 INT     active-hi        edge        3    13          2   13
>                 INT     active-hi        edge        3    14          2   14
>                 INT     active-hi        edge        3    15          2   15
>                 INT     active-lo       level        0   9:A          2   17
>                 INT     active-lo       level        2   0:C          2   19
>                 INT     active-lo       level        2   4:A          2   16
>                 INT     active-lo       level        2   4:A          2   16
>                 INT     active-lo       level        2   6:A          2   18
>                 INT     active-lo       level        2   7:A          2   19
> --
> Local Ints:     Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN#
>                 ExtINT  active-hi        edge        3     0        255    0
>                 NMI     active-hi        edge        1   0:A        255    1
> 
> ----------------------------------------------------------------------------
> ---
> 
> MP Config Extended Table Entries:
> 
> --
> System Address Space
>  bus ID: 0 address type: I/O address
>  address base: 0x0
>  address range: 0x10000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0x40000000
>  address range: 0xaa100000
> --
> System Address Space
>  bus ID: 0 address type: prefetch address
>  address base: 0xea100000
>  address range: 0xdf00000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xf8000000
>  address range: 0x6e00000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xfee01000
>  address range: 0x11ff000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xa0000
>  address range: 0x24000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xc8000
>  address range: 0x2000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xcc000
>  address range: 0x2000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xd0000
>  address range: 0x1000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xd2000
>  address range: 0x1000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xd4000
>  address range: 0x1000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xd6000
>  address range: 0x1000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xd8000
>  address range: 0x2000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xe0000
>  address range: 0x12000
> --
> System Address Space
>  bus ID: 0 address type: memory address
>  address base: 0xf8000
>  address range: 0x4000
> --
> Bus Heirarchy
>  bus ID: 3 bus info: 0x01 parent bus ID: 0
> --
> Compatibility Bus Address
>  bus ID: 0 address modifier: add
>  predefined range: 0x00000000
> --
> Compatibility Bus Address
>  bus ID: 0 address modifier: add
>  predefined range: 0x00000001
> 
> ============================================================================
> ===
> 
> 
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 
Received on Tue Oct 19 2004 - 12:56:35 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:18 UTC