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>
