From owner-freebsd-current Sun Aug 11 8:49:58 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 9511437B401 for ; Sun, 11 Aug 2002 08:49:51 -0700 (PDT) Received: from scl8owa02.int.exodus.net (scl8out02.exodus.net [66.35.230.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id CD76B43E5E for ; Sun, 11 Aug 2002 08:49:42 -0700 (PDT) (envelope-from Maksim.Yevmenkin@exodus.net) Received: from SJDCEX01.int.exodus.net ([165.193.27.80]) by scl8owa02.int.exodus.net with Microsoft SMTPSVC(5.0.2195.4905); Sun, 11 Aug 2002 08:51:16 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.0.5762.3 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Subject: RE: Interrupt vs. polling on -current Date: Sun, 11 Aug 2002 08:51:15 -0700 Message-ID: <45258A4365C6B24A9832BFE224837D552B1238@SJDCEX01.int.exodus.net> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Interrupt vs. polling on -current Thread-Index: AcJAVMyyqgdmyxe8Sl2j3GtrFsF/NQA9wik5 From: "Maksim Yevmenkin" To: "Bruce Evans" Cc: X-OriginalArrivalTime: 11 Aug 2002 15:51:16.0198 (UTC) FILETIME=[ED29A860:01C2414E] 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 On Fri, 9 Aug 2002, Maksim Yevmenkin wrote: > > 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 > This configuration should be expected to work poorly at best. hmmm... i have a couple of latops here at home, one made by Toshiba and another by IBM and they both have similar configuration. may be such configuration is normal for laptops? Both laptop/cards seems to work fine in W2K. I do not know much about PC-CARD controllers, but somehow each PC-CARD i plug into slot gets a different interrupt line. [ ... ] > > 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? >=20 > No, but the 3Com driver apparently is. The sio driver wants to have > fast interrupts. It can't have them with the irq is shared, so its > worst-case interrupt latency for a single serial port is increased > from about 50 usec to many msec, depending other interrupt activity > in the system (not limited to that for the shared irq except in some > configurations). Silo overflows occur at 115200 bps when the latency > is more than about 1.5 msec. perhaps, i said it wrong. I only plug *one* PC-CARD at a time, so it only 3com *or* Xircom. So irq11 gets shared between USB, NIC in docking station, PC-CARD controller and Xircom card.=20 BTW, i see "silo overflow" messages when i run ppp via null-modem cable. in this configuration i'm using serial port 0 which is on board and hase irq 4 with fast interrupts. > > 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? > > This points to bug(s) in the 3Com driver. Perhaps its interrupt > handler just runs for too long to determine that irq11's for the > serial device are not for it. Running in polled mode decreases yes, and that is what i was thinking too. but now i think it is not only 3com driver's fault. The driver just reads one port and check one bit, if it not set then interrupt is not for it.=20 > the number of interrupts that it looks at (if there are a lot of > serial interrupts), and prevents the 3Com interrupt handling from > interfering with serial interrupt handling (because timeouts have > lower priority than all other interrupts). just like i said, there is *only one* card in the PC-CARD slot and 3Com *USB* dongle. [ ... ] > > 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. >=20 > FreeBSD on a 486/33 can handle about 40000 serial interrupts per = second > to do one character of i/o per interrupt). Pessimizations in -current > have only degraded this by a small factor (2?), provided the driver > uses fast interrupts. Lose another small factor (2?) for normal = interrupts > (using normal interrupts only loses a large factor for latency). if my calculations are correct -current should handle about 10,000 interrupt/sec from sio, right? i'm sorry, but it is not what i see here. thanks, max To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message