Hi, We are using interactive governor on Kernel 3.4, and we noticed that we are not getting cpu idle notifier this is required for The proper functioning of the governor, after triaging the issue we found that commit 90e240142bd31ff10aeda5a280a53153f4eff004 Has merged both CONFIG_X86_64 and X86_32 cpu_idle functions() and in the process we have null functions for enter_idle() on X86_32 Hence we are not registering the idle_notifiers on X86_32, is there something that we need to do to fix this? We tried this patch and it fixes our issue. >From 2a293d66374670ad2b410818124e3acc3516a1aa Mon Sep 17 00:00:00 2001 From: Ashish K <ashish.k@xxxxxxxxx> Date: Mon, 25 Feb 2013 19:58:10 +0530 Subject: [PATCH] x86: Fix the issue of idle notifier not being called BZ: 88777 This patch resolves the issue of CPU being stuck at 2G by resolving the issue of idle notifier not being called by interactive governor. Change-Id: I6f76e7132236fbdc264e653505cb9ea1fe2714bb Signed-off-by: Dyut Kumar Sil <dyut.k.sil@xxxxxxxxx> Signed-off-by: Ashish K <ashish.k@xxxxxxxxx> --- arch/x86/include/asm/idle.h | 6 ------ arch/x86/kernel/process.c | 4 ---- 2 files changed, 0 insertions(+), 10 deletions(-) diff --git a/arch/x86/include/asm/idle.h b/arch/x86/include/asm/idle.h index 02bab09..22a60b1 100644 --- a/arch/x86/include/asm/idle.h +++ b/arch/x86/include/asm/idle.h @@ -1,14 +1,8 @@ #ifndef _ASM_X86_IDLE_H #define _ASM_X86_IDLE_H -#ifdef CONFIG_X86_64 void enter_idle(void); void exit_idle(void); -#else /* !CONFIG_X86_64 */ -static inline void enter_idle(void) { } -static inline void exit_idle(void) { } -static inline void __exit_idle(void) { } -#endif /* CONFIG_X86_64 */ void amd_e400_remove_cpu(int cpu); diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index fdd151c..48887ac 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -27,9 +27,7 @@ #include <asm/debugreg.h> #include <asm/nmi.h> -#ifdef CONFIG_X86_64 static DEFINE_PER_CPU(unsigned char, is_idle); -#endif struct kmem_cache *task_xstate_cachep; EXPORT_SYMBOL_GPL(task_xstate_cachep); @@ -361,7 +359,6 @@ static inline void play_dead(void) } #endif -#ifdef CONFIG_X86_64 void enter_idle(void) { percpu_write(is_idle, 1); @@ -383,7 +380,6 @@ void exit_idle(void) return; __exit_idle(); } -#endif /* * The idle thread. There's no useful work to be -- 1.7.4.1
Attachment:
smime.p7s
Description: S/MIME cryptographic signature