From: Lee Revell <rlrevell@joe-job.com>
To: paulmck@us.ibm.com
Cc: Linus Torvalds <torvalds@osdl.org>, Ingo Molnar <mingo@elte.hu>,
Dave Jones <davej@redhat.com>, Hugh Dickins <hugh@veritas.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Eric Dumazet <dada1@cosmosbay.com>,
Dipankar Sarma <dipankar@in.ibm.com>,
vatsa@in.ibm.com
Subject: Re: [patch] latency tracer, 2.6.15-rc7
Date: Sun, 01 Jan 2006 00:46:11 -0500 [thread overview]
Message-ID: <1136094372.7005.19.camel@mindpipe> (raw)
In-Reply-To: <20051231201426.GD5124@us.ibm.com>
On Sat, 2005-12-31 at 12:14 -0800, Paul E. McKenney wrote:
> So it seems to me that Linus's patch is part of the solution, but
> needs to also have a global component, perhaps as follows:
>
> if (unlikely(rdp->count > 100)) {
> set_need_resched();
In fact neither of these patches helps, because these RCU callbacks run
from a tasklet in softirq context, and softirqs are not preemptible
(unless they are running in threads, see below):
_------=> CPU#
/ _-----=> irqs-off
| / _----=> need-resched
|| / _---=> hardirq/softirq <---------***
||| / _--=> preempt-depth
|||| /
||||| delay
cmd pid ||||| time | caller
\ / ||||| \ | /
<idle>-0 0d.s2 1us : __trace_start_sched_wakeup (try_to_wake_up)
<idle>-0 0d.s2 1us : __trace_start_sched_wakeup <<...>-21330> (73 0)
<idle>-0 0d.s. 2us : wake_up_process (process_timeout)
<idle>-0 0d.s. 3us : tasklet_action (__do_softirq)
<idle>-0 0d.s. 4us : rcu_process_callbacks (tasklet_action)
<idle>-0 0d.s. 5us : __rcu_process_callbacks (rcu_process_callbacks)
<idle>-0 0d.s. 5us : rcu_check_quiescent_state (__rcu_process_callbacks)
<idle>-0 0d.s. 6us : __rcu_process_callbacks (rcu_process_callbacks)
<idle>-0 0d.s. 7us : rcu_check_quiescent_state (__rcu_process_callbacks)
<idle>-0 0d.s. 7us : rcu_do_batch (__rcu_process_callbacks)
<idle>-0 0d.s. 8us : dst_rcu_free (rcu_do_batch)
Fortunately softirq preemption is one of the simplest parts of the -rt
patch - since the kernel already runs all softirqs in threads under
heavy load, it's simply a matter of adding a .config option to always do
that.
Linus, would you accept CONFIG_PREEMPT_SOFTIRQS to always run softirqs
in threads (default N of course, it certainly has a slight throughput
cost) for mainline if Ingo were to submit it?
Lee
next prev parent reply other threads:[~2006-01-01 5:46 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-27 23:31 2.6.15-rc5: latency regression vs 2.6.14 in exit_mmap->free_pgtables Lee Revell
2005-12-28 2:46 ` Lee Revell
2005-12-28 22:59 ` Hugh Dickins
2005-12-29 0:00 ` Lee Revell
2005-12-29 8:22 ` [patch] latency tracer, 2.6.15-rc7 Ingo Molnar
2005-12-29 10:02 ` Dave Jones
2005-12-29 10:17 ` Ingo Molnar
2005-12-29 20:11 ` Lee Revell
2005-12-29 20:26 ` Lee Revell
2005-12-29 20:28 ` Ingo Molnar
2005-12-29 22:18 ` Lee Revell
2005-12-30 0:08 ` Grant Coady
2005-12-30 0:18 ` Lee Revell
2005-12-30 0:42 ` Grant Coady
2005-12-30 8:09 ` Ingo Molnar
2005-12-30 16:51 ` Linus Torvalds
2006-01-02 20:14 ` Ingo Molnar
2006-01-19 1:49 ` Lee Revell
2006-01-19 6:17 ` Lee Revell
2005-12-31 0:20 ` Grant Coady
2005-12-30 2:16 ` Lee Revell
2005-12-30 8:00 ` Ingo Molnar
2005-12-30 18:51 ` Lee Revell
2005-12-31 0:51 ` Lee Revell
2005-12-31 0:59 ` Mark Knecht
2005-12-31 1:16 ` Lee Revell
2005-12-31 1:30 ` Lee Revell
2005-12-31 1:02 ` Linus Torvalds
2005-12-31 1:15 ` Lee Revell
2005-12-31 1:39 ` Linus Torvalds
2005-12-31 3:54 ` Lee Revell
2005-12-31 4:00 ` Lee Revell
2005-12-31 4:29 ` Paul E. McKenney
2005-12-31 4:54 ` Lee Revell
2005-12-31 20:14 ` Paul E. McKenney
2006-01-01 5:46 ` Lee Revell [this message]
2006-01-01 18:56 ` Linus Torvalds
2006-01-01 19:02 ` Lee Revell
2006-01-01 19:06 ` Lee Revell
2006-01-03 11:12 ` Dipankar Sarma
2006-01-03 13:28 ` David Lang
2006-01-03 14:11 ` Dipankar Sarma
2006-01-03 14:09 ` Dipankar Sarma
2006-01-03 15:55 ` Paul E. McKenney
2005-12-31 4:48 ` Linus Torvalds
2006-01-01 8:32 ` Lee Revell
2006-01-06 20:28 ` Lee Revell
2005-12-29 0:54 ` 2.6.15-rc5: latency regression vs 2.6.14 in exit_mmap->free_pgtables Lee Revell
2006-01-19 1:42 ` Lee Revell
2006-01-19 7:29 ` Hugh Dickins
2006-01-19 7:32 ` Lee Revell
2006-01-19 7:35 ` Lee Revell
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=1136094372.7005.19.camel@mindpipe \
--to=rlrevell@joe-job.com \
--cc=dada1@cosmosbay.com \
--cc=davej@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=hugh@veritas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=paulmck@us.ibm.com \
--cc=torvalds@osdl.org \
--cc=vatsa@in.ibm.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