I wanted to ping the patch below again, since I haven't heard any
feedback.

I note that Rik van Riel's change posted this weekend offers similar
functionality for userspace.  My change offers a convenient API
for, e.g., kernel drivers setting up default irq balancing.

https://lkml.org/lkml/2015/3/28/94

Although it would be possible to do the same thing by iterating over
the existing tick_nohz_full_cpu() API, that seems kind of silly.

An alternate API would be one that just returned the full no_hz
cpumask to kernel callers; I'd be happy with that as well, but my
instinct was to make the API as narrow as possible to start with.

Comments?

On 03/24/2015 03:21 PM, cmetc...@ezchip.com wrote:
From: Chris Metcalf <cmetc...@ezchip.com>

This is useful, for example, to modify a cpumask to avoid the
nohz cores so that interrupts aren't sent to them.

Signed-off-by: Chris Metcalf <cmetc...@ezchip.com>
---
Motivated by patch 4/4 in this series.

  include/linux/tick.h | 7 +++++++
  1 file changed, 7 insertions(+)

diff --git a/include/linux/tick.h b/include/linux/tick.h
index 9c085dc12ae9..d53ad4892a39 100644
--- a/include/linux/tick.h
+++ b/include/linux/tick.h
@@ -186,6 +186,12 @@ static inline bool tick_nohz_full_cpu(int cpu)
        return cpumask_test_cpu(cpu, tick_nohz_full_mask);
  }
+static inline void tick_nohz_full_clear_cpus(struct cpumask *mask)
+{
+       if (tick_nohz_full_enabled())
+               cpumask_andnot(mask, mask, tick_nohz_full_mask);
+}
+
  extern void __tick_nohz_full_check(void);
  extern void tick_nohz_full_kick(void);
  extern void tick_nohz_full_kick_cpu(int cpu);
@@ -194,6 +200,7 @@ extern void __tick_nohz_task_switch(struct task_struct 
*tsk);
  #else
  static inline bool tick_nohz_full_enabled(void) { return false; }
  static inline bool tick_nohz_full_cpu(int cpu) { return false; }
+static inline void tick_nohz_full_clear_cpus(struct cpumask *mask) { }
  static inline void __tick_nohz_full_check(void) { }
  static inline void tick_nohz_full_kick_cpu(int cpu) { }
  static inline void tick_nohz_full_kick(void) { }

--
Chris Metcalf, EZChip Semiconductor
http://www.ezchip.com

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to