linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: "Paul E. McKenney" <paulmck@linux.ibm.com>
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, rostedt@goodmis.org,
	dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com,
	oleg@redhat.com, joel@joelfernandes.org,
	Ingo Molnar <mingo@redhat.com>
Subject: Re: [PATCH tip/core/rcu 23/41] sched: Replace synchronize_sched() with synchronize_rcu()
Date: Mon, 12 Nov 2018 19:17:41 +0100	[thread overview]
Message-ID: <20181112181741.GA3097@worktop.psav.com> (raw)
In-Reply-To: <20181112132852.GH4170@linux.ibm.com>

On Mon, Nov 12, 2018 at 05:28:52AM -0800, Paul E. McKenney wrote:
> On Mon, Nov 12, 2018 at 10:00:47AM +0100, Peter Zijlstra wrote:

> > Still, better safe than sorry. It was a rather big change in behaviour,
> > so it wouldn't have been strange to call that out.
> 
> This guy:
> 
> 45975c7d21a1 ("rcu: Define RCU-sched API in terms of RCU for Tree RCU PREEMPT builds")
> 
> Has a commit log that says:
> 
> 	Now that RCU-preempt knows about preemption disabling, its
> 	implementation of synchronize_rcu() works for synchronize_sched(),
> 	and likewise for the other RCU-sched update-side API members.
> 	This commit therefore confines the RCU-sched update-side code
> 	to CONFIG_PREEMPT=n builds, and defines RCU-sched's update-side
> 	API members in terms of those of RCU-preempt.
> 
> That last phrase seems pretty explicit.  What am I missing here?

That does not explicitly state that because RCU-preempt
synchornize_rcu() can take _much_ longer, the new synchronize_sched()
can now take _much_ longer too.

So when someone bisects a problem to this commit; and he reads the
Changelog, he might get the impression that was unexpected.

> Not that it matters, given that I know of no way to change a mainlined
> commit log.  I suppose I could ask Jon if he would be willing to take
> a 2018 RCU API LWN article, if that would help.

Yes, it is water under the bridge; but Changelogs should be explicit
about behavioural changes.

And while the merged RCU has the semantic behaviour required, the timing
behaviour did change significantly.

> > > > Again, the patch didn't say that.
> > > > 
> > > > If the Changelog would've read something like:
> > > > 
> > > > "Since synchronize_sched() is now equivalent to synchronize_rcu(),
> > > > replace the synchronize_sched() usage such that we can eventually remove
> > > > the interface."
> > > > 
> > > > It would've been clear that the patch is a nop and what the purpose
> > > > was.
> > > 
> > > I can easily make that change.
> > 
> > Please, sufficient doesn't imply necessary etc.. A changelog should
> > always clarify why we do the patch.
> 
> ???  Did you mean to say "necessary doesn't imply sufficient"?  If so,
> what else do you feel is missing?

No, I meant to say that your original Changelog only states that
sync_rcu now covers rcu-sched behaviour.  Which means that the change is
sufficient.

It completely and utterly fails to explain _why_ you're doing the
change. Ie. you do not address why it is necessary.

A Changelog should always explain why the change is needed.

In this case because you want to get rid of the sync_sched() api.

  reply	other threads:[~2018-11-12 18:18 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 [this message]
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
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=20181112181741.GA3097@worktop.psav.com \
    --to=peterz@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=dipankar@in.ibm.com \
    --cc=edumazet@google.com \
    --cc=fweisbec@gmail.com \
    --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=mingo@redhat.com \
    --cc=oleg@redhat.com \
    --cc=paulmck@linux.ibm.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 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).