Re: [patch 1/4] prepare_to_wait/finish_wait sleep/wakeup API

From: David S. Miller (davem@redhat.com)
Date: Wed Sep 25 2002 - 23:24:59 EST


   From: Andrew Morton <akpm@digeo.com>
   Date: Wed, 25 Sep 2002 21:07:47 -0700
   
   The main objective of this is to reduce the CPU cost of the wait/wakeup
   operation. When a task is woken up, its waitqueue is removed from the
   waitqueue_head by the waker (ie: immediately), rather than by the woken
   process.

I don't want to say that your changes cannot be made to work,
but it's been one of my understandings all these years that
the fact that the task itself controls it's presence on the
wait queue is what allows many races to be handled properly and
cleanly.

For example, the ordering of the test and add/remove from
the wait queue is pretty important.

It probably doesn't matter when there is a higher level of locking
done around the sleep/wakeup (TCP sockets are one good example)
and if that is what this is aimed at, great.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Sep 30 2002 - 22:00:25 EST