Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e56a1cf authored by Frederic Weisbecker's avatar Frederic Weisbecker Committed by Ingo Molnar
Browse files

sched/isolation: Make the housekeeping cpumask private



Nobody needs to access this detail. housekeeping_cpumask() already
takes care of it.

Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
Cc: Chris Metcalf <cmetcalf@mellanox.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Wanpeng Li <kernellwp@gmail.com>
Link: http://lkml.kernel.org/r/1509072159-31808-5-git-send-email-frederic@kernel.org


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 9f0ca2d9
Loading
Loading
Loading
Loading
+10 −21
Original line number Diff line number Diff line
@@ -6,46 +6,35 @@
#include <linux/tick.h>

#ifdef CONFIG_NO_HZ_FULL
extern cpumask_var_t housekeeping_mask;
extern int housekeeping_any_cpu(void);
extern const struct cpumask *housekeeping_cpumask(void);
extern void housekeeping_affine(struct task_struct *t);
extern bool housekeeping_test_cpu(int cpu);
extern void __init housekeeping_init(void);

#else
static inline void housekeeping_init(void) { }
#endif /* CONFIG_NO_HZ_FULL */

static inline int housekeeping_any_cpu(void)
{
#ifdef CONFIG_NO_HZ_FULL
	if (tick_nohz_full_enabled())
		return cpumask_any_and(housekeeping_mask, cpu_online_mask);
#endif
	return smp_processor_id();
}

static inline const struct cpumask *housekeeping_cpumask(void)
{
#ifdef CONFIG_NO_HZ_FULL
	if (tick_nohz_full_enabled())
		return housekeeping_mask;
#endif
	return cpu_possible_mask;
}

static inline void housekeeping_affine(struct task_struct *t) { }
static inline void housekeeping_init(void) { }
#endif /* CONFIG_NO_HZ_FULL */

static inline bool is_housekeeping_cpu(int cpu)
{
#ifdef CONFIG_NO_HZ_FULL
	if (tick_nohz_full_enabled())
		return cpumask_test_cpu(cpu, housekeeping_mask);
		return housekeeping_test_cpu(cpu);
#endif
	return true;
}

static inline void housekeeping_affine(struct task_struct *t)
{
#ifdef CONFIG_NO_HZ_FULL
	if (tick_nohz_full_enabled())
		set_cpus_allowed_ptr(t, housekeeping_mask);

#endif
}

#endif /* _LINUX_SCHED_ISOLATION_H */
+35 −1
Original line number Diff line number Diff line
@@ -11,7 +11,41 @@
#include <linux/init.h>
#include <linux/kernel.h>

cpumask_var_t housekeeping_mask;
static cpumask_var_t housekeeping_mask;

int housekeeping_any_cpu(void)
{
	if (tick_nohz_full_enabled())
		return cpumask_any_and(housekeeping_mask, cpu_online_mask);

	return smp_processor_id();
}
EXPORT_SYMBOL_GPL(housekeeping_any_cpu);

const struct cpumask *housekeeping_cpumask(void)
{
	if (tick_nohz_full_enabled())
		return housekeeping_mask;

	return cpu_possible_mask;
}
EXPORT_SYMBOL_GPL(housekeeping_cpumask);

void housekeeping_affine(struct task_struct *t)
{
	if (tick_nohz_full_enabled())
		set_cpus_allowed_ptr(t, housekeeping_mask);
}
EXPORT_SYMBOL_GPL(housekeeping_affine);

bool housekeeping_test_cpu(int cpu)
{
	if (tick_nohz_full_enabled())
		return cpumask_test_cpu(cpu, housekeeping_mask);

	return true;
}
EXPORT_SYMBOL_GPL(housekeeping_test_cpu);

void __init housekeeping_init(void)
{