Re: [ANNOUNCE] 2.6.15-rc5-hrt2 - hrtimers based high resolution patches

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Steven Rostedt <[email protected]> wrote:

> Thomas and Ingo,
> 
> I found a bug in 2.6.15-rc5-rt1 that was due to a race in the hrtimers 
> code.  This bug is most likely in the vanilla hrtimers code as well.
> 
> I added a HRTIMER_RUNNING state because there's a moment in the 
> run_hrtimer_queues that turns interrupts on and releases the base 
> lock. In this time, a remove_hrtimer can be called while the state is 
> still HRTIMER_PENDING_CALLBACK, but it has been removed off the list.  
> The remove_hrtimer will then try to remove this again.
> 
> Since I couldn't think of which state to use, I created the 
> HRTIMER_RUNNING, and used that instead.
> 
> I have a program (a simple jitter test) that, with out the patch, 
> reliably crashes the 2.6.15-rc5-rt1 on a slow UP machine.  With the 
> patch, it runs solidly, so I know this is the reason for the crash.

hm, in that case it should be base->running that protects against this 
case. Did you run an UP PREEMPT_RT kernel? In that case could you check 
whether the fix below resolves the crash too?

	Ingo

Index: linux/kernel/hrtimer.c
===================================================================
--- linux.orig/kernel/hrtimer.c
+++ linux/kernel/hrtimer.c
@@ -118,7 +118,7 @@ static DEFINE_PER_CPU(struct hrtimer_bas
  * Functions and macros which are different for UP/SMP systems are kept in a
  * single place
  */
-#ifdef CONFIG_SMP
+#if defined(CONFIG_SMP) || defined(PREEMPT_RT)
 
 #define set_curr_timer(b, t)		do { (b)->curr_timer = (t); } while (0)
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux