Date: Fri, 22 Nov 2002 22:35:59 -0700 (MST) From: "M. Warner Losh" <imp@bsdimp.com> To: Maksim.Yevmenkin@cw.com Cc: vova@sw.ru, shizukakudo_99@yahoo.com, freebsd-current@FreeBSD.ORG Subject: Re: Bluetooth questions Message-ID: <20021122.223559.37439667.imp@bsdimp.com> In-Reply-To: <45258A4365C6B24A9832BFE224837D552B1265@sjdcex01.int.exodus.net> References: <45258A4365C6B24A9832BFE224837D552B1265@sjdcex01.int.exodus.net>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <45258A4365C6B24A9832BFE224837D552B1265@sjdcex01.int.exodus.net>
"Maksim Yevmenkin" <Maksim.Yevmenkin@cw.com> writes:
:
: > In message: <45258A4365C6B24A9832BFE224837D552B1264@sjdcex01.int.exodus.net>
: > "Maksim Yevmenkin" <Maksim.Yevmenkin@cw.com> writes:
: > : I see a lot of "silo overflow" errors under moderate load.
: > : As a result bytes get dropped on the floor. The Bluetooth
: > : spec defines extremely simple serial protocol (H4). It simply
: > : cannot tolerate UARTs that drop bytes. If at least one byte
: > : gets dropped the entire HCI frame is lost. If HCI frame gets
: > : dropped then "out of sync" condition exist and all bets are
: > : off. The only way to get back "in sync" is to send Reset to
: > : the device. After Reset device goes into standby state and
: > : all operational state is lost.
: >
: > OK. That makes sense. Part of the problem even with even fast
: > interrupt handlers is that interrupts are masked for way way too much
: > code in -current, as compared to -stable. What baud rate are you
: > running at? I'm running at 56k, which isn't the full datarate for
: > 115200 baud that could be used. Even with a fast interrupt, you'd get
: > SIO overflows in current, at least according to some reports.
:
: everything is set to 115200, but i think the hardware does
: something funny with the divisor and internal rate is much
: higher. with OLDCARD i managed to run Xircom card with fast
: interrupts and acually got about 50 KBytes/sec. USB devices
: give me about 60KBytes/sec.
OLDCARD on -current?
Chances are there's either an 8x the normal or 'custom'. With the
settings on current, Let's assume a 8x is 921600 baud. That means
that each bit is 1us, so each byte is 10us (1 start + 8 bits + 1
stop). The FIFO is 16 bytes (unless this part is a 16650 or something
like that), which is set to go off at MEDH, which is 8 bytes from
empty. This puts the upper bound of interrupt latency at 80us or so.
Uggg. It looks like I gotta find a way to have ISA interrupts work,
even with NEWCARD... :-(
Warner
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021122.223559.37439667.imp>
