public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.ibm.com>
To: Jessica Yu <jeyu@kernel.org>
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org,
	jiangshanlai@gmail.com, dipankar@in.ibm.com,
	akpm@linux-foundation.org, mathieu.desnoyers@efficios.com,
	josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org,
	rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com,
	fweisbec@gmail.com, oleg@redhat.com, joel@joelfernandes.org
Subject: Re: [PATCH tip/core/rcu 24/41] modules: Replace synchronize_sched() and call_rcu_sched()
Date: Mon, 12 Nov 2018 08:31:39 -0800	[thread overview]
Message-ID: <20181112163139.GN4170@linux.ibm.com> (raw)
In-Reply-To: <20181112124852.GA11833@linux-8ccs>

On Mon, Nov 12, 2018 at 01:48:52PM +0100, Jessica Yu wrote:
> +++ Paul E. McKenney [11/11/18 11:43 -0800]:
> >Now that synchronize_rcu() waits for preempt-disable regions of code
> >as well as RCU read-side critical sections, synchronize_sched() can
> >be replaced by synchronize_rcu().  Similarly, call_rcu_sched() can be
> >replaced by call_rcu().  This commit therefore makes these changes.
> >
> >Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
> >Cc: Jessica Yu <jeyu@kernel.org>
> 
> Acked-by: Jessica Yu <jeyu@kernel.org>

Applied, thank you!

							Thanx, Paul

> Thanks!
> 
> >---
> >kernel/module.c | 14 +++++++-------
> >1 file changed, 7 insertions(+), 7 deletions(-)
> >
> >diff --git a/kernel/module.c b/kernel/module.c
> >index 49a405891587..99b46c32d579 100644
> >--- a/kernel/module.c
> >+++ b/kernel/module.c
> >@@ -2159,7 +2159,7 @@ static void free_module(struct module *mod)
> >	/* Remove this module from bug list, this uses list_del_rcu */
> >	module_bug_cleanup(mod);
> >	/* Wait for RCU-sched synchronizing before releasing mod->list and buglist. */
> >-	synchronize_sched();
> >+	synchronize_rcu();
> >	mutex_unlock(&module_mutex);
> >
> >	/* This may be empty, but that's OK */
> >@@ -3507,15 +3507,15 @@ static noinline int do_init_module(struct module *mod)
> >	/*
> >	 * We want to free module_init, but be aware that kallsyms may be
> >	 * walking this with preempt disabled.  In all the failure paths, we
> >-	 * call synchronize_sched(), but we don't want to slow down the success
> >+	 * call synchronize_rcu(), but we don't want to slow down the success
> >	 * path, so use actual RCU here.
> >	 * Note that module_alloc() on most architectures creates W+X page
> >	 * mappings which won't be cleaned up until do_free_init() runs.  Any
> >	 * code such as mark_rodata_ro() which depends on those mappings to
> >	 * be cleaned up needs to sync with the queued work - ie
> >-	 * rcu_barrier_sched()
> >+	 * rcu_barrier()
> >	 */
> >-	call_rcu_sched(&freeinit->rcu, do_free_init);
> >+	call_rcu(&freeinit->rcu, do_free_init);
> >	mutex_unlock(&module_mutex);
> >	wake_up_all(&module_wq);
> >
> >@@ -3526,7 +3526,7 @@ static noinline int do_init_module(struct module *mod)
> >fail:
> >	/* Try to protect us from buggy refcounters. */
> >	mod->state = MODULE_STATE_GOING;
> >-	synchronize_sched();
> >+	synchronize_rcu();
> >	module_put(mod);
> >	blocking_notifier_call_chain(&module_notify_list,
> >				     MODULE_STATE_GOING, mod);
> >@@ -3819,7 +3819,7 @@ static int load_module(struct load_info *info, const char __user *uargs,
> > ddebug_cleanup:
> >	ftrace_release_mod(mod);
> >	dynamic_debug_remove(mod, info->debug);
> >-	synchronize_sched();
> >+	synchronize_rcu();
> >	kfree(mod->args);
> > free_arch_cleanup:
> >	module_arch_cleanup(mod);
> >@@ -3834,7 +3834,7 @@ static int load_module(struct load_info *info, const char __user *uargs,
> >	mod_tree_remove(mod);
> >	wake_up_all(&module_wq);
> >	/* Wait for RCU-sched synchronizing before releasing mod->list. */
> >-	synchronize_sched();
> >+	synchronize_rcu();
> >	mutex_unlock(&module_mutex);
> > free_module:
> >	/* Free lock-classes; relies on the preceding sync_rcu() */
> >-- 
> >2.17.1
> >
> 


  reply	other threads:[~2018-11-12 16:31 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-11 19:41 [PATCH tip/core/rcu 0/41] More RCU flavor consolidation cleanup for v4.21/v5.0 Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 01/41] rcu: Remove unused rcu_state externs Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 02/41] rcu: Fix rcu_{node,data} comments about gp_seq_needed Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 03/41] rcu: Eliminate synchronize_rcu_mult() Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 04/41] rcu: Consolidate the RCU update functions invoked by sync.c Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 05/41] sched/membarrier: Replace synchronize_sched() with synchronize_rcu() Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 06/41] sparc/oprofile: Convert timer_stop() to use synchronize_rcu() Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 07/41] s390/mm: Convert tlb_table_flush() to use call_rcu() Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 08/41] powerpc: Convert hugepd_free() " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 09/41] crypto/pcrypt: Replace synchronize_rcu_bh() with synchronize_rcu() Paul E. McKenney
2018-11-16  5:56   ` Herbert Xu
2018-11-27 17:19     ` Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 10/41] drivers/ipmi: Replace synchronize_sched() " Paul E. McKenney
2018-11-12 15:38   ` Corey Minyard
2018-11-12 16:04     ` Paul E. McKenney
2018-11-12 16:15       ` Corey Minyard
2018-11-12 16:28         ` Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 11/41] ethernet/sis: " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 12/41] ethernet/realtek: " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 13/41] ethernet/intel/ixgbe: " Paul E. McKenney
2018-11-13 16:54   ` [Intel-wired-lan] " Bowers, AndrewX
2018-11-11 19:43 ` [PATCH tip/core/rcu 14/41] drivers/vhost: Replace synchronize_rcu_bh() " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 15/41] cpufreq/intel_pstate: Replace synchronize_sched() " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 16/41] cpufreq/cpufreq_governor: " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 17/41] fs/file: " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 18/41] tracing: Replace synchronize_sched() and call_rcu_sched() Paul E. McKenney
2018-11-12  2:09   ` Steven Rostedt
2018-11-11 19:43 ` [PATCH tip/core/rcu 19/41] main: Replace rcu_barrier_sched() with rcu_barrier() Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 20/41] kprobes: eplace synchronize_sched() with synchronize_rcu() Paul E. McKenney
2018-11-12  3:00   ` Masami Hiramatsu
2018-11-12  3:19     ` Paul E. McKenney
2018-11-13 18:08       ` Masami Hiramatsu
2018-11-13 19:22         ` Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 21/41] lockdep: Replace " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 22/41] sched/membarrier: " Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 23/41] sched: Replace " Paul E. McKenney
2018-11-12  0:12   ` Peter Zijlstra
2018-11-12  0:45     ` Paul E. McKenney
2018-11-12  0:53       ` Peter Zijlstra
2018-11-12  1:47         ` Paul E. McKenney
2018-11-12  2:07           ` Peter Zijlstra
2018-11-12  2:24             ` Paul E. McKenney
2018-11-12  9:00               ` Peter Zijlstra
2018-11-12 13:28                 ` Paul E. McKenney
2018-11-12 18:17                   ` Peter Zijlstra
2018-11-12 20:20                     ` Steven Rostedt
2018-11-12 22:21                     ` Paul E. McKenney
2018-11-26 19:59                       ` Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 24/41] modules: Replace synchronize_sched() and call_rcu_sched() Paul E. McKenney
2018-11-12 12:48   ` Jessica Yu
2018-11-12 16:31     ` Paul E. McKenney [this message]
2018-11-11 19:43 ` [PATCH tip/core/rcu 25/41] workqueue: Replace call_rcu_sched() with call_rcu() Paul E. McKenney
2018-11-13 15:48   ` Tejun Heo
2018-11-13 19:21     ` Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 26/41] events: Replace synchronize_sched() with synchronize_rcu() Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 27/41] percpu-refcount: Replace call_rcu_sched() with call_rcu() Paul E. McKenney
2018-11-13 15:48   ` Tejun Heo
2018-11-11 19:43 ` [PATCH tip/core/rcu 28/41] slab: Replace synchronize_sched() with synchronize_rcu() Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 29/41] mm: Replace call_rcu_sched() with call_rcu() Paul E. McKenney
2018-11-11 19:43 ` [PATCH tip/core/rcu 30/41] netfilter: Replace call_rcu_bh(), rcu_barrier_bh(), and synchronize_rcu_bh() Paul E. McKenney
2018-12-01 11:35   ` Pablo Neira Ayuso
2018-11-11 19:44 ` [PATCH tip/core/rcu 31/41] net/sched: Replace call_rcu_bh() and rcu_barrier_bh() Paul E. McKenney
2018-11-11 19:44 ` [PATCH tip/core/rcu 32/41] net/core: Replace call_rcu_bh() and synchronize_rcu_bh() Paul E. McKenney
2018-11-11 19:44 ` [PATCH tip/core/rcu 33/41] net/bridge: Replace call_rcu_bh() and rcu_barrier_bh() Paul E. McKenney
2018-11-13  0:29   ` Nikolay Aleksandrov
2018-11-11 19:44 ` [PATCH tip/core/rcu 34/41] percpu-rwsem: Replace synchronize_sched() with synchronize_rcu() Paul E. McKenney
2018-11-13 15:49   ` Tejun Heo
2018-11-11 19:44 ` [PATCH tip/core/rcu 35/41] types: Remove call_rcu_bh() and call_rcu_sched() Paul E. McKenney
2018-11-11 19:44 ` [PATCH tip/core/rcu 36/41] cgroups: Replace synchronize_sched() with synchronize_rcu() Paul E. McKenney
2018-11-13 15:50   ` Tejun Heo
2018-11-11 19:44 ` [PATCH tip/core/rcu 37/41] livepatch: " Paul E. McKenney
2018-11-11 19:44 ` [PATCH tip/core/rcu 38/41] net/core/skmsg: Replace call_rcu_sched() with call_rcu() Paul E. McKenney
2018-11-11 19:44 ` [PATCH tip/core/rcu 39/41] net/decnet: Replace rcu_barrier_bh() with rcu_barrier() Paul E. McKenney
2018-11-11 19:44 ` [PATCH tip/core/rcu 40/41] tools/kernel.h: Replace synchronize_sched() with synchronize_rcu() Paul E. McKenney
2018-11-11 19:44 ` [PATCH tip/core/rcu 41/41] rcutorture/formal: " Paul E. McKenney
2018-11-12 14:07 ` [PATCH tip/core/rcu 0/41] More RCU flavor consolidation cleanup for v4.21/v5.0 Mathieu Desnoyers
2018-11-12 16:01   ` Paul E. McKenney
2018-11-12 21:40     ` Sasha Levin
2018-11-12 22:16       ` Paul E. McKenney

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=20181112163139.GN4170@linux.ibm.com \
    --to=paulmck@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jeyu@kernel.org \
    --cc=jiangshanlai@gmail.com \
    --cc=joel@joelfernandes.org \
    --cc=josh@joshtriplett.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox