From owner-freebsd-current Fri Aug 9 11:19:16 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B04AC37B400 for ; Fri, 9 Aug 2002 11:19:09 -0700 (PDT) Received: from scl8owa02.int.exodus.net (scl8out02.exodus.net [66.35.230.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F4B143E6E for ; Fri, 9 Aug 2002 11:19:05 -0700 (PDT) (envelope-from Maksim.Yevmenkin@exodus.net) Received: from scl8owa01.int.exodus.net ([66.35.230.241]) by scl8owa02.int.exodus.net with Microsoft SMTPSVC(5.0.2195.4905); Fri, 9 Aug 2002 11:20:37 -0700 Received: from exodus.net ([206.220.227.147]) by scl8owa01.int.exodus.net over TLS secured channel with Microsoft SMTPSVC(5.0.2195.4905); Fri, 9 Aug 2002 11:20:37 -0700 Message-ID: <3D540794.E487F2F4@exodus.net> Date: Fri, 09 Aug 2002 11:19:00 -0700 From: Maksim Yevmenkin X-Mailer: Mozilla 4.78 [en] (X11; U; SunOS 5.7 sun4u) X-Accept-Language: en MIME-Version: 1.0 To: current@freebsd.org Subject: Interrupt vs. polling on -current Content-Type: multipart/mixed; boundary="------------87BD8585676EB4DD05773F78" X-OriginalArrivalTime: 09 Aug 2002 18:20:37.0225 (UTC) FILETIME=[75865D90:01C23FD1] Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This is a multi-part message in MIME format. --------------87BD8585676EB4DD05773F78 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hackers, Can anyone shed some light on the following problem: OS: FreeBSD-current DP1 (dmesg attached) Laptop: Toshiba Tecra 8100 (docked) Hardware: 3Com Bluetooth USB dongle, 3Com Bluetooth PC-CARD Xircom CBT PC-CARD (with 16550A UART) First of all, irq 11 gets shared between PC-CARD controller, USB controller, NIC in docking station (see dmesg). Everything that i plug into PC-CARD slots also get irq 11 (which is normal - i think). Also i have disabled "interrupt harvesting". My tests are very simple. I plug USB dongle and one PC-CARD and try to pump data between them as fast as possible. The data blocks sizes are between 63 and 1500 bytes. The Xircom card just does not work :( I' getting a lot of "silo overflow" messages no matter what i try. I checked list archives and source - not much look. Is "sio" driver totally hopeless? The 3Com PC-CARD is a little bit better, but after some time it also starting to drop bytes. This morning i change 3Com driver to use polling, and, to my extreme surprise it work much, much better now. Also the interrupt load (according to top) has reduced to at least half. I have not noticed any system slow down. So what is up this that? Does that mean that for slow devices like serial ports etc. polling is better? Does anyone tried to use polling in "sio" driver? I just can't believe that FreeBSD on my Pentium-III/600 can't handle lousy 500-700 interrupts a second from PC-CARD. Can anyone point me into right direction, because i'm obviously doing something wrong here. thanks, max --------------87BD8585676EB4DD05773F78 Content-Type: text/plain; charset=us-ascii; name="messages" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="messages" Aug 9 10:10:08 beetle kernel: Copyright (c) 1992-2002 The FreeBSD Project. Aug 9 10:10:08 beetle kernel: Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 Aug 9 10:10:08 beetle kernel: The Regents of the University of California. All rights reserved. Aug 9 10:10:08 beetle kernel: FreeBSD 5.0-DP1 #20: Thu Aug 8 15:54:09 PDT 2002 Aug 9 10:10:08 beetle kernel: max@beetle.digisle.com:/usr/src/sys/i386/compile/BEETLE Aug 9 10:10:08 beetle kernel: Preloaded elf kernel "/boot/kernel/kernel" at 0xc0374000. Aug 9 10:10:08 beetle kernel: Preloaded elf module "/boot/kernel/nmdm.ko" at 0xc03740a8. Aug 9 10:10:08 beetle kernel: Timecounter "i8254" frequency 1193182 Hz Aug 9 10:10:08 beetle kernel: Timecounter "TSC" frequency 597786416 Hz Aug 9 10:10:08 beetle kernel: CPU: Pentium III/Pentium III Xeon/Celeron (597.79-MHz 686-class CPU) Aug 9 10:10:08 beetle kernel: Origin = "GenuineIntel" Id = 0x681 Stepping = 1 Aug 9 10:10:08 beetle kernel: Features=0x383f9ff Aug 9 10:10:08 beetle kernel: real memory = 201195520 (196480K bytes) Aug 9 10:10:08 beetle kernel: avail memory = 191938560 (187440K bytes) Aug 9 10:10:08 beetle kernel: Pentium Pro MTRR support enabled Aug 9 10:10:08 beetle kernel: Using $PIR table, 10 entries at 0xc00f4ee0 Aug 9 10:10:08 beetle kernel: npx0: on motherboard Aug 9 10:10:08 beetle kernel: npx0: INT 16 interface Aug 9 10:10:08 beetle kernel: pcib0: at pcibus 0 on motherboard Aug 9 10:10:08 beetle kernel: pci0: on pcib0 Aug 9 10:10:08 beetle kernel: pcib1: at device 1.0 on pci0 Aug 9 10:10:08 beetle kernel: pci1: on pcib1 Aug 9 10:10:08 beetle kernel: pci1: at device 0.0 (no driver attached) Aug 9 10:10:08 beetle kernel: isab0: at device 3.0 on pci0 Aug 9 10:10:08 beetle kernel: isa0: on isab0 Aug 9 10:10:08 beetle kernel: isab1: at device 5.0 on pci0 Aug 9 10:10:08 beetle kernel: atapci0: port 0xfff0-0xffff at device 5.1 on pci0 Aug 9 10:10:08 beetle kernel: ata0: at 0x1f0 irq 14 on atapci0 Aug 9 10:10:08 beetle kernel: ata1: at 0x170 irq 15 on atapci0 Aug 9 10:10:08 beetle kernel: uhci0: port 0xff80-0xff9f irq 11 at device 5.2 on pci0 Aug 9 10:10:08 beetle kernel: usb0: on uhci0 Aug 9 10:10:08 beetle kernel: usb0: USB revision 1.0 Aug 9 10:10:08 beetle kernel: uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 Aug 9 10:10:08 beetle kernel: uhub0: 2 ports with 2 removable, self powered Aug 9 10:10:08 beetle kernel: uhub1: Texas Instruments UT-USB41 hub, class 9/0, rev 1.00/1.00, addr 2 Aug 9 10:10:08 beetle kernel: uhub1: 4 ports with 4 removable, self powered Aug 9 10:10:08 beetle kernel: pci0: at device 5.3 (no driver attached) Aug 9 10:10:08 beetle kernel: pci0: at device 9.0 (no driver attached) Aug 9 10:10:08 beetle kernel: pci_cfgintr_linked: linked (60) to hard-routed irq 11 Aug 9 10:10:08 beetle kernel: pci_cfgintr: 0:11 INTA routed to irq 11 Aug 9 10:10:08 beetle kernel: pcic0: irq 11 at device 11.0 on pci0 Aug 9 10:10:08 beetle kernel: pcic0: PCI Memory allocated: 0x44000000 Aug 9 10:10:08 beetle kernel: pccard0: on pcic0 Aug 9 10:10:08 beetle kernel: pci_cfgintr_linked: linked (61) to hard-routed irq 11 Aug 9 10:10:08 beetle kernel: pci_cfgintr: 0:11 INTB routed to irq 11 Aug 9 10:10:08 beetle kernel: pcic1: irq 11 at device 11.1 on pci0 Aug 9 10:10:08 beetle kernel: pcic1: PCI Memory allocated: 0x44001000 Aug 9 10:10:08 beetle kernel: pccard1: on pcic1 Aug 9 10:10:08 beetle kernel: pci0: at device 12.0 (no driver attached) Aug 9 10:10:08 beetle kernel: xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xfd80-0xfdff mem 0xefff7f80-0xefff7fff irq 11 at device 15.0 on pci0 Aug 9 10:10:08 beetle kernel: xl0: Ethernet address: 00:00:39:8c:1e:26 Aug 9 10:10:08 beetle kernel: miibus0: on xl0 Aug 9 10:10:08 beetle kernel: xlphy0: <3c905C 10/100 internal PHY> on miibus0 Aug 9 10:10:08 beetle kernel: xlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto Aug 9 10:10:08 beetle kernel: orm0: