diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-06-08 15:56:13 -0400 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-06-08 16:06:56 -0400 |
commit | 39d902832855cbd2baf45ac8943879be3ad8ca5a (patch) | |
tree | 2aa3b4f70c1253bece9f85f7eba1203f188970ac /arch/s390 | |
parent | 8319864c96a4b2cd519c2183f61dedc39e3d13a4 (diff) |
Fix synchronous task system release support
...and also finally fix the requeue() race (hopefully).
Commit 4ffefb822b9d65d4efbedb60e3c9a0e76895cc5b broke the synchronous
task system release code. The problem is that release_at() clears the
tsk_rt(t)->completed flag. The patch thus only made the race window
smaller, but didn't close it entirely. Further, it broke the
synchronous task set release, which relies on schedule() being called
with completed == 1.
This patch fixes both problems by introducing a new flag dont_requeue,
which indicates unambiguously that a task should not be requeued by
other processors. This flag is cleared only when the job completion is
being processed, which always happens while holding the appropriate
scheduler locks, which closes the race window.
Diffstat (limited to 'arch/s390')
0 files changed, 0 insertions, 0 deletions