From d692cbb183b38e030c7c1221b67c9389bdeaf7f3 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: References: From: Alex Kozyrev Date: Fri, 16 Mar 2018 15:50:57 -0400 Subject: [PATCH 32/32] restrict iSCSI kthreads to CPUs in cpu_kthread_mask Do not allow them to run on other CPUs to prevent interference with VMs. Signed-off-by: Alex Kozyrev Signed-off-by: Jim Somerville --- drivers/target/iscsi/iscsi_target.c | 4 ++-- include/linux/cpumask.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c index d8f587e..17b08b7 100644 --- a/drivers/target/iscsi/iscsi_target.c +++ b/drivers/target/iscsi/iscsi_target.c @@ -3575,8 +3575,8 @@ void iscsit_thread_get_cpumask(struct iscsi_conn *conn) * iSCSI connection's RX/TX threads will be scheduled to * execute upon. */ - ord = conn->bitmap_id % cpumask_weight(cpu_online_mask); - for_each_online_cpu(cpu) { + ord = conn->bitmap_id % cpumask_weight(cpu_kthread_mask); + for_each_kthread_cpu(cpu) { if (ord-- == 0) { cpumask_set_cpu(cpu, conn->conn_cpumask); return; diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 46ae77a..42b6c63 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -754,6 +754,7 @@ extern const DECLARE_BITMAP(cpu_all_bits, NR_CPUS); #define for_each_possible_cpu(cpu) for_each_cpu((cpu), cpu_possible_mask) #define for_each_online_cpu(cpu) for_each_cpu((cpu), cpu_online_mask) #define for_each_present_cpu(cpu) for_each_cpu((cpu), cpu_present_mask) +#define for_each_kthread_cpu(cpu) for_each_cpu((cpu), cpu_kthread_mask) /* Wrappers for arch boot code to manipulate normally-constant masks */ void set_cpu_possible(unsigned int cpu, bool possible); -- 1.8.3.1