netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mike Galbraith <umgwanakikbuti@gmail.com>
To: Francois Romieu <romieu@fr.zoreil.com>
Cc: Peter Hurley <peter@hurleysoftware.com>,
	Eric Dumazet <edumazet@google.com>,
	David Miller <davem@davemloft.net>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Greg KH <gregkh@linuxfoundation.org>,
	dmaengine@vger.kernel.org,
	John Ogness <john.ogness@linutronix.de>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: Softirq priority inversion from "softirq: reduce latencies"
Date: Mon, 29 Feb 2016 05:58:09 +0100	[thread overview]
Message-ID: <1456721889.3488.67.camel@gmail.com> (raw)
In-Reply-To: <20160228170109.GA16322@electric-eye.fr.zoreil.com>

On Sun, 2016-02-28 at 18:01 +0100, Francois Romieu wrote:
> Mike Galbraith <umgwanakikbuti@gmail.com> :
> [...]
> > Hrm, relatively new + tasklet woes rings a bell.  Ah, that..
> > 
> > 
> > What's worse is that at the point where this code was written it was
> > already well known that tasklets are a steaming pile of crap and
> > should die.
> > 
> > 
> > Source thereof https://lwn.net/Articles/588457/
> 
> tasklets are ingrained in the dmaengine API (see Documentation/dmaengine/client.txt
> and drivers/dma/virt-dma.h::vchan_cookie_complete).
> 
> Moving everything to irq context or handling his own sub-{jiffy/ms} timer
> while losing async dma doesn't exactly smell like roses either. :o(

https://lwn.net/Articles/239633/

If I'm listening properly, the root cause is that there is a timing
constraint involved, which is being exposed because one softirq raises
another (ew).  Processing timeout happens, freshly raised tasklet
wanders off to SCHED_NORMAL kthread context where its constraint dies.

Given the dma stuff apparently works fine in -rt (or did, see below),
timing constraints can't be super tight, so perhaps we could grow
realtime workqueue support for the truly deserving.  The tricky bit
would be being keeping everybody and his brother from abusing it.

WRT -rt: if dma tasklets really do have hard (ish) constraints, -rt
recently "broke" in the same way.. of all softirqs which are deferred
to kthread context, due to a recent change, only timer/hrtimer are
executed at realtime priority by default.

	-Mike

  reply	other threads:[~2016-02-29  4:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-27 18:19 Softirq priority inversion from "softirq: reduce latencies" Peter Hurley
2016-02-27 20:13 ` Eric Dumazet
2016-02-27 20:29   ` Peter Hurley
2016-02-27 23:04     ` David Miller
2016-02-27 23:33       ` Peter Hurley
2016-02-28  1:59         ` Eric Dumazet
2016-02-28  2:10           ` Peter Hurley
2016-02-28  2:17             ` Eric Dumazet
2016-02-28  4:46             ` David Miller
2016-02-28  5:55 ` Mike Galbraith
2016-02-28 17:01   ` Francois Romieu
2016-02-29  4:58     ` Mike Galbraith [this message]
2016-02-29 15:03       ` Peter Hurley
2016-02-29 15:19         ` Eric Dumazet
2016-02-29 15:54           ` Peter Hurley
2016-02-29 16:21             ` Eric Dumazet
2016-02-29 18:05               ` Peter Hurley
2016-02-29 18:24                 ` Eric Dumazet
2016-02-29 18:53                   ` Peter Hurley
2016-02-29 19:14                     ` Thomas Gleixner
2016-02-29 20:24                       ` David Miller
2016-02-29 23:04                       ` Peter Hurley
2016-02-29 15:27         ` Eric Dumazet
2016-02-29 19:13           ` Peter Hurley
2016-02-29 19:43             ` Eric Dumazet
2016-02-29 15:40         ` Mike Galbraith
2016-02-29 15:58           ` Peter Hurley
2016-02-29 16:24             ` Eric Dumazet
2016-02-29 17:16         ` David Miller
2016-03-07 15:31       ` Sebastian Andrzej Siewior
2016-03-07 17:06         ` Mike Galbraith
2016-03-07 15:48 ` Sebastian Andrzej Siewior

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=1456721889.3488.67.camel@gmail.com \
    --to=umgwanakikbuti@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=bigeasy@linutronix.de \
    --cc=davem@davemloft.net \
    --cc=dmaengine@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=john.ogness@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=peter@hurleysoftware.com \
    --cc=romieu@fr.zoreil.com \
    /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).