futex_wait_queue_me: Spin-sleep when timeout and idle_halt is specified
schedule_timeout() with idle_halt should use spin sleep because sleep with timeout is not implemented. Change-Id: Ia0bebcc10ddfb872bffeece7f13fb35a4791db18
This commit is contained in:
committed by
Dominique Martinet
parent
f18d1f5383
commit
0b2169964a
@ -672,8 +672,11 @@ static uint64_t futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q
|
||||
*/
|
||||
xchg4(&(cpu_local_var(current)->status), PS_INTERRUPTIBLE);
|
||||
|
||||
/* Indicate spin sleep */
|
||||
if (!idle_halt) {
|
||||
/* Indicate spin sleep. Note that schedule_timeout() with
|
||||
* idle_halt should use spin sleep because sleep with timeout
|
||||
* is not implemented.
|
||||
*/
|
||||
if (!idle_halt || timeout) {
|
||||
irqstate = ihk_mc_spinlock_lock(&thread->spin_sleep_lock);
|
||||
thread->spin_sleep = 1;
|
||||
ihk_mc_spinlock_unlock(&thread->spin_sleep_lock, irqstate);
|
||||
|
||||
Reference in New Issue
Block a user