2008-01-10 03:44:17

by Hiroshi Shimamoto

[permalink] [raw]
Subject: [PATCH] x86_64: move out tick_nohz_stop_sched_tick() call from the loop

Hello,

tick_nohz_stop_sched_tick() and tick_nohz_restart_sched_tick()
pair in cpu_idle() is different from 32-bit version.

From: Hiroshi Shimamoto <[email protected]>
Subject: [PATCH] x86_64: move out tick_nohz_stop_sched_tick() call from the loop

Move out tick_nohz_stop_sched_tick() call from the loop in cpu_idle
same as 32-bit version.

Signed-off-by: Hiroshi Shimamoto <[email protected]>
---
arch/x86/kernel/process_64.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 93ce4f3..6870208 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -170,14 +170,13 @@ void cpu_idle(void)
current_thread_info()->status |= TS_POLLING;
/* endless idle loop with no priority at all */
while (1) {
+ tick_nohz_stop_sched_tick();
while (!need_resched()) {
void (*idle)(void);

if (__get_cpu_var(cpu_idle_state))
__get_cpu_var(cpu_idle_state) = 0;

- tick_nohz_stop_sched_tick();
-
rmb();
idle = pm_idle;
if (!idle)
--
1.5.3.6


2008-01-10 08:02:19

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86_64: move out tick_nohz_stop_sched_tick() call from the loop


* Hiroshi Shimamoto <[email protected]> wrote:

> @@ -170,14 +170,13 @@ void cpu_idle(void)
> current_thread_info()->status |= TS_POLLING;
> /* endless idle loop with no priority at all */
> while (1) {
> + tick_nohz_stop_sched_tick();
> while (!need_resched()) {
> void (*idle)(void);
>
> if (__get_cpu_var(cpu_idle_state))
> __get_cpu_var(cpu_idle_state) = 0;
>
> - tick_nohz_stop_sched_tick();
> -

thanks, applied.

Ingo