Re: Patch Upstream: cputimer: Cure lock inversion

From: Greg KH
Date: Wed Oct 19 2011 - 12:00:43 EST


On Wed, Oct 19, 2011 at 11:55:01AM -0400, Josh Boyer wrote:
> On Wed, Oct 19, 2011 at 11:49 AM, Greg KH <greg@xxxxxxxxx> wrote:
> > On Wed, Oct 19, 2011 at 11:39:14AM -0400, Gregs git-bot wrote:
> >> commit: bcd5cff7216f9b2de0a148cc355eac199dc6f1cf
> >> From: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> >> Date: Mon, 17 Oct 2011 11:50:30 +0200
> >> Subject: cputimer: Cure lock inversion
> >>
> >> There's a lock inversion between the cputimer->lock and rq->lock;
> >> notably the two callchains involved are:
> >>
> >>  update_rlimit_cpu()
> >>    sighand->siglock
> >>    set_process_cpu_timer()
> >>      cpu_timer_sample_group()
> >>        thread_group_cputimer()
> >>          cputimer->lock
> >>          thread_group_cputime()
> >>            task_sched_runtime()
> >>              ->pi_lock
> >>              rq->lock
> >>
> >>  scheduler_tick()
> >>    rq->lock
> >>    task_tick_fair()
> >>      update_curr()
> >>        account_group_exec()
> >>          cputimer->lock
> >>
> >> Where the first one is enabling a CLOCK_PROCESS_CPUTIME_ID timer, and
> >> the second one is keeping up-to-date.
> >>
> >> This problem was introduced by e8abccb7193 ("posix-cpu-timers: Cure
> >> SMP accounting oddities").
> >
> > There is no such patch in Linus's tree that I can find.  So, what
> > problem is this really trying to cure here and what kernel did it show
> > up in?
>
> Uh...
>
> bcd5cff7216f9b2de0a148cc355eac199dc6f1cf is the upstream commit (post -rc10).

No, I understand that this is the commit I just referenced.

I'm talking about the "This problem was introduced..." line in the
commit. I want to find out what was the original problem that this
patch is fixing, to determine how far back in the -stable series I need
to backport this to.

The issue is that there is no e8abccb7193 ("posix-cpu-timers: Cure
SMP accounting oddities") commit that I can see in Linus's tree right
now.

> This thread covers the conversation (it's long):
>
> http://thread.gmane.org/gmane.linux.kernel/1199406/focus=1204676

Ugh, I'll go dig, but help would be appreciated...

greg k-h
--
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/