Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Jun 2002 03:38:28 -0400
From:      Anthony Jenkins <abjenkins@attbi.com>
To:        Anthony Jenkins <abjenkins@attbi.com>
Cc:        FreeBSD-current <current@freebsd.org>
Subject:   Re: High interrupt usage in system (ohci and/or pcm?)
Message-ID:  <3D12D7F4.9030806@attbi.com>
References:  <3D11575E.3070703@attbi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Compiled the USB out of the kernel and have *much* better 
responsiveness.  I have a 4-port PCI USB OHCI controller card installed. 
 With both the USB and pcm modules unloaded the irq10 handler seems to 
fall to 0% usage, but if I load snd_emu10k1.ko it pops right back up to 
60% in top(1), regardless of whether I'm using the device or not. 
 Luckily this mouse has a USB-to-PS/2 adapter.  Guess I don't need sound 
or USB....

Anthony

Anthony Jenkins wrote:

>  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
>




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?3D12D7F4.9030806>