Idle notifiers is not getting called from CONFIG_X86_32 architecture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux