public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Arjan van de Ven <arjan@infradead.org>
Subject: Re: [PATCH] hrtimers: Special-case zero length sleeps
Date: Wed, 15 Feb 2012 21:22:01 +0100 (CET)	[thread overview]
Message-ID: <alpine.LFD.2.02.1202152114510.2794@ionos> (raw)
In-Reply-To: <20120215145857.GA21755@srcf.ucam.org>

On Wed, 15 Feb 2012, Matthew Garrett wrote:

> Regardless of whether userspace should be concerning itself about this 
> kind of thing or not, there's plenty of userspace that calls sleep(0) on 
> the assumption that it'll get rescheduled. This makes using whole-system 

Right. And it got always rescheduled because the old pre hrtimer
implementation put it to sleep unconditionally. The hrtimer code
before we introduced the slack stuff returned right away when the
relative delta was 0. Slack changed that back to the pre hrtimer
behaviour. Also if you disable high res timers (compile or runtime)
you go to sleep unconditionally until the next jiffies boundary.

> timer slack difficult, because there are some applications that do this 
> even if they're event-driven and sleeping for significant lengths of 
> time here breaks them. I'd certainly understand the argument for fixing 

What is significant? If the app relies on sleep(0) returning
instantly, then it's going to malfunction on a highres=n kernel with
HZ=100 as well. Also when there are actually other runnable tasks and
it gets scheduled away, then there is no guarantee that it comes back
to the cpu within a defined boundary. 

> userspace instead, but that's a massive task for something that's easily 
> special-cased in the kernel.

So what's the correct special case solution? Return right away, call
schedule() with state RUNNING or some other magic crap?

Again, if a SCHED_OTHER task cannot cope with the fact that it gets
scheduled away for unbound amount of time, then changing the behaviour
of sleep(0) to some magic yield() variant does not help at all. It's
still broken and no special case in the kernel can fix that.

Thanks,

	tglx

      reply	other threads:[~2012-02-15 20:22 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-29 14:59 [PATCH] hrtimers: Special-case zero length sleeps Matthew Garrett
2012-02-15 14:40 ` Thomas Gleixner
2012-02-15 14:52   ` Matthew Garrett
2012-02-15 20:14     ` Thomas Gleixner
2012-02-15 20:22       ` Matthew Garrett
2012-02-15 20:30         ` Thomas Gleixner
2012-02-15 20:38           ` Matthew Garrett
2012-02-15 20:40             ` Peter Zijlstra
2012-02-15 20:43               ` Matthew Garrett
2012-02-15 20:46             ` Thomas Gleixner
2012-02-15 20:47               ` Matthew Garrett
2012-02-16 14:27                 ` Matthew Garrett
2012-02-16 14:31                   ` Alan Cox
2012-02-16 14:51                     ` Peter Zijlstra
2012-02-16 15:01                       ` Matthew Garrett
2012-02-16 19:09                         ` Thomas Gleixner
2012-02-15 14:54   ` Peter Zijlstra
2012-02-15 14:58     ` Matthew Garrett
2012-02-15 20:22       ` Thomas Gleixner [this message]

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=alpine.LFD.2.02.1202152114510.2794@ionos \
    --to=tglx@linutronix.de \
    --cc=arjan@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=peterz@infradead.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