On 22.08.2016 19:44, Paul E. McKenney wrote: > On Mon, Aug 22, 2016 at 07:19:53PM +0300, Nikolay Borisov wrote: >> >> [SNIP] >>> >>> Signed-off-by: Ding Tianhong <dingtianh...@huawei.com> >>> [ paulmck: Substituted cond_resched_rcu_qs for cond_resched. ] >> >> This contradicts... >> >>> Signed-off-by: Paul E. McKenney <paul...@linux.vnet.ibm.com> >>> --- >>> kernel/rcu/tree_plugin.h | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h >>> index 0082fce402a0..85c5a883c6e3 100644 >>> --- a/kernel/rcu/tree_plugin.h >>> +++ b/kernel/rcu/tree_plugin.h >>> @@ -2173,6 +2173,7 @@ static int rcu_nocb_kthread(void *arg) >>> cl++; >>> c++; >>> local_bh_enable(); >>> + cond_resched_rcu_qs(); >> >> with what's here? > > Ding Tianhong's original patch: > > http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1167918.html > > had cond_resched() here, which works for his workload, but can result > in stall warnings in other cases. I therfore changed his cond_resched() > to the cond_resched_rcu_qs() that you see above, and documented this > change in the "paulmck" note after Ding Tianhong's Signed-off-by.
I think my english escaped me since I took your paulmck note as "we had cond_resched_rcu_qs initially and I replaced it with cond_resched". But apparently it was the opposite. Cheers, Nik > > So all is as it should be. > > Thanx, Paul > >>> list = next; >>> } >>> trace_rcu_batch_end(rdp->rsp->name, c, !!list, 0, 0, 1); >>> >> >