Messages in this thread | | | Date | Fri, 23 Sep 2016 07:47:08 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [tip:sched/core] sched/core: Avoid _cond_resched() for PREEMPT=y |
| |
On Fri, Sep 23, 2016 at 10:44:42AM +0200, Peter Zijlstra wrote: > On Thu, Sep 22, 2016 at 01:28:17PM -0700, Paul E. McKenney wrote: > > On Thu, Sep 22, 2016 at 08:42:28PM +0200, Peter Zijlstra wrote: > > > On Thu, Sep 22, 2016 at 02:25:01PM -0400, Mikulas Patocka wrote: > > > > I've found a document that says that cond_resched() is needed on > > > > preemptible kernels to mark RCU quiescent states: > > > > > > > > https://lwn.net/Articles/603252/ > > > > > > > > Paul, is cond_resched() still needed on current RCU implementation? Or not? > > > > > > No, we ripped that out. See 4a81e8328d37 ("rcu: Reduce overhead of > > > cond_resched() checks for RCU") > > > > I would instead say that we changed the algorithm to reduce the overhead > > in the common case, but yes, this commit did change things quite a bit. > > Sure, but critical point (for this discussion) is that cond_resched() no > longer implies anything RCU, it really only is a voluntary reschedule > point.
Agreed, cond_resched_rcu_qs() is what you use to do both a cond_resched() and an RCU quiescent state.
Thanx, Paul
| |