Re: PREEMPT_RT vs 'hrtimer: Prevent hrtimer_enqueue_reprogram race'

From: Ben Hutchings
Date: Thu Mar 21 2013 - 23:25:20 EST


On Thu, 2013-03-21 at 22:31 -0400, Steven Rostedt wrote:
> On Fri, 2013-03-22 at 01:11 +0000, Ben Hutchings wrote:
> > Commit b22affe0aef4 'hrtimer: Prevent hrtimer_enqueue_reprogram race'
> > conflicts with the RT patches
> > hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch and
> > peter_zijlstra-frob-hrtimer.patch, as they all change
> > hrtimer_enqueue_reprogram(). It seems that the changes in the RT
> > patches now belong in __hrtimer_start_range_ns().
> >
> > Since I haven't seen any RT releases in a while, here's what I came up
> > with for 3.2-rt:
>
> Note, I posted a fix on Tuesday:
>
> https://lkml.org/lkml/2013/3/19/369

Thanks. I did search GMANE with some obvious terms but I think its
index is lagging.

> I'm waiting for Thomas to give his OK on it before releasing the series.
> He told me he'll have a look at it tomorrow. I've already ran the series
> through all my tests, and will post it immediately after I get the OK.
> Or if there's a issue I will have to fix it and rerun my tests.
>
>
> >
> > ---
> > From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > Date: Fri, 3 Jul 2009 08:44:31 -0500
> > Subject: hrtimer: fixup hrtimer callback changes for preempt-rt
[...]
> > @@ -1011,6 +1023,26 @@ int __hrtimer_start_range_ns(struct hrti
> > */
> > if (leftmost && new_base->cpu_base == &__get_cpu_var(hrtimer_bases)
> > && hrtimer_enqueue_reprogram(timer, new_base)) {
> > +#ifdef CONFIG_PREEMPT_RT_BASE
> > + again:
>
> What kernel are you working with? I don't see anywhere the "again:"
> within a PREEMPT_RT_BASE block.

I'm rebasing the rt patch series generated with
'git format-patch v3.2.39..v3.2.39-rt59-rebase' on top of v3.2.41 (plus
Debian changes, which introduce some trivial textual conflicts).

So these patches were previously:

commit c495d005449523772e27a22fb74814dc3cebff8e
Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Fri Jul 3 08:44:31 2009 -0500

hrtimer: fixup hrtimer callback changes for preempt-rt

commit 80cc960e628509c72f63a7327a4dc22707a02b81
Author: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Date: Fri Aug 12 17:39:54 2011 +0200

hrtimer: Don't call the timer handler from hrtimer_start

[...]
> This is very similar to what I came up with.
[...]
> Yep, looks like we are on the right track :-)
[...]

Good to hear.

Ben.

--
Ben Hutchings
Make three consecutive correct guesses and you will be considered an expert.

Attachment: signature.asc
Description: This is a digitally signed message part