From: Grant Edwards <grant.b.edwards@gmail.com>
To: linux-serial@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, linux-rt-users@vger.kernel.org
Subject: Re: locking changes in tty broke low latency feature
Date: Wed, 19 Feb 2014 16:55:41 +0000 (UTC) [thread overview]
Message-ID: <le2nmd$p1$1@ger.gmane.org> (raw)
In-Reply-To: 20140219130308.GC1851@redhat.com
On 2014-02-19, Stanislaw Gruszka <sgruszka@redhat.com> wrote:
> Hello,
>
> On Tue, Feb 18, 2014 at 05:12:13PM -0500, Peter Hurley wrote:
>> On 02/18/2014 04:38 AM, Stanislaw Gruszka wrote:
>>
>> >setserial has low_latency option which should minimize receive latency
>> >(scheduler delay). AFAICT it is used if someone talk to external device
>> >via RS-485/RS-232 and need to have quick requests and responses.
Exactly.
>>>
>>>But after 3.12 tty locking changes, calling flush_to_ldisc() from
>>>interrupt context is a bug (we got scheduling while atomic bug report
>>>here: https://bugzilla.redhat.com/show_bug.cgi?id=1065087 )
>>
>> Can you give me an idea of your device's average and minimum required
>> latency (please be specific)?
If by "device" you mean the UART being supported by the the driver in
question, then there is no answer.
Latency issues and requirements are a user-space application level
requirement that depend on the specific application's requirements and
those of the widget on the other end of the serial cable.
>> Also, how painful would it be if unsupported termios changes were rejected
>> if the port was in low_latency mode and/or if low_latency setting was
>> disallowed because of termios state?
>>
>> It would be pointless to throttle low_latency, yes?
By "throttle" I assume you're talking about flow control?
_Usually_ applications that require low latency are exchanging short
messages (up to a few hundred bytes, but usually more like a few
dozen). In those cases flow control is not generally needed.
Does it matter?
>> What would be an acceptable outcome of being unable to accept input?
>> Corrupted overrun? Dropped i/o? Queued for later? Please explain with
>> comparison to the outcome of missed minimum latency.
>
> I'm sorry, I can not answer your questions.
>
> For what I googled it looks like users wanted to get rid of 10ms jitter
> caused by scheduler.
Yes. That was the use for the low_latency option. Historically, all
of my drivers had supported the low_latency options for customers that
found scheduling delays to be a problem.
However, low_latency has been broken in certain contexts for a long
time. As a result, drivers have to avoid using it either completely or
sometimes only where rx data is handled in certain contexts.
For some drivers the end result of that is that you can choose either
a low-latency I/O mechanism or low-latency TTY layer rx handling, but
you can't use both at the same time because the low-latency I/O
mechanism handles rx data in a context where low-latency TTY layer
stuff can't be used.
Now that HZ is often 1000 and tickless is commonly used, I don't think
the scheduling delay is nearly as much an issue as it used to be. I
haven't gotten any complaints since it was largely rendered useless
several years ago.
Now all my drivers will silently override users if they set the
low_latency flag on a port in situations where it can't be used.
--
Grant Edwards grant.b.edwards Yow! OVER the underpass!
at UNDER the overpass!
gmail.com Around the FUTURE and
BEYOND REPAIR!!
next prev parent reply other threads:[~2014-02-19 16:56 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-18 9:38 locking changes in tty broke low latency feature Stanislaw Gruszka
2014-02-18 9:57 ` One Thousand Gnomes
2014-02-18 22:12 ` Peter Hurley
2014-02-19 13:03 ` Stanislaw Gruszka
2014-02-19 16:55 ` Grant Edwards [this message]
2014-02-19 17:38 ` Peter Hurley
2014-02-19 18:12 ` Grant Edwards
2014-02-19 18:42 ` Peter Hurley
2014-02-19 19:17 ` One Thousand Gnomes
2014-02-19 20:22 ` Peter Hurley
2014-02-19 21:42 ` One Thousand Gnomes
2014-02-20 2:19 ` Peter Hurley
2014-02-21 15:39 ` One Thousand Gnomes
2014-02-21 15:58 ` Peter Hurley
2014-02-21 16:31 ` Grant Edwards
2014-02-19 23:06 ` Hal Murray
2014-02-19 23:35 ` One Thousand Gnomes
2014-02-20 2:55 ` Peter Hurley
2014-02-20 4:16 ` Greg KH
2014-02-20 18:16 ` Peter Hurley
2014-02-20 19:33 ` Grant Edwards
2014-02-20 22:06 ` Peter Hurley
2014-02-23 22:33 ` Thomas Gleixner
2014-02-24 0:23 ` Peter Hurley
2014-02-24 13:23 ` One Thousand Gnomes
2014-02-24 15:44 ` Grant Edwards
2014-02-20 21:55 ` Hal Murray
2014-02-20 22:14 ` Grant Edwards
2014-02-21 15:43 ` One Thousand Gnomes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='le2nmd$p1$1@ger.gmane.org' \
--to=grant.b.edwards@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).