From: Linus Torvalds <torvalds@linux-foundation.org>
To: Eric Dumazet <edumazet@google.com>
Cc: Josef Griebichler <griebichler.josef@gmx.at>,
Jesper Dangaard Brouer <jbrouer@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Mauro Carvalho Chehab <mchehab@s-opensource.com>,
Alan Stern <stern@rowland.harvard.edu>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
USB list <linux-usb@vger.kernel.org>,
Rik van Riel <riel@redhat.com>, Paolo Abeni <pabeni@redhat.com>,
Hannes Frederic Sowa <hannes@redhat.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
netdev <netdev@vger.kernel.org>, Jonathan Corbet <corbet@lwn.net>,
LMML <linux-media@vger.kernel.org>,
David Miller <davem@davemloft.net>
Subject: Re: Re: dvb usb issues since kernel 4.9
Date: Tue, 9 Jan 2018 09:48:47 -0800 [thread overview]
Message-ID: <CA+55aFzcoNEpnRp0R3fLYQKdfzS5mLj3z_v=1A1NfyrybQ__4A@mail.gmail.com> (raw)
In-Reply-To: <CANn89iJqRH4uzFJVKyPxc8dN38z319C1O18nTJ-CCidtuOH2+g@mail.gmail.com>
On Tue, Jan 9, 2018 at 9:27 AM, Eric Dumazet <edumazet@google.com> wrote:
>
> So yes, commit 4cd13c21b207 ("softirq: Let ksoftirqd do its job") has
> shown up multiple times in various 'regressions'
> simply because it could surface the problem more often.
> But even if you revert it, you can still make the faulty
> driver/subsystem misbehave by adding more stress to the cpu handling
> the IRQ.
..but that's always true. People sometimes live on the edge - often by
design (ie hardware has been designed/selected to be the crappiest
possible that still work).
That doesn't change anything. A patch that takes "bad things can
happen" to "bad things DO happen" is a bad patch.
> Maybe the answer is to tune the kernel for small latencies at the
> price of small throughput (situation before the patch)
Generally we always want to tune for latency. Throughput is "easy",
but almost never interesting.
Sure, people do batch jobs. And yes, people often _benchmark_
throughput, because it's easy to benchmark. It's much harder to
benchmark latency, even when it's often much more important.
A prime example is the SSD benchmarks in the last few years - they
improved _dramatically_ when people noticed that the real problem was
latency, not the idiotic maximum big-block bandwidth numbers that have
almost zero impact on most people.
Put another way: we already have a very strong implicit bias towards
bandwidth just because it's easier to see and measure.
That means that we generally should strive to have a explicit bias
towards optimizing for latency when that choice comes up. Just to
balance things out (and just to not take the easy way out: bandwidth
can often be improved by adding more layers of buffering and bigger
buffers, and that often ends up really hurting latency).
> 1) Revert the patch
Well, we can revert it only partially - limiting it to just networking
for example.
Just saying "act the way you used to for tasklets" already seems to
have fixed the issue in DVB.
> 2) get rid of ksoftirqd since it adds unexpected latencies.
We can't get rid of it entirely, since the synchronous softirq code
can cause problems too. It's why we have that "maximum of ten
synchronous events" in __do_softirq().
And we don't *want* to get rid of it.
We've _always_ had that small-scale "at some point we can't do it
synchronously any more".
That is a small-scale "don't have horrible latency for _other_ things"
protection. So it's about latency too, it's just about protecting
latency of the rest of the system.
The problem with commit 4cd13c21b207 is that it turns the small-scale
latency issues in softirq handling (they get larger latencies for lots
of hardware interrupts or even from non-preemptible kernel code) into
the _huge_ scale latency of scheduling, and does so in a racy way too.
> 3) Let applications that expect to have high throughput make sure to
> pin their threads on cpus that are not processing IRQ.
> (And make sure to not use irqbalance, and setup IRQ cpu affinities)
The only people that really deal in "thoughput only" tend to be the
HPC people, and they already do things like this.
(The other end of the spectrum is the realtime people that have
extreme latency requirements, who do things like that for the reverse
reason: keeping one or more CPU's reserved for the particular
low-latency realtime job).
Linus
next prev parent reply other threads:[~2018-01-09 17:48 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <trinity-35b3a044-b548-4a31-9646-ed9bc83e6846-1513505978471@3c-app-gmx-bs03>
[not found] ` <20171217120634.pmmuhdqyqmbkxrvl@gofer.mess.org>
[not found] ` <20171217112738.4f3a4f9b@recife.lan>
[not found] ` <trinity-1fa14556-8596-44b1-95cb-b8919d94d2d4-1515251056328@3c-app-gmx-bs15>
2018-01-06 19:54 ` dvb usb issues since kernel 4.9 Mauro Carvalho Chehab
2018-01-06 21:07 ` Aw: " Josef Griebichler
2018-01-06 21:44 ` Alan Stern
2018-01-07 11:03 ` Mauro Carvalho Chehab
2018-01-07 15:41 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1801071010540.13425-100000-pYrvlCTfrz9XsRXLowluHWD2FQJk+8+b@public.gmane.org>
2018-01-07 17:01 ` Aw: " Josef Griebichler
2018-01-08 9:43 ` Mauro Carvalho Chehab
2018-01-08 16:10 ` Alan Stern
2018-01-08 16:26 ` Aw: " Josef Griebichler
2018-01-08 16:31 ` Alan Stern
2018-01-08 17:15 ` Aw: " Josef Griebichler
2018-01-08 17:35 ` Alan Stern
2018-01-08 20:40 ` Jesper Dangaard Brouer
2018-01-08 21:31 ` Jesper Dangaard Brouer
2018-01-08 21:44 ` Peter Zijlstra
2018-01-08 22:16 ` Jesper Dangaard Brouer
2018-01-09 16:51 ` Aw: " Josef Griebichler
2018-01-09 17:27 ` Eric Dumazet
2018-01-09 17:48 ` Linus Torvalds [this message]
2018-01-09 17:57 ` Eric Dumazet
2018-01-09 18:58 ` Linus Torvalds
2018-01-09 21:48 ` Eric Dumazet
2018-01-10 9:45 ` Jesper Dangaard Brouer
2018-01-12 21:13 ` Mauro Carvalho Chehab
2018-01-12 21:48 ` Eric Dumazet
2018-01-13 9:09 ` Mauro Carvalho Chehab
2018-01-13 10:46 ` Mauro Carvalho Chehab
2018-01-07 21:23 ` Linus Torvalds
2018-01-08 10:02 ` Mauro Carvalho Chehab
2018-01-08 11:59 ` Jesper Dangaard Brouer
2018-01-08 12:53 ` Mauro Carvalho Chehab
2018-01-08 16:25 ` Alan Stern
2018-01-08 17:55 ` Ingo Molnar
2018-01-08 18:32 ` Linus Torvalds
2018-01-08 19:15 ` Alan Stern
2018-01-08 19:51 ` Linus Torvalds
2018-01-09 17:42 ` Mauro Carvalho Chehab
2018-01-09 17:55 ` Linus Torvalds
2018-01-09 21:26 ` Jesper Dangaard Brouer
2018-01-10 3:02 ` Mike Galbraith
2018-07-17 11:54 ` Hanna Hawa
2018-07-17 17:09 ` Linus Torvalds
2018-07-17 18:07 ` Hanna Hawa
2018-07-17 22:21 ` Mauro Carvalho Chehab
2018-01-26 14:17 ` Mauro Carvalho Chehab
2018-01-26 19:37 ` Mauro Carvalho Chehab
2018-01-29 13:51 ` Mauro Carvalho Chehab
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='CA+55aFzcoNEpnRp0R3fLYQKdfzS5mLj3z_v=1A1NfyrybQ__4A@mail.gmail.com' \
--to=torvalds@linux-foundation.org \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=griebichler.josef@gmx.at \
--cc=hannes@redhat.com \
--cc=jbrouer@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mchehab@s-opensource.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=stern@rowland.harvard.edu \
/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).