public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@us.ibm.com>
To: Lee Revell <rlrevell@joe-job.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: Sat, 31 Dec 2005 12:14:26 -0800	[thread overview]
Message-ID: <20051231201426.GD5124@us.ibm.com> (raw)
In-Reply-To: <1136004855.3050.8.camel@mindpipe>

On Fri, Dec 30, 2005 at 11:54:14PM -0500, Lee Revell wrote:
> On Fri, 2005-12-30 at 20:29 -0800, Paul E. McKenney wrote:
> > This should help in UP configurations, or in SMP configurations where
> > all CPUs are doing call_rcu_bh() very frequently.  I would not expect
> > it to help in cases where one of several CPUs is frequently executing
> > call_rcu_bh(), but where the other CPUs are either CPU-bound in user
> > space or are in a tickful idle state. 
> 
> This and net/decnet/dn_route.c are the only two uses of call_rcu_bh in
> the kernel.  And this one does not seem to be invoked frequently, it
> took ~48 hours to show up in the latency tracer.  Of course a server
> workload might call it all the time.

Well, most old-style server workloads wouldn't notice a 10ms hit to
latency.  I expect server workloads to become much more sensitive to
latency over time, however.  There are several reasons for this:
(1) as more and more workloads are spread over many machines, the
latency of each individual machine must improve just to maintain
the same overall latency (2) as computers continue to get less expensive
relative to people (and this trend is most pronounced in -developing-
countries, -not- developed countries!), it will be less and less
acceptable to have people waiting on computers (3) the trend of which
VOIP is part will continue, so that traditional server workloads will
have increasingly large latency-sensitive components.

But back to the problem at hand.

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();
		if (unlikely(rdp->count - rdp->last_rs_count > 1000)) {
			int cpu;

			rdp->last_rs_count = rdp->count;
			spin_lock_bh(&rcu_bh_state.lock);
			for_each_cpu_mask(cpu, rdp->rcu_bh_state.cpumask)
				smp_send_reschedule(cpu);
			spin_unlock_bh(&rcu_bh_state.lock);
		}
	}

I am sure that I am missing some interaction or another with tickless
idle and CPU hotplug covered.

There also needs to be some adjustment in rcu_do_batch(), which will
have to somehow get back to a quiescent state periodically.  Dipankar,
Vatsa, thoughts?

							Thanx, Paul

  reply	other threads:[~2005-12-31 20:15 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 [this message]
2006-01-01  5:46                                     ` Lee Revell
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=20051231201426.GD5124@us.ibm.com \
    --to=paulmck@us.ibm.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=rlrevell@joe-job.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