From owner-freebsd-hardware Tue May 20 15:25:57 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id PAA01211 for hardware-outgoing; Tue, 20 May 1997 15:25:57 -0700 (PDT) Received: from lariat.lariat.org (ppp0.lariat.org@[129.72.251.2]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id PAA01205 for ; Tue, 20 May 1997 15:25:55 -0700 (PDT) Received: from solo.lariat.org ([129.72.251.10]) by lariat.lariat.org (8.8.5/8.8.5) with SMTP id QAA05174; Tue, 20 May 1997 16:24:55 -0600 (MDT) Message-Id: <3.0.1.32.19970520125159.006dbe70@lariat.org> X-Sender: brett@lariat.org X-Mailer: Windows Eudora Pro Version 3.0.1 (32) Date: Tue, 20 May 1997 12:51:59 -0600 To: rberndt@nething.com, WELCHDW@wofford.edu, HARDWARE@FreeBSD.ORG From: Brett Glass Subject: Re: isa bus and boca multiport boards Cc: WELCHDW@wofford.edu In-Reply-To: <8825649D.00771D31.00@IWND1.infoworld.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-hardware@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk At 04:14 PM 5/20/97 -0400, you wrote: >Since the entire set of ports must be scanned whenever an interrupt occurs, >maybe there is too much delay in getting to the upper ports. Something gets >locked up if they overflow. I left several messages, but no one could >figure it out. Maybe the sio driver should be recoded in optimized ASM. I can see some major C inefficiencies in it, including lots of repeated pointer dereferences and control structures that the compiler would probably optimize poorly. I've generated super-tight assembler for serial I/O. A stopgap might be be use a couple of IRQs for the different ports, if the board lets you do it. I put no more than 4 UARTs on an IRQ in my system because the driver loops over the UARTS at least twice per IRQ. --Brett