rt: Introduce cpu_chill()
Retry loops on RT might loop forever when the modifying side was preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill() defaults to cpu_relax() for non RT. On RT it puts the looping task to sleep for a tick so the preempted task can make progress. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable-rt@vger.kernel.org
This commit is contained in:
parent
2d535af0db
commit
b1a75a3071
|
@ -52,4 +52,10 @@ static inline void ssleep(unsigned int seconds)
|
|||
msleep(seconds * 1000);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PREEMPT_RT_FULL
|
||||
# define cpu_chill() msleep(1)
|
||||
#else
|
||||
# define cpu_chill() cpu_relax()
|
||||
#endif
|
||||
|
||||
#endif /* defined(_LINUX_DELAY_H) */
|
||||
|
|
Loading…
Reference in New Issue