All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Belits <abelits@marvell.com>
To: "frederic@kernel.org" <frederic@kernel.org>,
	"rostedt@goodmis.org" <rostedt@goodmis.org>
Cc: "mingo@kernel.org" <mingo@kernel.org>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Prasun Kapoor <pkapoor@marvell.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"linux-api@vger.kernel.org" <linux-api@vger.kernel.org>,
	"linux-mm@vger.kernel.org" <linux-mm@vger.kernel.org>,
	"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>
Subject: [PATCH 09/12] task_isolation: net: don't flush backlog on CPUs running isolated tasks
Date: Wed, 4 Mar 2020 16:13:32 +0000	[thread overview]
Message-ID: <fe14905b3ba8501d0120c29483fc2780a2b86517.camel@marvell.com> (raw)
In-Reply-To: <4473787e1b6bc3cc226067e8d122092a678b63de.camel@marvell.com>

From: Yuri Norov <ynorov@marvell.com>

If CPU runs isolated task, there's no any backlog on it, and
so we don't need to flush it. Currently flush_all_backlogs()
enqueues corresponding work on all CPUs including ones that run
isolated tasks. It leads to breaking task isolation for nothing.

In this patch, backlog flushing is enqueued only on non-isolated CPUs.

Signed-off-by: Alex Belits <abelits@marvell.com>
---
 net/core/dev.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/net/core/dev.c b/net/core/dev.c
index c6c985fe7b1b..6d32abb1f06d 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -74,6 +74,7 @@
 #include <linux/cpu.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
+#include <linux/isolation.h>
 #include <linux/hash.h>
 #include <linux/slab.h>
 #include <linux/sched.h>
@@ -5518,9 +5519,12 @@ static void flush_all_backlogs(void)
 
 	get_online_cpus();
 
-	for_each_online_cpu(cpu)
+	for_each_online_cpu(cpu) {
+		if (task_isolation_on_cpu(cpu))
+			continue;
 		queue_work_on(cpu, system_highpri_wq,
 			      per_cpu_ptr(&flush_works, cpu));
+	}
 
 	for_each_online_cpu(cpu)
 		flush_work(per_cpu_ptr(&flush_works, cpu));
-- 
2.20.1


  parent reply	other threads:[~2020-03-04 16:14 UTC|newest]

Thread overview: 201+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-04 16:01 [PATCH 00/12] "Task_isolation" mode Alex Belits
2020-03-04 16:03 ` [PATCH 01/12] task_isolation: vmstat: add quiet_vmstat_sync function Alex Belits
2020-03-04 16:03   ` Alex Belits
2020-03-04 16:04 ` [PATCH 02/12] task_isolation: vmstat: add vmstat_idle function Alex Belits
2020-03-04 16:04   ` Alex Belits
2020-03-04 16:07 ` [PATCH 03/12] task_isolation: userspace hard isolation from kernel Alex Belits
2020-03-05 18:33   ` Frederic Weisbecker
2020-03-08  5:32     ` [EXT] " Alex Belits
2020-03-08  5:32       ` Alex Belits
2020-03-08  5:32       ` Alex Belits
2020-04-28 14:12     ` Marcelo Tosatti
2020-04-28 14:12       ` Marcelo Tosatti
2020-04-28 14:12       ` Marcelo Tosatti
2020-03-06 15:26   ` Frederic Weisbecker
2020-03-08  6:06     ` [EXT] " Alex Belits
2020-03-08  6:06       ` Alex Belits
2020-03-08  6:06       ` Alex Belits
2020-03-06 16:00   ` Frederic Weisbecker
2020-03-08  7:16     ` [EXT] " Alex Belits
2020-03-08  7:16       ` Alex Belits
2020-03-04 16:08 ` [PATCH 04/12] task_isolation: Add task isolation hooks to arch-independent code Alex Belits
2020-03-04 16:08   ` Alex Belits
2020-03-04 16:09 ` [PATCH 05/12] task_isolation: arch/x86: enable task isolation functionality Alex Belits
2020-03-04 16:10 ` [PATCH 06/12] task_isolation: arch/arm64: " Alex Belits
2020-03-04 16:10   ` Alex Belits
2020-03-04 16:31   ` Mark Rutland
2020-03-08  4:48     ` [EXT] " Alex Belits
2020-03-08  4:48       ` Alex Belits
2020-03-08  4:48       ` Alex Belits
2020-03-08  4:48       ` Alex Belits
2020-03-04 16:11 ` [PATCH 07/12] task_isolation: arch/arm: " Alex Belits
2020-03-04 16:11   ` Alex Belits
2020-03-04 16:12 ` [PATCH 08/12] task_isolation: don't interrupt CPUs with tick_nohz_full_kick_cpu() Alex Belits
2020-03-04 16:12   ` Alex Belits
2020-03-06 16:03   ` Frederic Weisbecker
2020-03-06 16:03     ` Frederic Weisbecker
2020-03-08  7:28     ` [EXT] " Alex Belits
2020-03-08  7:28       ` Alex Belits
2020-03-08  7:28       ` Alex Belits
2020-03-08  7:28       ` Alex Belits
2020-03-09  2:38       ` Frederic Weisbecker
2020-03-09  2:38         ` Frederic Weisbecker
2020-03-09  2:38         ` Frederic Weisbecker
2020-03-09  2:38         ` Frederic Weisbecker
2020-03-04 16:13 ` Alex Belits [this message]
2020-03-04 16:14 ` [PATCH 10/12] task_isolation: ringbuffer: don't interrupt CPUs running isolated tasks on buffer resize Alex Belits
2020-03-04 16:15 ` [PATCH 11/12] task_isolation: kick_all_cpus_sync: don't kick isolated cpus Alex Belits
2020-03-06 15:34   ` Frederic Weisbecker
2020-03-06 15:34     ` Frederic Weisbecker
2020-03-08  6:48     ` [EXT] " Alex Belits
2020-03-08  6:48       ` Alex Belits
2020-03-08  6:48       ` Alex Belits
2020-03-08  6:48       ` Alex Belits
2020-03-09  2:28       ` Frederic Weisbecker
2020-03-09  2:28         ` Frederic Weisbecker
2020-03-09  2:28         ` Frederic Weisbecker
2020-03-04 16:16 ` [PATCH 12/12] task_isolation: CONFIG_TASK_ISOLATION prevents distribution of jobs to non-housekeeping CPUs Alex Belits
2020-03-04 16:16   ` Alex Belits
2020-03-08  3:42 ` [PATCH v2 00/12] "Task_isolation" mode Alex Belits
2020-03-08  3:42   ` Alex Belits
2020-03-08  3:42   ` Alex Belits
2020-03-08  3:44   ` [PATCH v2 01/12] task_isolation: vmstat: add quiet_vmstat_sync function Alex Belits
2020-03-08  3:44     ` Alex Belits
2020-03-08  3:44     ` Alex Belits
2020-03-08  3:44     ` Alex Belits
2020-03-08  3:46   ` [PATCH v2 02/12] task_isolation: vmstat: add vmstat_idle function Alex Belits
2020-03-08  3:46     ` Alex Belits
2020-03-08  3:46     ` Alex Belits
2020-03-08  3:47   ` [PATCH v2 03/12] task_isolation: userspace hard isolation from kernel Alex Belits
2020-03-08  3:47     ` Alex Belits
2020-03-08  3:47     ` Alex Belits
2020-03-08  3:47     ` Alex Belits
     [not found]     ` <20200307214254.7a8f6c22@hermes.lan>
2020-03-08  7:33       ` [EXT] " Alex Belits
2020-03-08  7:33         ` Alex Belits
2020-03-08  7:33         ` Alex Belits
2020-03-08  7:33         ` Alex Belits
2020-03-27  8:42     ` Marta Rybczynska
2020-03-27  8:42       ` Marta Rybczynska
2020-03-27  8:42       ` Marta Rybczynska
2020-04-06  4:31     ` Kevyn-Alexandre Paré
2020-04-06  4:31       ` Kevyn-Alexandre Paré
2020-04-06  4:31       ` Kevyn-Alexandre Paré
2020-04-06  4:43     ` Kevyn-Alexandre Paré
2020-04-06  4:43       ` Kevyn-Alexandre Paré
2020-04-06  4:43       ` Kevyn-Alexandre Paré
2020-04-06  4:43       ` Kevyn-Alexandre Paré
2020-03-08  3:48   ` [PATCH v2 04/12] task_isolation: Add task isolation hooks to arch-independent code Alex Belits
2020-03-08  3:48     ` Alex Belits
2020-03-08  3:48     ` Alex Belits
2020-03-08  3:48     ` Alex Belits
2020-03-08  3:49   ` [PATCH v2 05/12] task_isolation: arch/x86: enable task isolation functionality Alex Belits
2020-03-08  3:49     ` Alex Belits
2020-03-08  3:49     ` Alex Belits
2020-03-08  3:50   ` [PATCH v2 06/12] task_isolation: arch/arm64: " Alex Belits
2020-03-08  3:50     ` Alex Belits
2020-03-08  3:50     ` Alex Belits
2020-03-08  3:50     ` Alex Belits
2020-03-09 16:59     ` Mark Rutland
2020-03-09 16:59       ` Mark Rutland
2020-03-09 16:59       ` Mark Rutland
2020-03-08  3:52   ` [PATCH v2 07/12] task_isolation: arch/arm: " Alex Belits
2020-03-08  3:52     ` Alex Belits
2020-03-08  3:52     ` Alex Belits
2020-03-08  3:53   ` [PATCH v2 08/12] task_isolation: don't interrupt CPUs with tick_nohz_full_kick_cpu() Alex Belits
2020-03-08  3:53     ` Alex Belits
2020-03-08  3:53     ` Alex Belits
2020-03-08  3:53     ` Alex Belits
2020-03-08  3:54   ` [PATCH v2 09/12] task_isolation: net: don't flush backlog on CPUs running isolated tasks Alex Belits
2020-03-08  3:54     ` Alex Belits
2020-03-08  3:54     ` Alex Belits
2020-03-08  3:54     ` Alex Belits
2020-03-08  3:55   ` [PATCH v2 10/12] task_isolation: ringbuffer: don't interrupt CPUs running isolated tasks on buffer resize Alex Belits
2020-03-08  3:55     ` Alex Belits
2020-03-08  3:55     ` Alex Belits
2020-04-06  4:27     ` Kevyn-Alexandre Paré
2020-04-06  4:27       ` Kevyn-Alexandre Paré
2020-04-06  4:27       ` Kevyn-Alexandre Paré
2020-03-08  3:56   ` [PATCH v2 11/12] task_isolation: kick_all_cpus_sync: don't kick isolated cpus Alex Belits
2020-03-08  3:56     ` Alex Belits
2020-03-08  3:56     ` Alex Belits
2020-03-08  3:57   ` [PATCH v2 12/12] task_isolation: CONFIG_TASK_ISOLATION prevents distribution of jobs to non-housekeeping CPUs Alex Belits
2020-03-08  3:57     ` Alex Belits
2020-03-08  3:57     ` Alex Belits
2020-04-09 15:09   ` [PATCH v3 00/13] "Task_isolation" mode Alex Belits
2020-04-09 15:09     ` Alex Belits
2020-04-09 15:09     ` Alex Belits
2020-04-09 15:15     ` [PATCH 01/13] task_isolation: vmstat: add quiet_vmstat_sync function Alex Belits
2020-04-09 15:15       ` Alex Belits
2020-04-09 15:15       ` Alex Belits
2020-04-09 15:16     ` [PATCH 02/13] task_isolation: vmstat: add vmstat_idle function Alex Belits
2020-04-09 15:16       ` Alex Belits
2020-04-09 15:16       ` Alex Belits
2020-04-09 15:17     ` [PATCH v3 03/13] task_isolation: add instruction synchronization memory barrier Alex Belits
2020-04-09 15:17       ` Alex Belits
2020-04-09 15:17       ` Alex Belits
2020-04-09 15:17       ` Alex Belits
2020-04-15 12:44       ` Mark Rutland
2020-04-15 12:44         ` Mark Rutland
2020-04-15 12:44         ` Mark Rutland
2020-04-19  5:02         ` [EXT] " Alex Belits
2020-04-19  5:02           ` Alex Belits
2020-04-19  5:02           ` Alex Belits
2020-04-19  5:02           ` Alex Belits
2020-04-20 12:23           ` Will Deacon
2020-04-20 12:23             ` Will Deacon
2020-04-20 12:23             ` Will Deacon
2020-04-20 12:36             ` Mark Rutland
2020-04-20 12:36               ` Mark Rutland
2020-04-20 12:36               ` Mark Rutland
2020-04-20 12:36               ` Mark Rutland
2020-04-20 13:55               ` Will Deacon
2020-04-20 13:55                 ` Will Deacon
2020-04-20 13:55                 ` Will Deacon
2020-04-20 13:55                 ` Will Deacon
2020-04-21  7:41                 ` Will Deacon
2020-04-21  7:41                   ` Will Deacon
2020-04-21  7:41                   ` Will Deacon
2020-04-20 12:45           ` Mark Rutland
2020-04-20 12:45             ` Mark Rutland
2020-04-20 12:45             ` Mark Rutland
2020-04-09 15:20     ` [PATCH v3 04/13] task_isolation: userspace hard isolation from kernel Alex Belits
2020-04-09 15:20       ` Alex Belits
2020-04-09 15:20       ` Alex Belits
2020-04-09 18:00       ` Andy Lutomirski
2020-04-09 18:00         ` Andy Lutomirski
2020-04-09 18:00         ` Andy Lutomirski
2020-04-19  5:07         ` Alex Belits
2020-04-19  5:07           ` Alex Belits
2020-04-19  5:07           ` Alex Belits
2020-04-09 15:21     ` [PATCH 05/13] task_isolation: Add task isolation hooks to arch-independent code Alex Belits
2020-04-09 15:21       ` Alex Belits
2020-04-09 15:21       ` Alex Belits
2020-04-09 15:22     ` [PATCH 06/13] task_isolation: arch/x86: enable task isolation functionality Alex Belits
2020-04-09 15:22       ` Alex Belits
2020-04-09 15:22       ` Alex Belits
2020-04-09 15:23     ` [PATCH v3 07/13] task_isolation: arch/arm64: " Alex Belits
2020-04-09 15:23       ` Alex Belits
2020-04-09 15:23       ` Alex Belits
2020-04-22 12:08       ` Catalin Marinas
2020-04-22 12:08         ` Catalin Marinas
2020-04-22 12:08         ` Catalin Marinas
2020-04-09 15:24     ` [PATCH v3 08/13] task_isolation: arch/arm: " Alex Belits
2020-04-09 15:24       ` Alex Belits
2020-04-09 15:24       ` Alex Belits
2020-04-09 15:25     ` [PATCH v3 09/13] task_isolation: don't interrupt CPUs with tick_nohz_full_kick_cpu() Alex Belits
2020-04-09 15:25       ` Alex Belits
2020-04-09 15:25       ` Alex Belits
2020-04-09 15:26     ` [PATCH v3 10/13] task_isolation: net: don't flush backlog on CPUs running isolated tasks Alex Belits
2020-04-09 15:26       ` Alex Belits
2020-04-09 15:26       ` Alex Belits
2020-04-09 15:27     ` [PATCH v3 11/13] task_isolation: ringbuffer: don't interrupt CPUs running isolated tasks on buffer resize Alex Belits
2020-04-09 15:27       ` Alex Belits
2020-04-09 15:27       ` Alex Belits
2020-04-09 15:27     ` [PATCH v3 12/13] task_isolation: kick_all_cpus_sync: don't kick isolated cpus Alex Belits
2020-04-09 15:27       ` Alex Belits
2020-04-09 15:27       ` Alex Belits
2020-04-09 15:27       ` Alex Belits
2020-04-09 15:28     ` [PATCH v3 13/13] task_isolation: CONFIG_TASK_ISOLATION prevents distribution of jobs to non-housekeeping CPUs Alex Belits
2020-04-09 15:28       ` Alex Belits
2020-04-09 15:28       ` Alex Belits
2020-04-09 15:28       ` Alex Belits

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=fe14905b3ba8501d0120c29483fc2780a2b86517.camel@marvell.com \
    --to=abelits@marvell.com \
    --cc=frederic@kernel.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=pkapoor@marvell.com \
    --cc=rostedt@goodmis.org \
    --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.