All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Johan Hovold <johan@kernel.org>,
	linux-usb@vger.kernel.org, Antoine Aubert <a.aubert@overkiz.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH] USB: serial: ftdi_sio: fix extreme low-latency setting
Date: Wed, 25 Jan 2017 17:02:33 +0100	[thread overview]
Message-ID: <20170125160233.GE20261@localhost> (raw)
In-Reply-To: <20170125154201.GA21106@kroah.com>

On Wed, Jan 25, 2017 at 04:42:01PM +0100, Greg Kroah-Hartman wrote:
> On Wed, Jan 25, 2017 at 04:14:36PM +0100, Johan Hovold wrote:
> > On Wed, Jan 25, 2017 at 04:06:47PM +0100, Greg Kroah-Hartman wrote:
> > > On Wed, Jan 25, 2017 at 03:35:20PM +0100, Johan Hovold wrote:
> > > > Since commit 557aaa7ffab6 ("ft232: support the ASYNC_LOW_LATENCY
> > > > flag") the FTDI driver has been using a receive latency-timer value of
> > > > 1 ms instead of the device default of 16 ms.
> > > > 
> > > > The latency timer is used to periodically empty a non-full receive
> > > > buffer, but a status header is always sent when the timer expires
> > > > including when the buffer is empty. This means that a two-byte bulk
> > > > message is received every millisecond also for an otherwise idle port as
> > > > long as it is open.
> > > > 
> > > > Let's restore the pre-2009 behaviour which reduces rate of status
> > > > messages to 1/16th (e.g. interrupt frequency drops from 1 kHz to 62.5
> > > > Hz) by not setting ASYNC_LOW_LATENCY by default.
> > > > 
> > > > Anyone willing to pay the price for the minimum-latency behaviour should
> > > > set the flag explicitly instead using the TIOCSSERIAL ioctl or a tool
> > > > such as setserial (e.g. setserial /dev/ttyUSB0 low_latency).
> > > > 
> > > > Note that since commit 0cbd81a9f6ba ("USB: ftdi_sio: remove
> > > > tty->low_latency") the ASYNC_LOW_LATENCY flag has no other effects but
> > > > to set a minimal latency timer.
> > > > 
> > > > Reported-by: Antoine Aubert <a.aubert@overkiz.com>
> > > > Fixes: 557aaa7ffab6 ("ft232: support the ASYNC_LOW_LATENCY flag")
> > > > Cc: stable <stable@vger.kernel.org>	# v2.6.31
> > > > Signed-off-by: Johan Hovold <johan@kernel.org>
> > > > ---
> > > > 
> > > > Greg,
> > > > 
> > > > I've been aware of this overhead for a while, but never realised it was
> > > > actually a regression introduced in 2009.
> > > > 
> > > > Fixing something like this after such a long time obviously means
> > > > risking a regression for anyone who is now relying on the new default
> > > > behaviour instead. I still think it's reasonable in this case to restore
> > > > the earlier behaviour given the penalty everyone else is paying for a
> > > > minimal-latency behaviour that they likely do not need or want.
> > > > 
> > > > Whether this should go to stable is a different question. Perhaps the
> > > > stable tag is not warranted, and this should just be the default
> > > > behaviour going forward? What do you think?
> > > 
> > > I think the stable tag is warrented here.  Do you want me to take this
> > > patch now into my usb-linus tree, or will you include it in a pull
> > > request?
> > 
> > I'll include it in a pull request. I was gonna apply it for -next, but
> > if you prefer I can send it along with some new device ids I have queued
> > up for 4.10-rc?
> 
> -next is probably good, it's not like there is a rush for it :)

True. Don't really wanna think about how much power has been wasted on
these insane interrupt rates considering the number of these devices
that are out there though...

Now applied for -next, with a stable dependency on patch already in my
tree which did not need to be backported while ASYNC_LOW_LATENCY was
set.

Thanks,
Johan

  reply	other threads:[~2017-01-25 16:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-25 14:35 [PATCH] USB: serial: ftdi_sio: fix extreme low-latency setting Johan Hovold
2017-01-25 15:06 ` Greg Kroah-Hartman
2017-01-25 15:14   ` Johan Hovold
2017-01-25 15:42     ` Greg Kroah-Hartman
2017-01-25 16:02       ` Johan Hovold [this message]
2017-01-25 15:19 ` David Laight

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=20170125160233.GE20261@localhost \
    --to=johan@kernel.org \
    --cc=a.aubert@overkiz.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stable@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.