ANDROID: idle_notifier: Add generic idle notifiers
AOSP Change-ID: Idf29cda15be151f494ff245933c12462643388d5
moved x86_64 idle notifiers as generic so that they can
be used in interactive governor.
Upstream change 8e7a7ee9dd ("x86/idle: Remove idle_notifier")
removed x86_64 idle notifiers altogether. This patch add
generic idle notifiers again.
Change-Id: Iffb48a1ea0348d9ddad93df697e4743a5531fe73
Fixes: android-4.9 commit bfd2a547fc17 ("ANDROID: ARM: Call idle notifiers")
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Git-Commit: d82a8035d09bcfcac238b80ad97335167665a7c3
Git-Repo: https://android-git.linaro.org/git/kernel/linaro-android.git
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
This commit is contained in:
@@ -221,4 +221,11 @@ static inline int cpuhp_smt_disable(enum cpuhp_smt_control ctrlval) { return 0;
|
|||||||
extern bool cpu_mitigations_off(void);
|
extern bool cpu_mitigations_off(void);
|
||||||
extern bool cpu_mitigations_auto_nosmt(void);
|
extern bool cpu_mitigations_auto_nosmt(void);
|
||||||
|
|
||||||
|
#define IDLE_START 1
|
||||||
|
#define IDLE_END 2
|
||||||
|
|
||||||
|
void idle_notifier_register(struct notifier_block *n);
|
||||||
|
void idle_notifier_unregister(struct notifier_block *n);
|
||||||
|
void idle_notifier_call_chain(unsigned long val);
|
||||||
|
|
||||||
#endif /* _LINUX_CPU_H_ */
|
#endif /* _LINUX_CPU_H_ */
|
||||||
|
|||||||
20
kernel/cpu.c
20
kernel/cpu.c
@@ -2498,3 +2498,23 @@ bool cpu_mitigations_auto_nosmt(void)
|
|||||||
return cpu_mitigations == CPU_MITIGATIONS_AUTO_NOSMT;
|
return cpu_mitigations == CPU_MITIGATIONS_AUTO_NOSMT;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(cpu_mitigations_auto_nosmt);
|
EXPORT_SYMBOL_GPL(cpu_mitigations_auto_nosmt);
|
||||||
|
|
||||||
|
static ATOMIC_NOTIFIER_HEAD(idle_notifier);
|
||||||
|
|
||||||
|
void idle_notifier_register(struct notifier_block *n)
|
||||||
|
{
|
||||||
|
atomic_notifier_chain_register(&idle_notifier, n);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(idle_notifier_register);
|
||||||
|
|
||||||
|
void idle_notifier_unregister(struct notifier_block *n)
|
||||||
|
{
|
||||||
|
atomic_notifier_chain_unregister(&idle_notifier, n);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(idle_notifier_unregister);
|
||||||
|
|
||||||
|
void idle_notifier_call_chain(unsigned long val)
|
||||||
|
{
|
||||||
|
atomic_notifier_call_chain(&idle_notifier, val, NULL);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(idle_notifier_call_chain);
|
||||||
|
|||||||
Reference in New Issue
Block a user