Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Apr 2004 13:30:22 +0200
From:      Bernd Walter <ticso@cicely12.cicely.de>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        marcel@xcllnt.net
Subject:   Re: polling for sio?
Message-ID:  <20040409113021.GK5279@cicely12.cicely.de>
In-Reply-To: <20040408.123443.101835222.imp@bsdimp.com>
References:  <20040407170422.GF567@funkthat.com> <c51voo$jt$1@sea.gmane.org> <20040408024455.GC20138@dhcp01.pn.xcllnt.net> <20040408.123443.101835222.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Apr 08, 2004 at 12:34:43PM -0600, M. Warner Losh wrote:
> In message: <20040408024455.GC20138@dhcp01.pn.xcllnt.net>
>             Marcel Moolenaar <marcel@xcllnt.net> writes:
> : On Wed, Apr 07, 2004 at 03:36:02PM -0700, othermark wrote:
> : > I have a multi-port PCI card under puc and sio that has 4 19200
> : > connections to it now, and when data is streaming across all of
> : > them at once, I get several silo overflows.  Would it be better
> : > to run this under puc + uart?
> : 
> : Not really. The problem is that puc(4) iterates over all ports in
> : the same way whether you use uart(4) or sio(4). So, puc(4) is
> : the problem more that sio(4) or uart(4). However, uart(4) has the
> : beginnings of an interface that puc(4) could use to figure out
> : which UART needs attention without actually calling the interrupt
> : routine for each of them.
> 
> Yes, but at 19200 baud, his problems likely aren't related to the
> iteration.  They are likely related to the fact that he said his
> interrupt is shared and therefore not fast.  We have horrible
> interrupt latency in current when you want to get to the FIFOs of
> UARTs quickly :-(.

Those cards are just what they are - cheap.
They have very small FIFOs and they don't use DMA.
IRQ sharing makes them even worse than traditional ISA stuff.
My advise for cost efficient and fast serials is getting USB ones.
Even noname USB serials do much better then puc(4) based.
E.g. the FT232BM (uftdi(4)) has 128 bytes send and 384 bytes receive
buffer plus your USB controller does DMA.
At best you would add a cheap OHCI card if your onboard USB is UHCI
based as OHCI is less CPU intensive.

-- 
B.Walter                   BWCT                http://www.bwct.de
ticso@bwct.de                                  info@bwct.de



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040409113021.GK5279>