All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
	Peter Zijlstra <peterz@infradead.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>,
	Ingo Molnar <mingo@kernel.org>, Mike Galbraith <efault@gmx.de>,
	Rik van Riel <riel@redhat.com>, Wanpeng Li <kernellwp@gmail.com>
Subject: [RFC PATCH 03/12] housekeeping: Provide a dynamic off-case to housekeeping_any_cpu()
Date: Wed, 23 Aug 2017 03:51:02 +0200	[thread overview]
Message-ID: <1503453071-952-4-git-send-email-fweisbec@gmail.com> (raw)
In-Reply-To: <1503453071-952-1-git-send-email-fweisbec@gmail.com>

housekeeping_any_cpu() doesn't handle correctly the case where
CONFIG_NO_HZ_FULL=y and no CPU is in nohz_full mode. So far no caller
needs this but let's prepare to avoid any future surprise.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Chris Metcalf <cmetcalf@mellanox.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Christoph Lameter <cl@linux.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Wanpeng Li <kernellwp@gmail.com>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
---
 include/linux/housekeeping.h | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/include/linux/housekeeping.h b/include/linux/housekeeping.h
index 3d6a8e6..64d0ee5 100644
--- a/include/linux/housekeeping.h
+++ b/include/linux/housekeeping.h
@@ -7,24 +7,19 @@
 
 #ifdef CONFIG_NO_HZ_FULL
 extern cpumask_var_t housekeeping_mask;
-
-static inline int housekeeping_any_cpu(void)
-{
-	return cpumask_any_and(housekeeping_mask, cpu_online_mask);
-}
-
 extern void __init housekeeping_init(void);
-
 #else
-
-static inline int housekeeping_any_cpu(void)
-{
-	return smp_processor_id();
-}
-
 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)
 {
-- 
2.7.4

  parent reply	other threads:[~2017-08-23  1:54 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-23  1:50 [RFC 00/12] Introduce housekeeping subsystem v2 Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 01/12] housekeeping: Move housekeeping related code to its own file Frederic Weisbecker
2017-08-31 20:16   ` Rik van Riel
2017-08-31 22:58     ` Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 02/12] watchdog: Use housekeeping_cpumask() instead of ad-hoc version Frederic Weisbecker
2017-08-23  1:51 ` Frederic Weisbecker [this message]
2017-08-23  1:51 ` [RFC PATCH 04/12] housekeeping: Make housekeeping cpumask private Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 05/12] housekeeping: Use its own static key Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 06/12] housekeeping: Rename is_housekeeping_cpu to housekeeping_cpu Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 07/12] housekeeping: Move it under own config, independant from NO_HZ Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 08/12] housekeeping: Introduce housekeeping flags Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 09/12] workqueue: Affine unbound workqueues to housekeeping cpumask Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 10/12] housekeeping: Affine unbound kthreads Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 11/12] housekeeping: Handle nohz_full= parameter Frederic Weisbecker
2017-08-23  1:51 ` [RFC PATCH 12/12] housekeeping: Reimplement isolcpus on housekeeping Frederic Weisbecker
2017-08-23 14:55   ` Christopher Lameter
2017-08-24 13:19     ` Frederic Weisbecker
2017-08-28 10:10     ` Peter Zijlstra
2017-08-28 15:38       ` Christopher Lameter
2017-08-28 10:09   ` Peter Zijlstra
2017-08-28 13:23     ` Frederic Weisbecker
2017-08-28 13:31       ` Peter Zijlstra
2017-08-28 15:27         ` Frederic Weisbecker
2017-08-28 16:24           ` Peter Zijlstra
2017-08-28 16:53             ` Christopher Lameter
2017-08-28 17:33             ` Frederic Weisbecker
2017-08-31 18:53               ` Thomas Gleixner
2017-08-31 23:00                 ` 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=1503453071-952-4-git-send-email-fweisbec@gmail.com \
    --to=fweisbec@gmail.com \
    --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 \
    /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.