From: Alex Belits <abelits-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org> To: "frederic-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" <frederic-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, "rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org" <rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org> Cc: Prasun Kapoor <pkapoor-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org>, "mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, "davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>, "linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org" <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>, "linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "catalin.marinas-5wv7dgnIgG8@public.gmane.org" <catalin.marinas-5wv7dgnIgG8@public.gmane.org>, "tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org" <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>, "will-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" <will-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, "linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" <linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>, "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, "netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org> Subject: [PATCH 13/13] task_isolation: kick_all_cpus_sync: don't kick isolated cpus Date: Wed, 22 Jul 2020 14:59:55 +0000 [thread overview] Message-ID: <5d0088ffd762b266124dfa5da9bcef0d9ddbae96.camel@marvell.com> (raw) In-Reply-To: <04be044c1bcd76b7438b7563edc35383417f12c8.camel-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org> From: Yuri Norov <ynorov@marvell.com> Make sure that kick_all_cpus_sync() does not call CPUs that are running isolated tasks. Signed-off-by: Yuri Norov <ynorov@marvell.com> [abelits@marvell.com: use safe task_isolation_cpumask() implementation] Signed-off-by: Alex Belits <abelits@marvell.com> --- kernel/smp.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/kernel/smp.c b/kernel/smp.c index 6a6849783948..ff0d95db33b3 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -803,9 +803,21 @@ static void do_nothing(void *unused) */ void kick_all_cpus_sync(void) { + struct cpumask mask; + /* Make sure the change is visible before we kick the cpus */ smp_mb(); - smp_call_function(do_nothing, NULL, 1); + + preempt_disable(); +#ifdef CONFIG_TASK_ISOLATION + cpumask_clear(&mask); + task_isolation_cpumask(&mask); + cpumask_complement(&mask, &mask); +#else + cpumask_setall(&mask); +#endif + smp_call_function_many(&mask, do_nothing, NULL, 1); + preempt_enable(); } EXPORT_SYMBOL_GPL(kick_all_cpus_sync); -- 2.26.2
WARNING: multiple messages have this Message-ID (diff)
From: Alex Belits <abelits@marvell.com> To: "frederic@kernel.org" <frederic@kernel.org>, "rostedt@goodmis.org" <rostedt@goodmis.org> Cc: Prasun Kapoor <pkapoor@marvell.com>, "mingo@kernel.org" <mingo@kernel.org>, "davem@davemloft.net" <davem@davemloft.net>, "linux-api@vger.kernel.org" <linux-api@vger.kernel.org>, "peterz@infradead.org" <peterz@infradead.org>, "linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>, "catalin.marinas@arm.com" <catalin.marinas@arm.com>, "tglx@linutronix.de" <tglx@linutronix.de>, "will@kernel.org" <will@kernel.org>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "netdev@vger.kernel.org" <netdev@vger.kernel.org> Subject: [PATCH 13/13] task_isolation: kick_all_cpus_sync: don't kick isolated cpus Date: Wed, 22 Jul 2020 14:59:55 +0000 [thread overview] Message-ID: <5d0088ffd762b266124dfa5da9bcef0d9ddbae96.camel@marvell.com> (raw) Message-ID: <20200722145955.cDaUaqJeVSLpnAR3CbQOpyJ9x1bDO1k3qSvKReBCCLg@z> (raw) In-Reply-To: <04be044c1bcd76b7438b7563edc35383417f12c8.camel@marvell.com> From: Yuri Norov <ynorov@marvell.com> Make sure that kick_all_cpus_sync() does not call CPUs that are running isolated tasks. Signed-off-by: Yuri Norov <ynorov@marvell.com> [abelits@marvell.com: use safe task_isolation_cpumask() implementation] Signed-off-by: Alex Belits <abelits@marvell.com> --- kernel/smp.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/kernel/smp.c b/kernel/smp.c index 6a6849783948..ff0d95db33b3 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -803,9 +803,21 @@ static void do_nothing(void *unused) */ void kick_all_cpus_sync(void) { + struct cpumask mask; + /* Make sure the change is visible before we kick the cpus */ smp_mb(); - smp_call_function(do_nothing, NULL, 1); + + preempt_disable(); +#ifdef CONFIG_TASK_ISOLATION + cpumask_clear(&mask); + task_isolation_cpumask(&mask); + cpumask_complement(&mask, &mask); +#else + cpumask_setall(&mask); +#endif + smp_call_function_many(&mask, do_nothing, NULL, 1); + preempt_enable(); } EXPORT_SYMBOL_GPL(kick_all_cpus_sync); -- 2.26.2
next prev parent reply other threads:[~2020-07-22 14:59 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-22 14:44 [PATCH v4 00/13] "Task_isolation" mode Alex Belits 2020-07-22 14:48 ` [PATCH v4 02/13] task_isolation: vmstat: add vmstat_idle function Alex Belits 2020-07-22 14:49 ` [PATCH v4 03/13] task_isolation: userspace hard isolation from kernel Alex Belits 2020-07-22 14:49 ` Alex Belits 2020-10-01 13:56 ` Frederic Weisbecker 2020-10-04 14:44 ` [EXT] " Alex Belits 2020-10-04 23:14 ` Frederic Weisbecker 2020-10-05 18:52 ` Nitesh Narayan Lal 2020-10-06 10:35 ` Frederic Weisbecker 2020-10-17 1:13 ` Alex Belits 2020-10-17 1:08 ` Alex Belits 2020-10-17 16:08 ` Thomas Gleixner 2020-10-17 16:15 ` Alex Belits 2020-10-17 20:03 ` Thomas Gleixner 2020-10-06 11:01 ` Alex Belits 2020-10-01 14:40 ` Frederic Weisbecker 2020-10-04 15:01 ` [EXT] " Alex Belits [not found] ` <04be044c1bcd76b7438b7563edc35383417f12c8.camel-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org> 2020-07-22 14:47 ` [PATCH v4 01/13] task_isolation: vmstat: add quiet_vmstat_sync function Alex Belits 2020-07-22 14:47 ` Alex Belits 2020-07-22 14:51 ` [PATCH v4 04/13] task_isolation: Add task isolation hooks to arch-independent code Alex Belits 2020-07-22 14:51 ` Alex Belits 2020-07-22 14:55 ` [PATCH 08/13] task_isolation: arch/arm64: enable task isolation functionality Alex Belits 2020-07-22 14:55 ` Alex Belits 2020-07-22 14:56 ` [PATCH v4 09/13] task_isolation: arch/arm: " Alex Belits 2020-07-22 14:56 ` Alex Belits 2020-07-22 14:58 ` [PATCH v4 11/13] task_isolation: net: don't flush backlog on CPUs running isolated tasks Alex Belits 2020-07-22 14:58 ` Alex Belits 2020-10-01 14:47 ` Frederic Weisbecker 2020-10-04 17:12 ` [EXT] " Alex Belits 2021-01-22 14:13 ` Marcelo Tosatti 2021-01-22 16:13 ` Paolo Abeni 2020-07-22 14:59 ` Alex Belits [this message] 2020-07-22 14:59 ` [PATCH 13/13] task_isolation: kick_all_cpus_sync: don't kick isolated cpus Alex Belits 2020-07-22 14:51 ` [PATCH v4 05/13] task_isolation: Add xen-specific hook Alex Belits 2020-07-22 14:51 ` Alex Belits 2020-07-22 14:53 ` [PATCH 06/13] task_isolation: Add driver-specific hooks Alex Belits 2020-07-22 14:53 ` Alex Belits 2020-07-22 14:54 ` [PATCH v4 07/13] task_isolation: arch/x86: enable task isolation functionality Alex Belits 2020-07-22 14:54 ` Alex Belits 2020-07-22 14:57 ` [PATCH v4 10/13] task_isolation: don't interrupt CPUs with tick_nohz_full_kick_cpu() Alex Belits 2020-10-01 14:44 ` Frederic Weisbecker 2020-10-04 15:22 ` [EXT] " Alex Belits 2020-10-06 21:41 ` Frederic Weisbecker 2020-10-17 0:17 ` Alex Belits 2020-07-22 14:59 ` [PATCH v4 12/13] task_isolation: ringbuffer: don't interrupt CPUs running isolated tasks on buffer resize Alex Belits 2020-07-22 14:59 ` Alex Belits 2020-07-23 13:17 ` [PATCH v4 00/13] "Task_isolation" mode Thomas Gleixner 2020-07-23 14:26 ` Peter Zijlstra 2020-07-23 14:53 ` Thomas Gleixner 2020-07-23 14:29 ` Peter Zijlstra 2020-07-23 15:41 ` [EXT] " Alex Belits 2020-07-23 15:48 ` Peter Zijlstra 2020-07-23 15:48 ` Peter Zijlstra 2020-07-23 16:19 ` Alex Belits 2020-07-23 16:19 ` Alex Belits 2020-07-23 15:18 ` Alex Belits [not found] ` <831e023422aa0e4cb3da37ceef6fdcd5bc854682.camel-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org> 2020-07-23 15:49 ` Peter Zijlstra 2020-07-23 15:49 ` Peter Zijlstra 2020-07-23 16:50 ` Alex Belits 2020-07-23 21:44 ` Thomas Gleixner 2020-07-23 21:44 ` Thomas Gleixner 2020-07-24 3:00 ` [EXT] " Alex Belits 2020-07-24 16:08 ` Thomas Gleixner 2020-07-24 16:08 ` Thomas Gleixner 2020-07-23 21:31 ` Thomas Gleixner
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=5d0088ffd762b266124dfa5da9bcef0d9ddbae96.camel@marvell.com \ --to=abelits-eyqppykdwxrbdgjk7y7tuq@public.gmane.org \ --cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \ --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org \ --cc=frederic-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \ --cc=pkapoor-eYqpPyKDWXRBDgjK7y7TUQ@public.gmane.org \ --cc=rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org \ --cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \ --cc=will-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).