All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: linux-kernel@vger.kernel.org
Cc: tglx@linutronix.de, Peter Zijlstra <peterz@infradead.org>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Tejun Heo <tj@kernel.org>, Lai Jiangshan <jiangshanlai@gmail.com>
Subject: [PATCH 37/38] workqueue: Replace deprecated CPU-hotplug functions.
Date: Tue,  3 Aug 2021 16:16:20 +0200	[thread overview]
Message-ID: <20210803141621.780504-38-bigeasy@linutronix.de> (raw)
In-Reply-To: <20210803141621.780504-1-bigeasy@linutronix.de>

The functions get_online_cpus() and put_online_cpus() have been
deprecated during the CPU hotplug rework. They map directly to
cpus_read_lock() and cpus_read_unlock().

Replace deprecated CPU-hotplug functions with the official version.
The behavior remains unchanged.

Cc: Tejun Heo <tj@kernel.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 kernel/workqueue.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index f148eacda55a9..f967aa4050d08 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3293,7 +3293,7 @@ int schedule_on_each_cpu(work_func_t func)
 	if (!works)
 		return -ENOMEM;
 
-	get_online_cpus();
+	cpus_read_lock();
 
 	for_each_online_cpu(cpu) {
 		struct work_struct *work = per_cpu_ptr(works, cpu);
@@ -3305,7 +3305,7 @@ int schedule_on_each_cpu(work_func_t func)
 	for_each_online_cpu(cpu)
 		flush_work(per_cpu_ptr(works, cpu));
 
-	put_online_cpus();
+	cpus_read_unlock();
 	free_percpu(works);
 	return 0;
 }
@@ -4016,14 +4016,14 @@ static void apply_wqattrs_commit(struct apply_wqattrs_ctx *ctx)
 static void apply_wqattrs_lock(void)
 {
 	/* CPUs should stay stable across pwq creations and installations */
-	get_online_cpus();
+	cpus_read_lock();
 	mutex_lock(&wq_pool_mutex);
 }
 
 static void apply_wqattrs_unlock(void)
 {
 	mutex_unlock(&wq_pool_mutex);
-	put_online_cpus();
+	cpus_read_unlock();
 }
 
 static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
@@ -4068,7 +4068,7 @@ static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
  *
  * Performs GFP_KERNEL allocations.
  *
- * Assumes caller has CPU hotplug read exclusion, i.e. get_online_cpus().
+ * Assumes caller has CPU hotplug read exclusion, i.e. cpus_read_lock().
  *
  * Return: 0 on success and -errno on failure.
  */
@@ -4196,7 +4196,7 @@ static int alloc_and_link_pwqs(struct workqueue_struct *wq)
 		return 0;
 	}
 
-	get_online_cpus();
+	cpus_read_lock();
 	if (wq->flags & __WQ_ORDERED) {
 		ret = apply_workqueue_attrs(wq, ordered_wq_attrs[highpri]);
 		/* there should only be single pwq for ordering guarantee */
@@ -4206,7 +4206,7 @@ static int alloc_and_link_pwqs(struct workqueue_struct *wq)
 	} else {
 		ret = apply_workqueue_attrs(wq, unbound_std_wq_attrs[highpri]);
 	}
-	put_online_cpus();
+	cpus_read_unlock();
 
 	return ret;
 }
@@ -5168,10 +5168,10 @@ long work_on_cpu_safe(int cpu, long (*fn)(void *), void *arg)
 {
 	long ret = -ENODEV;
 
-	get_online_cpus();
+	cpus_read_lock();
 	if (cpu_online(cpu))
 		ret = work_on_cpu(cpu, fn, arg);
-	put_online_cpus();
+	cpus_read_unlock();
 	return ret;
 }
 EXPORT_SYMBOL_GPL(work_on_cpu_safe);
@@ -5443,7 +5443,7 @@ static ssize_t wq_pool_ids_show(struct device *dev,
 	const char *delim = "";
 	int node, written = 0;
 
-	get_online_cpus();
+	cpus_read_lock();
 	rcu_read_lock();
 	for_each_node(node) {
 		written += scnprintf(buf + written, PAGE_SIZE - written,
@@ -5453,7 +5453,7 @@ static ssize_t wq_pool_ids_show(struct device *dev,
 	}
 	written += scnprintf(buf + written, PAGE_SIZE - written, "\n");
 	rcu_read_unlock();
-	put_online_cpus();
+	cpus_read_unlock();
 
 	return written;
 }
-- 
2.32.0


  parent reply	other threads:[~2021-08-03 14:20 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-03 14:15 [PATCH 00/38] Replace deprecated CPU-hotplug Sebastian Andrzej Siewior
2021-08-03 14:15 ` Sebastian Andrzej Siewior
2021-08-03 14:15 ` Sebastian Andrzej Siewior
2021-08-03 14:15 ` Sebastian Andrzej Siewior
2021-08-03 14:15 ` [Nouveau] " Sebastian Andrzej Siewior
2021-08-03 14:15 ` Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 01/38] Documentation: Replace deprecated CPU-hotplug functions Sebastian Andrzej Siewior
2021-08-27 23:53   ` [tip: smp/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 02/38] MIPS: " Sebastian Andrzej Siewior
2021-08-05  9:02   ` Thomas Bogendoerfer
2021-08-03 14:15 ` [PATCH 03/38] powerpc: " Sebastian Andrzej Siewior
2021-08-03 14:15   ` Sebastian Andrzej Siewior
2021-08-03 14:15   ` Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 04/38] s390: " Sebastian Andrzej Siewior
2021-08-03 15:40   ` Heiko Carstens
2021-08-03 14:15 ` [PATCH 05/38] s390/sclp: " Sebastian Andrzej Siewior
2021-08-03 15:40   ` Heiko Carstens
2021-08-03 14:15 ` [PATCH 06/38] x86/mmiotrace: " Sebastian Andrzej Siewior
2021-08-03 14:15   ` [Nouveau] " Sebastian Andrzej Siewior
2021-08-03 15:03   ` Karol Herbst
2021-08-03 15:03     ` Karol Herbst
2021-08-04  1:07   ` Steven Rostedt
2021-08-04  1:07     ` [Nouveau] " Steven Rostedt
2021-08-10 12:52   ` [tip: x86/cleanups] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 07/38] x86/mtrr: " Sebastian Andrzej Siewior
2021-08-10 12:52   ` [tip: x86/cleanups] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 08/38] x86/microcode: " Sebastian Andrzej Siewior
2021-08-10 12:52   ` [tip: x86/cleanups] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 09/38] x86/mce/inject: " Sebastian Andrzej Siewior
2021-08-10 12:52   ` [tip: x86/cleanups] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 10/38] perf/x86/intel: " Sebastian Andrzej Siewior
2021-08-10 13:04   ` [tip: perf/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-26  8:09   ` tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 11/38] perf/hw_breakpoint: " Sebastian Andrzej Siewior
2021-08-10 13:04   ` [tip: perf/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-26  8:09   ` tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 12/38] crypto: virtio: " Sebastian Andrzej Siewior
2021-08-03 14:15   ` Sebastian Andrzej Siewior
2021-08-12 11:36   ` Herbert Xu
2021-08-12 11:36     ` Herbert Xu
2021-08-03 14:15 ` [PATCH 13/38] hwmon: " Sebastian Andrzej Siewior
2021-08-03 15:29   ` Guenter Roeck
2021-08-03 14:15 ` [PATCH 14/38] coresight: " Sebastian Andrzej Siewior
2021-08-03 14:15   ` Sebastian Andrzej Siewior
2021-08-03 15:52   ` Mathieu Poirier
2021-08-03 15:52     ` Mathieu Poirier
2021-08-03 14:15 ` [PATCH 15/38] md/raid5: " Sebastian Andrzej Siewior
2021-08-05 16:20   ` Song Liu
2021-08-27 23:53   ` [tip: smp/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:15 ` [PATCH 16/38] sgi-xpc: " Sebastian Andrzej Siewior
2021-08-03 15:54   ` Steve Wahl
2021-08-03 21:30   ` Robin Holt
2021-08-03 14:16 ` [PATCH 17/38] platform/x86: " Sebastian Andrzej Siewior
2021-08-06 13:36   ` Hans de Goede
2021-08-03 14:16 ` [PATCH 18/38] powercap: intel_rapl: " Sebastian Andrzej Siewior
2021-08-04 18:14   ` Rafael J. Wysocki
2021-08-03 14:16 ` [PATCH 19/38] thermal: " Sebastian Andrzej Siewior
2021-08-14 10:52   ` Daniel Lezcano
2021-09-09 14:38   ` [thermal: thermal/next] thermal/drivers/intel_powerclamp: " thermal-bot for Sebastian Andrzej Siewior
2021-09-10 22:45   ` [tip: smp/urgent] thermal: " tip-bot2 for Sebastian Andrzej Siewior
2021-09-11 20:48     ` Daniel Lezcano
2021-09-11 21:11       ` Borislav Petkov
2021-08-03 14:16 ` [PATCH 20/38] mm: " Sebastian Andrzej Siewior
2021-08-27 23:53   ` [tip: smp/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:16 ` [PATCH 21/38] virtio_net: " Sebastian Andrzej Siewior
2021-08-03 14:16   ` Sebastian Andrzej Siewior
2021-08-04 22:41   ` Jakub Kicinski
2021-08-03 14:16 ` [PATCH 22/38] net/af_iucv: " Sebastian Andrzej Siewior
2021-08-04  6:36   ` Julian Wiedmann
2021-08-03 14:16 ` [PATCH 23/38] net: " Sebastian Andrzej Siewior
2021-08-03 14:16 ` [PATCH 24/38] cgroup: " Sebastian Andrzej Siewior
2021-08-03 14:16   ` Sebastian Andrzej Siewior
2021-08-09 22:37   ` Tejun Heo
2021-08-09 22:37     ` Tejun Heo
2021-08-03 14:16 ` [PATCH 25/38] genirq/affinity: " Sebastian Andrzej Siewior
2021-08-10 12:58   ` [tip: irq/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:16 ` [PATCH 26/38] livepatch: " Sebastian Andrzej Siewior
2021-08-04  7:52   ` Petr Mladek
2021-08-19 10:01     ` Jiri Kosina
2021-08-03 14:16 ` [PATCH 27/38] padata: " Sebastian Andrzej Siewior
2021-08-04 14:52   ` Daniel Jordan
2021-08-12 11:36   ` Herbert Xu
2021-08-03 14:16 ` [PATCH 28/38] cpufreq: " Sebastian Andrzej Siewior
2021-08-04 18:19   ` Rafael J. Wysocki
2021-08-03 14:16 ` [PATCH 29/38] ACPI: processor: " Sebastian Andrzej Siewior
2021-08-04 18:27   ` Rafael J. Wysocki
2021-08-03 14:16 ` [PATCH 30/38] ACPI: PM: s2idle: " Sebastian Andrzej Siewior
2021-08-04 18:20   ` Rafael J. Wysocki
2021-08-03 14:16 ` [PATCH 31/38] rcu: " Sebastian Andrzej Siewior
2021-08-03 16:00   ` Paul E. McKenney
2021-08-10 12:42     ` Thomas Gleixner
2021-08-10 18:20       ` Paul E. McKenney
2021-08-03 14:16 ` [PATCH 32/38] sched: " Sebastian Andrzej Siewior
2021-08-10 12:58   ` [tip: sched/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:16 ` [PATCH 33/38] smpboot: " Sebastian Andrzej Siewior
2021-08-10 13:04   ` [tip: smp/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:16 ` [PATCH 34/38] clocksource: " Sebastian Andrzej Siewior
2021-08-10 12:58   ` [tip: timers/core] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 14:16 ` [PATCH 35/38] torture: " Sebastian Andrzej Siewior
2021-08-03 14:16 ` [PATCH 36/38] tracing: " Sebastian Andrzej Siewior
2021-08-03 15:16   ` Daniel Bristot de Oliveira
2021-08-04  2:26   ` Steven Rostedt
2021-08-10 13:34     ` Sebastian Andrzej Siewior
2021-08-10 19:12       ` Steven Rostedt
2021-08-03 14:16 ` Sebastian Andrzej Siewior [this message]
2021-08-04  1:36   ` [PATCH 37/38] workqueue: " Lai Jiangshan
2021-08-09 22:33   ` Tejun Heo
2021-08-03 14:16 ` [PATCH 38/38] cpu/hotplug: Remove " Sebastian Andrzej Siewior
2021-09-10 22:45   ` [tip: smp/urgent] " tip-bot2 for Sebastian Andrzej Siewior
2021-08-03 15:30 ` [PATCH 00/38] Replace deprecated CPU-hotplug Hans de Goede
2021-08-03 15:30   ` Hans de Goede
2021-08-03 15:30   ` Hans de Goede
2021-08-03 15:30   ` Hans de Goede
2021-08-03 15:30   ` [Nouveau] " Hans de Goede
2021-08-03 15:30   ` Hans de Goede
2021-08-03 16:10   ` Sebastian Andrzej Siewior
2021-08-03 16:10     ` Sebastian Andrzej Siewior
2021-08-03 16:10     ` Sebastian Andrzej Siewior
2021-08-03 16:10     ` Sebastian Andrzej Siewior
2021-08-03 16:10     ` [Nouveau] " Sebastian Andrzej Siewior
2021-08-03 16:10     ` Sebastian Andrzej Siewior
2021-08-18 13:38 ` (subset) " Michael Ellerman

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=20210803141621.780504-38-bigeasy@linutronix.de \
    --to=bigeasy@linutronix.de \
    --cc=jiangshanlai@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.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.