From owner-freebsd-current Wed Jun 4 08:56:51 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id IAA06407 for current-outgoing; Wed, 4 Jun 1997 08:56:51 -0700 (PDT) Received: from horst.bfd.com (horst.bfd.com [204.160.242.10]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id IAA06396 for ; Wed, 4 Jun 1997 08:56:42 -0700 (PDT) Received: from harlie.bfd.com (bastion.bfd.com [204.160.242.14]) by horst.bfd.com (8.8.5/8.7.3) with SMTP id IAA08082; Wed, 4 Jun 1997 08:56:21 -0700 (PDT) Date: Wed, 4 Jun 1997 08:56:21 -0700 (PDT) From: "Eric J. Schwertfeger" To: John-Mark Gurney cc: Richard Straka , current@FreeBSD.ORG Subject: Re: sio driver performance In-Reply-To: <19970604014135.27671@hydrogen.nike.efn.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-current@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk On Wed, 4 Jun 1997, John-Mark Gurney wrote: > Richard Straka scribbled this message on Jun 4: > > When receiving sustained 115200 baud data, an interrupt rate of > > over 26,000/sec is indicated with about 15% of the processor going > > to service interrupts. > > > > It appears as though the fifo is not working for the receive. In an > > attempt to exhonerate the hardware, I swapped in another 16550 card > > I had laying around and got the similar results. > > it actually is working quite nicely... if it wasn't you would see > 115,200 * 2 interrupts/sec if the fifo isn't working... but what > you are probably seeing is that the recieve fifo is set to 8bytes > instead of 14bytes (115200*2/26000 ~= 8.8615...)... No, since 10 bits Async=1 byte to transfer, that actually looks like (115200/10)*2/26000 ~= 0.88615. Now, the fact that a 486/33 can handle 26,000 interupts/sec under FreeBSD is impressive, but it still sounds like the UART is receiving either in unbuffered mode, or with a trigger level of 1 (hopefully the latter, though it doesn't seem to be a real problem). > also, it's a know fact that the 16550's are kinda heavy on overhead > (not as bad as a parallel port though)... if you want to do many > ports at full speed you really should invest in a smarter card, > like a Digiboard/Cyclom/Riscom/Stallion smart board that has larger > buffers and usually supports mapped memory access... Any suggestions for a single port, smart serial card that is supported and can go past 115200? I'm going to be checking some serial cards that will run 16X50's and feed them a higher than normal clock, and don't expect to see any problems, (Especially not with a DX4/120 on one end, and PPro/166 on the other).