Messages in this thread | | | From | Grant Edwards <> | Subject | Re: locking changes in tty broke low latency feature | Date | Thu, 20 Feb 2014 19:33:46 +0000 (UTC) |
| |
On 2014-02-20, Peter Hurley <peter@hurleysoftware.com> wrote: > On 02/19/2014 09:55 PM, Peter Hurley wrote: >> On 02/19/2014 06:06 PM, Hal Murray wrote: >>>> Can you give me an idea of your device's average and minimum required >>>> latency (please be specific)? Is your target arch x86 [so I can evaluate the >>>> the impact of bus-locked instructions relative to your expected]? >>> >>> The code I'm familiar with is ntpd and gpsd. They run on almost any hardware >>> or OS and talk to a wide collection of devices. >>> >>> There is no hard requirement for latency. They just work better with lower >>> latency. The lower the better. >>> >>> People gripe about the latency due to USB polling which is about a ms. >> >> Have you tried 3.12+ without low_latency? I ripped out a lot of locks >> from 3.12+ so it's possible it already meets your requirements. > > Using Alan's idea to mock up a latency test, I threw together a test jig > using two computers running 3.14-rc1 and my fwserial driver (modified to > not aggregrate writes) in raw mode where the target does this: > > while (1) { > read 64 bytes > compare to pattern > write 1 byte response > } > > and the sender does this: > > for (i = 0; i < 2000; i++) { > write 64-byte pattern > read 1 byte response > } > > Sender completes 2000 loops in 160ms total run time; > that's 80us average per complete round-trip.
If I understand correctly, that 80us _includes_ the actual time for the bits on the wire (which means the actual "baud rate" involved is high enough that it's negligible).
> I think this shows that low_latency is unnecessary and should > just be removed/ignored by the tty core.
If that's the sort of latency that you get for typical kernel configurations for typical distros, then I agree that the low_latency flag is not needed by the tty later.
However, it might still be useful for the lower-level tty or serial-core driver to control CPU usage vs. latency trade-offs (for exaple, one of my drivers uses it to decide where to set the rx FIFO threshold).
-- Grant Edwards grant.b.edwards Yow! I wonder if I could at ever get started in the gmail.com credit world?
| |