Re: [GIT PULL rcu/urgent] fixes for slowdowns and softlockup

From: Paul E. McKenney
Date: Wed Jun 15 2011 - 10:58:36 EST


On Tue, Jun 14, 2011 at 09:41:07PM -0700, Paul E. McKenney wrote:
> Hello, Ingo,
>
> This pull request fixes a softlockup and a severe performance regression.

Resending, this time copying LKML and a few additional people.
For those for whom this is a duplicate, please accept my apologies.

Thanx, Paul

> Shaohua Li debugged a performance regression and found that RCU's shiny
> new real-time kthreads were causing excessive lock contention in the
> scheduler on large systems, resulting in severe performance regressions.
> Shaohua also provided a patch that converts the RCU core back to softirq,
> but still uses a real-time kthread to invoke the callbacks. This allows
> RCU priority boosting to work, while greatly reducing the stress on
> the scheduler. Shaohua's patch was tested by Alex Shi and Sasha Levin.
>
> What was intended to be a code-cleanup patch fixes a softlockup
> problem reported by Daniel J Blueman. The problem was that the RCU
> priority boosting kthread would not necessarily be awakened in a timely
> fashion. Because kthreads are created in TASK_UNINTERRUPTIBLE state,
> if a newly created kthread is left alone for more than two minutes,
> softlockup warnings will be issued. This problem was fixed by the
> code simplification -- because the binding of this kthread is only a
> performance optimization, we can awaken it before any of its CPUs are
> fully online, which eliminates the delay that could otherwise lead to
> the softlockup.
>
> These changes are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-2.6-rcu.git rcu/urgent
>
> Thanx, Paul
>
> ------------------>
>
> Paul E. McKenney (1):
> rcu: Simplify curing of load woes
>
> Shaohua Li (1):
> rcu: Use softirq to address performance regression
>
> Documentation/filesystems/proc.txt | 1 +
> include/linux/interrupt.h | 1 +
> include/trace/events/irq.h | 3 +-
> kernel/rcutree.c | 88 ++++++++++++++++-------------------
> kernel/rcutree.h | 1 +
> kernel/rcutree_plugin.h | 20 ++++----
> kernel/softirq.c | 2 +-
> tools/perf/util/trace-event-parse.c | 1 +
> 8 files changed, 57 insertions(+), 60 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/