All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <frederic@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Frederic Weisbecker <frederic@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Chris Metcalf <cmetcalf@mellanox.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Luiz Capitulino <lcapitulino@redhat.com>,
	Christoph Lameter <cl@linux.com>,
	"Paul E . McKenney" <paulmck@linux.vnet.ibm.com>,
	Mike Galbraith <efault@gmx.de>, Rik van Riel <riel@redhat.com>,
	Wanpeng Li <kernellwp@gmail.com>
Subject: [PATCH 04/12] housekeeping: Make housekeeping cpumask private
Date: Fri, 27 Oct 2017 04:42:31 +0200	[thread overview]
Message-ID: <1509072159-31808-5-git-send-email-frederic@kernel.org> (raw)
In-Reply-To: <1509072159-31808-1-git-send-email-frederic@kernel.org>

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

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
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: Thomas Gleixner <tglx@linutronix.de>
Cc: Wanpeng Li <kernellwp@gmail.com>
---
 include/linux/sched/isolation.h | 31 ++++++++++---------------------
 kernel/sched/isolation.c        | 36 +++++++++++++++++++++++++++++++++++-
 2 files changed, 45 insertions(+), 22 deletions(-)

diff --git a/include/linux/sched/isolation.h b/include/linux/sched/isolation.h
index 040df04..ed935ff 100644
--- a/include/linux/sched/isolation.h
+++ b/include/linux/sched/isolation.h
@@ -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 */
diff --git a/kernel/sched/isolation.c b/kernel/sched/isolation.c
index 3589252..1644509 100644
--- a/kernel/sched/isolation.c
+++ b/kernel/sched/isolation.c
@@ -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)
 {
-- 
2.7.4

  parent reply	other threads:[~2017-10-27  2:43 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-27  2:42 [GIT PULL] Housekeeping subsystem v6 Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 01/12] housekeeping: Move housekeeping related code to its own file Frederic Weisbecker
2017-10-27 12:01   ` [tip:sched/core] sched/isolation: " tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 02/12] watchdog: Use housekeeping_cpumask() instead of ad-hoc version Frederic Weisbecker
2017-10-27 12:02   ` [tip:sched/core] sched/isolation, " tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 03/12] housekeeping: Provide a dynamic off-case to housekeeping_any_cpu() Frederic Weisbecker
2017-10-27 12:02   ` [tip:sched/core] sched/isolation: " tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` Frederic Weisbecker [this message]
2017-10-27 12:03   ` [tip:sched/core] sched/isolation: Make the housekeeping cpumask private tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 05/12] housekeeping: Use its own static key Frederic Weisbecker
2017-10-27 12:03   ` [tip:sched/core] sched/isolation: " tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 06/12] housekeeping: Rename is_housekeeping_cpu to housekeeping_cpu Frederic Weisbecker
2017-10-27 12:03   ` [tip:sched/core] sched/isolation: Rename is_housekeeping_cpu() to housekeeping_cpu() tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 07/12] housekeeping: Move it under its own config, independent from NO_HZ Frederic Weisbecker
2017-10-27 12:04   ` [tip:sched/core] sched/isolation: Split out new CONFIG_CPU_ISOLATION=y config from CONFIG_NO_HZ_FULL tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 08/12] housekeeping: Introduce housekeeping flags Frederic Weisbecker
2017-10-27 12:04   ` [tip:sched/core] sched/isolation: " tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 09/12] housekeeping: Handle the nohz_full= parameter Frederic Weisbecker
2017-10-27 12:05   ` [tip:sched/core] sched/isolation: " tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 10/12] housekeeping: Move isolcpus to housekeeping Frederic Weisbecker
2017-10-27 12:05   ` [tip:sched/core] sched/isolation: Move isolcpus= handling to the housekeeping code tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 11/12] housekeeping: Add basic isolcpus flags Frederic Weisbecker
2017-10-27 12:05   ` [tip:sched/core] sched/isolation: " tip-bot for Frederic Weisbecker
2017-10-27  2:42 ` [PATCH 12/12] housekeeping: Document " Frederic Weisbecker
2017-10-27 12:06   ` [tip:sched/core] sched/isolation: Document the isolcpus= flags tip-bot for Frederic Weisbecker
2017-10-27 13:58     ` Peter Zijlstra
2017-10-27 14:36       ` Frederic Weisbecker
2017-10-27 17:06         ` Ingo Molnar
2017-10-27 17:33           ` Frederic Weisbecker
2017-10-27 18:21             ` Ingo Molnar
2017-10-27 18:39               ` Frederic Weisbecker
2017-10-27 19:04                 ` Ingo Molnar
2017-10-27 14:38       ` Mike Galbraith
2017-10-30 15:48       ` Christopher Lameter
2017-10-30 16:11         ` Peter Zijlstra
2017-10-30 16:30           ` Christopher Lameter
2017-10-30 16:58             ` Peter Zijlstra
2017-10-30 16:56           ` Mike Galbraith
  -- strict thread matches above, loose matches on Subject: below --
2017-10-24 13:06 [GIT PULL] Introduce housekeeping subsystem v5 Frederic Weisbecker
2017-10-24 13:06 ` [PATCH 04/12] housekeeping: Make housekeeping cpumask private Frederic Weisbecker
2017-09-18 13:53 [GIT PULL] Introduce housekeeping subsystem v4 Frederic Weisbecker
2017-09-18 13:54 ` [PATCH 04/12] housekeeping: Make housekeeping cpumask private Frederic Weisbecker
2017-09-01 16:41 [PATCH 00/12] Introduce housekeeping subsystem v3 Frederic Weisbecker
2017-09-01 16:41 ` [PATCH 04/12] housekeeping: Make housekeeping cpumask private Frederic Weisbecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1509072159-31808-5-git-send-email-frederic@kernel.org \
    --to=frederic@kernel.org \
    --cc=cl@linux.com \
    --cc=cmetcalf@mellanox.com \
    --cc=efault@gmx.de \
    --cc=kernellwp@gmail.com \
    --cc=lcapitulino@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.