Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jun 2002 00:17:34 -0400
From:      Anthony Jenkins <abjenkins@attbi.com>
To:        FreeBSD-current <current@freebsd.org>
Subject:   High interrupt usage in system (ohci and/or pcm?)
Message-ID:  <3D11575E.3070703@attbi.com>

next in thread | raw e-mail | index | archive | help
  Hi,

Ever since cvsup'ing/building a new kernel a couple weeks ago I've had 
ridiculously high interrupt state percentages shown in top(1), from 
70%-98%.  My system (1 Athlon MP 1800+, Tyan 2466 dual board, 512MB, SMP 
kernel) is running at about 20% of its previous responsiveness.  Running 
single-user mode offers no change to the high interrupt state measure. 
 I cvsup'd yesterday and installed world+kernel, but no luck.  I'll post 
my kernel config below, with most comment/blank lines removed for space, 
as well as my dmesg output.

Okay, looking at 'ps axlww' shows the ochi1 and pcm drivers with '263' 
in the CPU column... setiathome is a measly 119:

    0    26     0 263 -64  0     0    3 -      RL    ??  157:51.30  
(irq10: ohci1 pcm0)

I load pcm through the loader(8) mechanism using a pcm_load="YES" line 
in /boot/loader.conf, but it had always been sane before; ohci is in 
kernel config.  My USB devices are a MS Intellimouse and an IBM webcam 
(this is a dual-boot box now).  Any other tools I can use to determine 
where my cycles are going?

Okay, I killed X and unloaded the pcm driver and usage is around 64-67% 
in interrupt state, and a bit more responsive, but the ohci listing in 
ps(1) still seems to be the culprit:

    0    26     0 242 -64  0     0    3 Giant  ML    ??  164:54.23  
(irq10: ohci1)

It seems that 8 out of 9 times I get "Giant ML" in the listing... 
probably related to the several warnings I get on console?  Here's some 
output from dmesg(8):

/usr/src/sys/vm/uma_core.c:1330: could sleep with "pcm0:play:0" locked 
from /usr/src/sys/dev/sound/pcm/sound.c:191
/usr/src/sys/vm/uma_core.c:1330: could sleep with "pcm0:record:0" locked 
from /usr/src/sys/dev/sound/pcm/sound.c:191
/usr/src/sys/vm/uma_core.c:1330: could sleep with "pcm0:play:0" locked 
from /usr/src/sys/dev/sound/pcm/sound.c:191
/usr/src/sys/vm/uma_core.c:1330: could sleep with "pcm0:record:0" locked 
from /usr/src/sys/dev/sound/pcm/sound.c:191
...
lock order reversal
 1st 0xdf5fab34 process lock (process lock) @ 
/usr/src/sys/kern/kern_exec.c:319
 2nd 0xc0318d80 filelist lock (filelist lock) @ 
/usr/src/sys/kern/kern_descrip.c:1112
/usr/src/sys/vm/uma_core.c:1330: could sleep with "process lock" locked 
from /usr/src/sys/kern/kern_exec.c:319
/usr/src/sys/vm/uma_core.c:1330: could sleep with "process lock" locked 
from /usr/src/sys/kern/kern_exec.c:319
...
/usr/src/sys/vm/uma_core.c:1330: could sleep with "xl0" locked from 
/usr/src/sys/pci/if_xl.c:415
pcm0: unregister: channel pcm0:play:0 busy (pid 13129)
IP firewall unloaded
IP packet filtering initialized, divert disabled, rule-based forwarding 
disabled, default to deny, logging disabled
pid 13008 (cupsd), uid 0: exited on signal 10 (core dumped)
/usr/src/sys/vm/uma_core.c:1330: could sleep with "process lock" locked 
from /usr/src/sys/kern/kern_prot.c:511
/usr/src/sys/vm/uma_core.c:1330: could sleep with "process lock" locked 
from /usr/src/sys/kern/kern_prot.c:511
pcm0: warning: memblock list not empty
pcm0: detached
emujoy0: detached
/usr/src/sys/vm/uma_core.c:1330: could sleep with "process lock" locked 
from /usr/src/sys/kern/kern_prot.c:511
/usr/src/sys/vm/uma_core.c:1330: could sleep with "process lock" locked 
from /usr/src/sys/kern/kern_prot.c:511
[/usr/home/ajenkins]{41}: /usr/src/sys/vm/uma_core.c:1330: could sleep 
with "process lock" locked from /usr/src/sys/kern/kern_exec.c:319
/usr/src/sys/vm/uma_core.c:1330:: Too many arguments.
/usr/src/sys/vm/uma_core.c:1330: could sleep with "process lock" locked 
from /usr/src/sys/kern/kern_exec.c:319
[/usr/home/ajenkins]{42}: /usr/src/sys/vm/uma_core.c:1330: could sleep 
with "process lock" locked from /usr/src/sys/kern/kern_exec.c:319
/usr/src/sys/vm/uma_core.c:1330:: Too many arguments.

Kernel config:

machine         i386
#cpu            I386_CPU               
cpu             I486_CPU
cpu             I586_CPU
cpu             I686_CPU
ident           "MYKERNEL-5.0"
options         CPU_ATHLON_SSE_HACK
maxusers        0
#hints          "GENERIC.hints"         #Default places to look for devices.
makeoptions     DEBUG=-g                #Build kernel with gdb(1) debug 
symbols
options         INET                    #InterNETworking
#options        INET6                   #IPv6 communications protocols
options         FFS                     #Berkeley Fast Filesystem
options         SOFTUPDATES             #Enable FFS soft updates support
options         UFS_DIRHASH             #Improve performance on big 
directories
options         MD_ROOT                 #MD is a potential root device
options         NFSCLIENT               #Network Filesystem Client
options         NFSSERVER               #Network Filesystem Server
options         NFS_ROOT                #NFS usable as root device, 
requires NFSCLIENT
options         MSDOSFS                 #MSDOS Filesystem
options         CD9660                  #ISO 9660 Filesystem
options         PROCFS                  #Process filesystem (requires 
PSEUDOFS)
options         PSEUDOFS                #Pseudo-filesystem framework
options         COMPAT_43               #Compatible with BSD 4.3 [KEEP 
THIS!]
options         SCSI_DELAY=5000         #Delay (in ms) before probing SCSI
options         KTRACE                  #ktrace(1) support
options         SYSVSHM                 #SYSV-style shared memory
options         SYSVMSG                 #SYSV-style message queues
options         SYSVSEM                 #SYSV-style semaphores
options         P1003_1B                #Posix P1003_1B real-time extensions
options         _KPOSIX_PRIORITY_SCHEDULING
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options         DDB                     #Enable the kernel debugger
#options        INVARIANTS              #Enable calls of extra sanity 
checking
#options        INVARIANT_SUPPORT       #Extra sanity checks of internal 
structures, required by INVARIANTS
options         WITNESS                 #Enable checks to detects 
deadlocks and cycles
options         WITNESS_SKIPSPIN        #Don't run witness on spinlocks 
for speed
options         COMPAT_LINUX
options         LINPROCFS
options         SMP                     # Symmetric MultiProcessor Kernel
options         APIC_IO                 # Symmetric (APIC) I/O
device          isa
device          eisa
device          pci
#options        PCI_ENABLE_IO_MODES     # Enable pci resources left off 
by a "lazy BIOS"
device          fdc
device          ata
device          atadisk                 # ATA disk drives
device          atapicd                 # ATAPI CDROM drives
#device         atapifd                 # ATAPI floppy drives
#device         atapist                 # ATAPI tape drives
options         ATA_STATIC_ID           #Static device numbering
device          isp             # Qlogic family
device          scbus           # SCSI bus (required)
device          ch              # SCSI media changers
device          da              # Direct Access (disks)
device          sa              # Sequential Access (tape etc)
device          cd              # CD
device          pass            # Passthrough device (direct SCSI access)
device          ses             # SCSI Environmental Services (and SAF-TE)
device          atkbdc  1       # At keyboard controller
device          atkbd           # at keyboard
device          psm             # psm mouse
device          vga             # VGA screen
device          agp
device          splash
device          sc      1
#device         vt
options         XSERVER                 # support for X server on a vt 
console
#options        FAT_CURSOR              # start with block cursor
device          npx
#device         apm
device          pmtimer
device          sio             # 8250, 16[45]50 based serial ports
device          ppc
device          ppbus           # Parallel port bus (required)
device          lpt             # Printer
device          plip            # TCP/IP over parallel
device          ppi             # Parallel port interface device
#device         vpo             # Requires scbus and da
device          miibus          # MII bus support
device          xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')
device          random          # Entropy device
device          loop            # Network loopback
device          ether           # Ethernet support
device          tun             # Packet tunnel.
device          pty             # Pseudo-ttys (telnet etc)
device          md              # Memory "disks"
device          gif             # IPv6 and IPv4 tunneling
device          faith           # IPv6-to-IPv4 relaying (translation)
device          bpf             # Berkeley packet filter
device          uhci            # UHCI PCI->USB interface
device          ohci            # OHCI PCI->USB interface
device          usb             # USB Bus (required)
#device         udbp            # USB Double Bulk Pipe devices
device          ugen            # Generic
device          uhid            # "Human Interface Devices"
device          ukbd            # Keyboard
device          ulpt            # Printer
device          umass           # Disks/Mass storage - Requires scbus and da
device          ums             # Mouse
device          urio            # Diamond Rio 500 MP3 player
device          uscanner        # Scanners
device          aue             # ADMtek USB ethernet
device          cue             # CATC USB ethernet
device          kue             # Kawasaki LSI USB ethernet

TIA,
--
Anthony Jenkins




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D11575E.3070703>