From: Ingo Molnar <mingo@elte.hu>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Mike Galbraith <efault@gmx.de>,
Linus Torvalds <torvalds@linux-foundation.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Steven Rostedt <rostedt@goodmis.org>,
Thomas Gleixner <tglx@linutronix.de>,
Tony Lindgren <tony@atomide.com>
Subject: Re: [RFC patch 1/2] sched: dynamically adapt granularity with nr_running
Date: Mon, 13 Sep 2010 13:22:04 +0200 [thread overview]
Message-ID: <20100913112204.GA3011@elte.hu> (raw)
In-Reply-To: <1284367295.2275.31.camel@laptop>
* Peter Zijlstra <peterz@infradead.org> wrote:
> On Mon, 2010-09-13 at 06:35 +0200, Mike Galbraith wrote:
> > On Sun, 2010-09-12 at 11:06 +0200, Peter Zijlstra wrote:
> > > On Sat, 2010-09-11 at 13:48 -0700, Linus Torvalds wrote:
> >
> > > > And I don't like how you dismissed the measured latency improvement.
> > > > And yes, I do think latency matters. A _lot_.
> > >
> > > OK, we'll make it better and sacrifice some throughput, can do, no
> > > problem.
> >
> > I'm not seeing high wakeup latencies, even under hefty load.
> > Mathieu's testcase is bad, but apparently solely due to START_DEBIT
> > placement. That's kind of a sticky wicket. I've shot it in the
> > heart before, but regretted doing so when I looked at kbuild vs
> > static load fairness.
>
> Yeah, without it you can starve the already running task on massive
> forks.
>
> Still, I'm not quite sure why people really care about fork() on time
> sensitive paths, its a very expensive thing to do, pre-fork() and wake
> when you need it, is what I would say.
Right. So what happens in practice is that some desktop apps tend to be
fork happy and it doesnt show up on low load so why not? The kernel
forks plenty fast:
aldebaran:~/l> ./lat_proc fork
Process fork+exit: 165.9254 microseconds
So even a full-blown fork() is a drop in the ocean of desktop bloat.
Firefox takes 100-300 msecs CPU time to process a single tab click ...
it's insane.
fork() is also a very convenient and robust prgramming facility: COW
gives us immutable data inheritance - match that thread programmers ...
Plus it's not just fork()s but also pthread_create() obviously - which
is even faster.
So yes, it happens all the time, and if we create some bad latency of
10-20 msecs under load (or more), it gets noticed - especially if it's
some cumulative fork() chain of processing.
And no, we cannot rely on pre-forking - and we dont even _want_ to,
fork() and pthread_create() is a perfectly valid facility. In the
scheduler we have to handle fork()/pthread_create() smoothly.
Thanks,
Ingo
next prev parent reply other threads:[~2010-09-13 11:22 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-11 17:37 [RFC patch 0/2] sched: dynamically adapt granularity with nr_running Mathieu Desnoyers
2010-09-11 17:37 ` [RFC patch 1/2] " Mathieu Desnoyers
2010-09-11 18:57 ` Peter Zijlstra
2010-09-11 19:21 ` Linus Torvalds
2010-09-11 20:36 ` Peter Zijlstra
2010-09-11 20:45 ` Peter Zijlstra
2010-09-11 20:52 ` Linus Torvalds
2010-09-12 9:07 ` Peter Zijlstra
2010-09-11 20:48 ` Linus Torvalds
2010-09-12 9:06 ` Peter Zijlstra
2010-09-12 9:14 ` Peter Zijlstra
2010-09-12 20:39 ` Mathieu Desnoyers
2010-09-13 12:54 ` Peter Zijlstra
2010-09-12 20:34 ` Mathieu Desnoyers
2010-09-13 12:53 ` Peter Zijlstra
2010-09-13 4:35 ` Mike Galbraith
2010-09-13 8:41 ` Peter Zijlstra
2010-09-13 11:22 ` Ingo Molnar [this message]
2010-09-13 13:52 ` Steven Rostedt
2010-09-13 13:54 ` Peter Zijlstra
2010-09-13 14:02 ` Peter Zijlstra
2010-09-13 14:21 ` Ingo Molnar
2010-09-11 20:52 ` Mathieu Desnoyers
2010-09-11 19:57 ` Mathieu Desnoyers
2010-09-12 10:41 ` Peter Zijlstra
2010-09-12 20:37 ` Mathieu Desnoyers
2010-09-13 12:53 ` Peter Zijlstra
2010-09-13 13:15 ` Peter Zijlstra
2010-09-13 13:56 ` Mathieu Desnoyers
2010-09-13 14:16 ` Peter Zijlstra
2010-09-13 14:43 ` Steven Rostedt
2010-09-13 15:25 ` Mathieu Desnoyers
2010-09-13 15:39 ` Steven Rostedt
2010-09-13 16:16 ` [RFC PATCH] check_preempt_tick should not compare vruntime with wall time Mathieu Desnoyers
2010-09-13 16:36 ` Linus Torvalds
2010-09-13 17:45 ` Mathieu Desnoyers
2010-09-13 17:51 ` Linus Torvalds
2010-09-13 18:01 ` Mathieu Desnoyers
2010-09-13 18:10 ` Steven Rostedt
2010-09-13 18:03 ` Ingo Molnar
2010-09-13 18:19 ` Mathieu Desnoyers
2010-09-13 18:23 ` [PATCH] sched: Improve latencies under load by decreasing minimum scheduling granularity Ingo Molnar
2010-09-13 18:28 ` Joe Perches
2010-09-13 19:44 ` Linus Torvalds
2010-09-13 20:00 ` Ingo Molnar
2010-09-13 18:19 ` [RFC PATCH] check_preempt_tick should not compare vruntime with wall time Ingo Molnar
2010-09-13 17:36 ` Ingo Molnar
2010-09-13 17:56 ` Mathieu Desnoyers
2010-09-14 2:10 ` Mike Galbraith
2010-09-13 14:44 ` [RFC patch 1/2] sched: dynamically adapt granularity with nr_running Mike Galbraith
[not found] ` <1284386179.10436.6.camel@marge.simson.net>
2010-09-13 15:53 ` Peter Zijlstra
2010-09-13 18:04 ` [RFC][PATCH] sched: Improve tick preemption Peter Zijlstra
2010-09-14 2:27 ` [RFC patch 1/2] sched: dynamically adapt granularity with nr_running Mike Galbraith
2010-09-12 6:14 ` Ingo Molnar
2010-09-12 7:21 ` Mike Galbraith
2010-09-12 18:16 ` Mathieu Desnoyers
2010-09-13 4:13 ` Mike Galbraith
2010-09-13 6:41 ` Ingo Molnar
2010-09-13 7:08 ` Mike Galbraith
2010-09-13 7:35 ` Mike Galbraith
2010-09-13 8:35 ` Peter Zijlstra
2010-09-13 9:16 ` Mike Galbraith
2010-09-13 9:37 ` Peter Zijlstra
2010-09-13 9:50 ` Mike Galbraith
2010-09-13 9:55 ` Peter Zijlstra
2010-09-13 10:06 ` Mike Galbraith
2010-09-13 10:45 ` Peter Zijlstra
2010-09-13 11:43 ` Peter Zijlstra
2010-09-13 11:49 ` Peter Zijlstra
2010-09-13 12:32 ` Mike Galbraith
2010-09-13 20:19 ` Mathieu Desnoyers
2010-09-13 20:56 ` Mathieu Desnoyers
2010-09-12 18:13 ` Mathieu Desnoyers
2010-09-12 23:44 ` Mathieu Desnoyers
2010-09-11 17:37 ` [RFC patch 2/2] sched: sleepers coarse granularity on wakeup Mathieu Desnoyers
2010-09-12 12:44 ` [RFC patch 0/2] sched: dynamically adapt granularity with nr_running Peter Zijlstra
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=20100913112204.GA3011@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tony@atomide.com \
--cc=torvalds@linux-foundation.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