summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorUlf Hansson <ulf.hansson@linaro.org>2025-11-05 10:54:07 +0100
committerUlf Hansson <ulf.hansson@linaro.org>2025-11-19 18:06:50 +0100
commitccde6525183c5489de293cf91a441585fff3c847 (patch)
treef61079adb0c065a9360c85d733028b80eb2c586a /include
parent80ed617a62fe076bbfe700c8289fc2118d724821 (diff)
smp: Introduce a helper function to check for pending IPIs
When governors used during cpuidle try to find the most optimal idle state for a CPU or a group of CPUs, they are known to quite often fail. One reason for this is, that they are not taking into account whether there has been an IPI scheduled for any of the CPUs that are affected by the selected idle state. To enable pending IPIs to be taken into account for cpuidle decisions, introduce a new helper function, cpus_peek_for_pending_ipi(). Suggested-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/smp.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 18e9c918325e..91d0ecf3b8d3 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -168,6 +168,7 @@ int smp_call_function_any(const struct cpumask *mask,
void kick_all_cpus_sync(void);
void wake_up_all_idle_cpus(void);
+bool cpus_peek_for_pending_ipi(const struct cpumask *mask);
/*
* Generic and arch helpers
@@ -216,6 +217,10 @@ smp_call_function_any(const struct cpumask *mask, smp_call_func_t func,
static inline void kick_all_cpus_sync(void) { }
static inline void wake_up_all_idle_cpus(void) { }
+static inline bool cpus_peek_for_pending_ipi(const struct cpumask *mask)
+{
+ return false;
+}
#define setup_max_cpus 0