diff options
author | Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com> | 2007-07-15 23:39:47 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-16 09:05:41 -0700 |
commit | 85653af7d488702165eba72c6c1dd0250fae4e70 (patch) | |
tree | f2e1340e3c19eda7c28b1c73c1f9f39c13e381a1 /init | |
parent | 647bd61a5f3a51a38c670f91af9d861ad66149a3 (diff) | |
download | kernel-common-85653af7d488702165eba72c6c1dd0250fae4e70.tar.gz kernel-common-85653af7d488702165eba72c6c1dd0250fae4e70.tar.bz2 kernel-common-85653af7d488702165eba72c6c1dd0250fae4e70.zip |
Fix stop_machine_run problem with naughty real time process
stop_machine_run() does its work on "kstopmachine" thread having max
priority. However that thread get such priority after woken up.
Therefore, in the following case ...
- "kstopmachine" try to run on CPU1
- There is a real time process which doesn't relinquish CPU time
voluntary on CPU1
... "kstopmachine" can't start to run and the CPU on which
stop_machine_run() is runing hangs up. To fix this problem, call
sched_setscheduler() before waking up that thread.
Signed-off-by: Satoru Takeuchi <takeuchi_satoru@jp.fujitsu.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Ashok Raj <ashok.raj@intel.com>
Cc: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions