[PATCH] ia64: Fix OSDL BugMe report 2885: realtime process can't preempt low...
[PATCH] ia64: Fix OSDL BugMe report 2885: realtime process can't preempt low priority process in kernel
Rearranged code to make it work. There were two problems:
1. The preempt flag was being tested only if code was leaving for
user space (the logic should be: test for RESCHEDULE if we're
switching to a kernel thread, test everything if switching to a
user thread)
2. The check of the user space flags was being repeated even if the
work had been done.
There is one small change in semantics: when returning from a
preemption, the preemption flag will *not* be rechecked. Otherwise, I
found that it was easy to get into a livelock situation where no
forward progress was made.
Signed-off-by: David Mosberger <davidm@hpl.hp.com>
Showing
Please register or sign in to comment