Re: timerfd functions hang on both x86 and ARM with RT patch and RT scheduling policies

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

 



On Wed, 2012-01-25 at 11:11 +0100, Thomas Gleixner wrote:
> On Wed, 25 Jan 2012, Mike Galbraith wrote:
> > On Tue, 2012-01-24 at 10:04 -0600, Sankara Muthukrishnan wrote:
> >  		spin_unlock_irq(&ctx->wqh.lock);
> > +#ifndef CONFIG_PREEMPT_RT_BASE
> 
> Bah.
> 
> >  		cpu_relax();
> > +#else
> > +		/*
> > +		 * Current may be an RT task with priority high enough
> > +		 * to prevent the thread currently _wanting_ to execute
> > +		 * the timer callback function from receiving the CPU.
> > +		 */
> > +		usleep_range(1, 10);
> 
> Even more bah.
> 
> > +#endif
> >  	}
> 
> Index: linux-3.2/fs/timerfd.c
> ===================================================================
> --- linux-3.2.orig/fs/timerfd.c
> +++ linux-3.2/fs/timerfd.c
> @@ -313,7 +313,7 @@ SYSCALL_DEFINE4(timerfd_settime, int, uf
>  		if (hrtimer_try_to_cancel(&ctx->tmr) >= 0)
>  			break;
>  		spin_unlock_irq(&ctx->wqh.lock);
> -		cpu_relax();
> +		hrtimer_wait_for_timer(&ctx->tmr);
>  	}
>  
>  	/*

Oh goodie, bugs-- without uglies++ :)

	-Mike


--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux