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>