Messages in this thread Patch in this message | | | Date | Wed, 16 Sep 2009 15:26:54 +0800 | From | Xiao Guangrong <> | Subject | [PATCH] stop_machine: disable preempt in stop machine path |
| |
We can disable preempt in stop_cpu(), It can reduce the cpu's waiting time and make stop_machine path faster.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> --- kernel/stop_machine.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index 912823e..feaa947 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -68,7 +68,7 @@ static void stop_cpu(struct work_struct *unused) { enum stopmachine_state curstate = STOPMACHINE_NONE; struct stop_machine_data *smdata = &idle; - int cpu = smp_processor_id(); + int cpu = get_cpu(); int err; if (!active_cpus) { @@ -103,6 +103,7 @@ static void stop_cpu(struct work_struct *unused) } } while (curstate != STOPMACHINE_EXIT); + put_cpu(); local_irq_enable(); } -- 1.6.1.2
| |