Nick Piggin wrote:
Ingo Molnar wrote:

* Nick Piggin <[EMAIL PROTECTED]> wrote:


When a task is put to sleep, it is dequeued from the runqueue
while it is still running. The problem is that the runqueue
lock can be dropped and retaken in schedule() before the task
actually schedules off, and wait_task_inactive did not account
for this.



ugh. This has been the Nth time we got bitten by the fundamental unrobustness of non-atomic scheduling on some architectures ... (And i'll say the N+1th time that this is not good.)


This is actually due to wake_sleeping_dependent and dependent_sleeper dropping the runqueue lock.


Hmph, *and* unlocked context switch architectures as you say. In fact, I'm surprised those haven't been bitten by this problem earlier.

So that makes us each half right! :)




------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to