Thread (14 messages) 14 messages, 6 authors, 2012-11-21

Re: [REPOST] RFC: sched: Prevent wakeup to enter critical section needlessly

From: Oleg Nesterov <oleg@redhat.com>
Date: 2012-10-09 15:16:07
Also in: lkml

Possibly related (same subject, not in this thread)

On 10/09, Peter Zijlstra wrote:
One thing you might need to consider is the memory ordering, will the
list_empty -- either careful or not -- observe the right list pointer,
or could it -- when racing with wait_event()/prepare_to_wait() --
observe a stale value. Or.. is that all already covered in on the use
site.
I agree.

Without spin_lock(q->lock) (or some other barriers) wait_event-like
code can miss an event.

wait_event:

	prepare_to_wait(wq)	// takes wq->lock

	if (!CONDITION)
		schedule();

Now,

	CONDITION = 1;
	wake_up(wq);

at least need the full mb() before lits_empty().

Oleg.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help