Re: [PATCH] rcu: Report a quiescent state of TASKS_RCU on a tick from user

From: Paul E. McKenney
Date: Tue May 15 2018 - 00:09:52 EST


On Tue, May 15, 2018 at 09:33:46AM +0900, Byungchul Park wrote:
> Hello Paul,
>
> You removed the reporing while simplifying the commit 508880df6 :)
> Fold this patch onto the commit or add, whatever you want.

First, thank you for checking!

But second, the removal was intentional. Tiny RCU only exists in
PREEMPT=n kernels, and in such kernels there can be no RCU-tasks.
This is the reason for this line in the new commit log:

[ paulmck: Simplify rcutiny portion given no RCU-tasks for !PREEMPT. ]

Thanx, Paul

> Thanks,
> Byungchul
>
> ----->8-----
> >From 18a2d8da3baf79d0edd5ccf94abe6f989da5b1c1 Mon Sep 17 00:00:00 2001
> From: Byungchul Park <byungchul.park@xxxxxxx>
> Date: Tue, 15 May 2018 09:21:43 +0900
> Subject: [PATCH] rcu: Report a quiescent state of TASKS_RCU on a tick from
> user
>
> The reporting was removed while simplifying the commit 508880df6 (rcu:
> Improve rcu_note_voluntary_context_switch() reporting). Add it back.
>
> Signed-off-by: Byungchul Park <byungchul.park@xxxxxxx>
> ---
> kernel/rcu/tiny.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
> index befc932..3345596 100644
> --- a/kernel/rcu/tiny.c
> +++ b/kernel/rcu/tiny.c
> @@ -120,8 +120,10 @@ void rcu_bh_qs(void)
> */
> void rcu_check_callbacks(int user)
> {
> - if (user)
> + if (user) {
> rcu_sched_qs();
> + rcu_tasks_qs();
> + }
> if (user || !in_softirq())
> rcu_bh_qs();
> }
> --
> 1.9.1
>