Subject: Re: high interrupt cpu usage on Athlon-64?
To: Jonathan Kay <jpk@panix.com>
From: Stephen Degler <sdegler@degler.net>
List: port-amd64
Date: 08/20/2007 22:37:47
Jonathan Kay wrote:
> Hi all
>   I'm having a problem on a new dedicated box (so I'm not sure what the
> exact motherboard brand is)
> It's an Athlon-64, with 1gb of ram, on what looks like an ATI-based
> motherboard.
>
> It has extremely high number of interrupt requests though; running
> sysstat vm 1 shows that it has around 64,000 interrupts/second, and
> spends more than 80% of it's CPU handling interrupt requests.
>
> Any input would be great!
> Thanks!
> Jonathan
>
> Here's my dmesg:
>
> Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
>     2006, 2007
>     The NetBSD Foundation, Inc.  All rights reserved.
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>     The Regents of the University of California.  All rights reserved.
>
> NetBSD 4.99.28 (GENERIC) #0: Sat Aug 18 09:47:06 PDT 2007
>         jpk@taliesin.my.domain:/usr/obj/current_15Aug07/src/sys/arch/amd64/compile/GENERIC
> total memory = 958 MB
> avail memory = 911 MB
> timecounter: Timecounters tick every 10.000 msec
> timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
> mainbus0 (root)
> cpu0 at mainbus0: (uniprocessor)
> cpu0: AMD Athlon(tm) 64 Processor 3200+, 1989.92 MHz
> cpu0: features: e7dbfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
> cpu0: features: e7dbfbff<PGE,MCA,CMOV,PAT,PSE36,MPC,NOX,MMXX,MMX>
> cpu0: features: e7dbfbff<FXSR,SSE,SSE2,LONG,3DNOW2,3DNOW>
> cpu0: features2: 1<SSE3>
> cpu0: I-cache 64 KB 64B/line 2-way, D-cache 64 KB 64B/line 2-way
> cpu0: L2 cache 512 KB 64B/line 16-way
> cpu0: ITLB 32 4 KB entries fully associative, 8 4 MB entries fully associative
> cpu0: DTLB 32 4 KB entries fully associative, 8 4 MB entries fully associative
> cpu0: AMD Power Management features: 3f<STC,TM,TTP,VID,FID,TS>
> cpu0: AMD Cool`n'Quiet Technology 2000 MHz
> cpu0: available frequencies (Mhz): 1000 1800 2000
> cpu0: WARNING: AMD errata present, BIOS upgrade may be
> cpu0: WARNING: necessary to ensure reliable operation
> cpu0: 8 page colors
> acpi0 at mainbus0: Advanced Configuration and Power Interface
> acpi0: using Intel ACPI CA subsystem version 20060217
> acpi0: X/RSDT: OemId <HP    ,AWRDACPI,42302e31>, AslId <AWRD,00000000>
> acpi0: SCI interrupting at int 9
> acpi0: fixed-feature power button present
> timecounter: Timecounter "ACPI-Safe" frequency 3579545 Hz quality 900
> ACPI-Safe 32-bit timer
> mpacpi: could not get bus number, assuming bus 0
> LNKA: ACPI: Found matching pin for 0.20.INTA at func 1: 255
> LNKB: ACPI: Found matching pin for 0.20.INTB at func 5: 11
> LNKD: ACPI: Found matching pin for 0.19.INTA at func 0: 10
> LNK1: ACPI: Found matching pin for 0.18.INTA at func 0: 5
> LNKB: ACPI: Found matching pin for 1.5.INTA at func 0: 11
> CPU0 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
> CPU1 (ACPI Object Type 'Processor' [0x0c]) at acpi0 not configured
> PWRB (PNP0C0C) [ACPI power button device] at acpi0 not configured
> PCI0 (PNP0A03) [PCI/PCI-X Host Bridge] at acpi0 not configured
> PMIO (PNP0C02) [Plug and Play motherboard register resources] at acpi0 not configured
> LNKB (PNP0C0F) [PCI interrupt link device] at acpi0 not configured
> LNKD (PNP0C0F) [PCI interrupt link device] at acpi0 not configured
> LNK1 (PNP0C0F) [PCI interrupt link device] at acpi0 not configured
> PIC (PNP0000) [AT Interrupt Controller] at acpi0 not configured
> DMA1 (PNP0200) [AT DMA Controller] at acpi0 not configured
> TMR (PNP0100) [AT Timer] at acpi0 not configured
> RTC (PNP0B00) [AT Real-Time Clock] at acpi0 not configured
> SPKR (PNP0800) [AT-style speaker sound] at acpi0 not configured
> COPR (PNP0C04) [Math Coprocessor] at acpi0 not configured
> SYSR (PNP0C02) [Plug and Play motherboard register resources] at acpi0 not configured
> FDC0 (PNP0700) [PC standard floppy disk controller] at acpi0 not configured
> UAR1 (PNP0501) [16550A-compatible COM port] at acpi0 not configured
> ECP1 (PNP0401) [ECP printer port] at acpi0 not configured
> PS2M (PNP0F13) [PS/2 Port for PS/2-style Mice] at acpi0 not configured
> PS2K (PNP0303) [IBM Enhanced (101/102-key, PS/2 mouse support)] at acpi0 not configured
> EXPL (PNP0C02) [Plug and Play motherboard register resources] at acpi0 not configured
> MEM (PNP0C01) [System Board] at acpi0 not configured
> THRM (ACPI Object Type 'Thermal' [0x0d]) at acpi0 not configured
> pci0 at mainbus0 bus 0: configuration mode 1
> pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
> pchb0 at pci0 dev 0 function 0
> pchb0: ATI Technologies RS480 Host Bridge (rev. 0x01)
> ppb0 at pci0 dev 1 function 0: ATI Technologies RS480 PCI Express Bridge (rev. 0x00)
> pci1 at ppb0 bus 1
> pci1: i/o space, memory space enabled
> vga0 at pci1 dev 5 function 0: ATI Technologies Radeon Xpress 200G Series (rev. 0x00)
> wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation)
> wsmux1: connecting to wsdisplay0
> direct rendering for vga0 unsupported
> ATI Technologies product 0x5854 (miscellaneous display) at pci1 dev 5 function 1 not configured
> ppb1 at pci0 dev 5 function 0: ATI Technologies RS480 PCI Express Bridge (rev. 0x00)
> pci2 at ppb1 bus 2
> pci2: i/o space, memory space enabled, rd/line, wr/inv ok
> bge0 at pci2 dev 0 function 0: Broadcom BCM5751 Gigabit Ethernet
> bge0: interrupting at irq 11
> bge0: ASIC unknown BCM575x family (0x4200), Ethernet address 00:13:d3:b0:c6:5c
> bge0: setting short Tx thresholds
> brgphy0 at bge0 phy 1: BCM5750 1000BASE-T media interface, rev. 0
> brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
> ixpide0 at pci0 dev 18 function 0
> ixpide0: ATI Technologies IXP IDE Controller (rev. 0x00)
> ixpide0: bus-master DMA support present
> ixpide0: primary channel configured to native-PCI mode
> ixpide0: using irq 5 for native-PCI interrupt
> atabus0 at ixpide0 channel 0
> ixpide0: secondary channel configured to native-PCI mode
> atabus1 at ixpide0 channel 1
> ohci0 at pci0 dev 19 function 0: ATI Technologies SB400 USB Host Controller (rev. 0x00)
> ohci0: interrupting at irq 10
> ohci0: OHCI version 1.0, legacy support
> usb0 at ohci0: USB revision 1.0
> uhub0 at usb0
> uhub0: ATI Technologie OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> uhub0: 4 ports with 4 removable, self powered
> ohci1 at pci0 dev 19 function 1: ATI Technologies SB400 USB Host Controller (rev. 0x00)
> ohci1: interrupting at irq 10
> ohci1: OHCI version 1.0, legacy support
> usb1 at ohci1: USB revision 1.0
> uhub1 at usb1
> uhub1: ATI Technologie OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
> uhub1: 4 ports with 4 removable, self powered
> ehci0 at pci0 dev 19 function 2: ATI Technologies SB400 USB2 Host Controller (rev. 0x00)
> ehci0: interrupting at irq 10
> ehci0: dropped intr workaround enabled
> ehci0: BIOS has given up ownership
> ehci0: EHCI version 1.0
> ehci0: companion controllers, 4 ports each: ohci0 ohci1
> usb2 at ehci0: USB revision 2.0
> uhub2 at usb2
> uhub2: ATI Technologies EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
> uhub2: 8 ports with 8 removable, self powered
> ATI Technologies SB400 SMBus Controller (SMBus serial bus, revision 0x10) at pci0 dev 20 function 0 not configured
> ixpide1 at pci0 dev 20 function 1
> ixpide1: ATI Technologies IXP IDE Controller (rev. 0x00)
> ixpide1: bus-master DMA support present
> ixpide1: primary channel configured to compatibility mode
> ixpide1: primary channel interrupting at irq 14
> atabus2 at ixpide1 channel 0
> ixpide1: secondary channel wired to compatibility mode
> ixpide1: secondary channel interrupting at irq 15
> atabus3 at ixpide1 channel 1
> pcib0 at pci0 dev 20 function 3
> pcib0: ATI Technologies SB400 PCI-ISA Bridge (rev. 0x00)
> ppb2 at pci0 dev 20 function 4: ATI Technologies SB400 PCI-PCI Bridge (rev. 0x00)
> pci3 at ppb2 bus 3
> pci3: i/o space, memory space enabled
> auixp0 at pci0 dev 20 function 5: ATI Technologies IXP AC'97 Audio Controller (rev. 0x01)
> auixp0: interrupting at irq 11
> auixp0: soft resetting aclink
> pchb1 at pci0 dev 24 function 0
> pchb1: Advanced Micro Devices AMD64 HyperTransport configuration (rev. 0x00)
> pchb2 at pci0 dev 24 function 1
> pchb2: Advanced Micro Devices AMD64 Address Map configuration (rev. 0x00)
> pchb3 at pci0 dev 24 function 2
> pchb3: Advanced Micro Devices AMD64 DRAM configuration (rev. 0x00)
> pchb4 at pci0 dev 24 function 3
> pchb4: Advanced Micro Devices AMD64 Miscellaneous configuration (rev. 0x00)
> isa0 at pcib0
> lpt0 at isa0 port 0x378-0x37b irq 7
> com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
> pckbc0 at isa0 port 0x60-0x64
> pckbc: cmd word write error
> attimer0 at isa0 port 0x40-0x43: AT Timer
> pcppi0 at isa0 port 0x61
> midi0 at pcppi0: PC speaker (CPU-intensive output)
> sysbeep0 at pcppi0
> fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
> pcppi0: attached to attimer0
> timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
> auixp0: ac97: Avance Logic ALC655 codec; no 3D stereo
> auixp0: ac97: ext id 9c4<AC97_23,LDAC,SDAC,CDAC,SPDIF>
> audio0 at auixp0: full duplex, mmap, independent
> auixp0: codec spdif support detected but disabled for now
> wd0 at atabus0 drive 0: <WDC WD2000JS-00MHB0>
> wd0: drive supports 16-sector PIO transfers, LBA48 addressing
> wd0: 186 GB, 387621 cyl, 16 head, 63 sec, 512 bytes/sect x 390721968 sectors
> wd0: 32-bit data port
> wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
> wd0(ixpide0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
> wd1 at atabus1 drive 0: <ST3250620NS>
> wd1: quirks 2<FORCE_LBA48>
> wd1: drive supports 16-sector PIO transfers, LBA48 addressing
> wd1: 232 GB, 484521 cyl, 16 head, 63 sec, 512 bytes/sect x 488397168 sectors
> wd1: 32-bit data port
> wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
> wd1(ixpide0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
> Kernelized RAIDframe activated
> boot device: wd0
> root on wd0a dumps on wd0b
> root file system type: ffs
>
>
>
>   
Nothing leaps out to me but I have some general recommendations:

1) Take a bios update and call me in the morning.  Seriously, a bios 
update may fix irq routing and help to resolve your issues.
2) Check that you have PNP OS set to off in the bios.  This will allow 
the bios to perform initial programming and configuration of many 
devices.  It may do it wrong, but it helps me more often than it hurts.
3) Disable usb legacy support.
4) Configure PCI_INTR_FIXUP on your kernel.
5) If everything else fails, try to go into the bios and disable devices 
until things start to work.

I have a very similar setup with an ATI/AMD motherboard, and sb400/sb600 
based southbridge, and everything is
working well.

skd