On Mon, 12 Nov 2018 19:17:41 +0100 Peter Zijlstra <pet...@infradead.org> wrote:
> 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. I'm curious. Are there measurements to see how much longer they can take? Saying "_much_ longer" would require that one has done the timings to see what the actual impact is. > > So when someone bisects a problem to this commit; and he reads the > Changelog, he might get the impression that was unexpected. It may well be unexpected. What is the timing differences between a normal synchronize_rcu and a synchronize_sched. Of course, 99% of users wont see any difference as 99% don't run CONFIG_PREEMPT. -- Steve