RE: [PATCH v4 4/4] rcu: Add RCU stall diagnosis information

From: Elliott, Robert (Servers)
Date: Tue Nov 08 2022 - 14:30:01 EST



> Maybe we should add another member to record jiffies.
>
> diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
> index b33165dba1ea745..6d9c876ea5c85a6 100644
> --- a/kernel/rcu/tree.c
> +++ b/kernel/rcu/tree.c
> @@ -880,6 +880,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data
> *rdp)
> rsrp->nr_hardirqs = kstat_cpu_irqs_sum(rdp->cpu);
> rsrp->nr_softirqs = kstat_cpu_softirqs_sum(rdp-
> >cpu);
> rsrp->nr_csw = nr_context_switches_cpu(rdp->cpu);
> + rsrp->jiffies = jiffies;
> rsrp->gp_seq = rdp->gp_seq;

Yes, that works:

[ 252.139108] tcrypt: rcu testing - kernel_fpu_disable for rude 22 s
[ 255.140204] rcu: INFO: rcu_preempt self-detected stall on CPU 39
[ 255.146438] rcu: CPU 39-....: (2995 ticks this GP) idle=5014/1/0x4000000000000000 softirq=2373/2374 fqs=751
[ 255.156512] rcu: CPU 39 hardirqs softirqs csw system cond_resched
[ 255.165182] rcu: CPU 39 count: 0 3 0 0
[ 255.173853] rcu: CPU 39 cputime: 3 0 1493 ==> 1530 (ms)
[ 255.183746] rcu: CPU 39 current: in_kernel_fpu_begin=1 preemptible=0
[ 255.190407] rcu: CPU 39 self-detected stall t=3051 jiffies g=18181 q=373 ncpus=56
[ 255.198205] CPU: 39 PID: 2607 Comm: modprobe Not tainted 6.0.0+ #14
...
[ 264.450164] rcu: INFO: rcu_preempt self-detected stall on CPU 39
[ 264.456416] rcu: CPU 39-...k.: (12000 ticks this GP) idle=5014/1/0x4000000000000000 softirq=2373/2374 fqs=3006
[ 264.466690] rcu: CPU 39 hardirqs softirqs csw system cond_resched
[ 264.475390] rcu: CPU 39 count: 0 21 0 0
[ 264.484092] rcu: CPU 39 cputime: 328 0 8982 ==> 9293 (ms)
[ 264.494015] rcu: CPU 39 current: in_kernel_fpu_begin=1 preemptible=0
[ 264.500706] rcu: CPU 39 self-detected stall t=12361 jiffies g=18181 q=601 ncpus=56
[ 264.508619] CPU: 39 PID: 2607 Comm: modprobe Not tainted 6.0.0+ #14
...
[ 273.760124] rcu: INFO: rcu_preempt self-detected stall on CPU 39
[ 273.766376] rcu: CPU 39-....: (21004 ticks this GP) idle=5014/1/0x4000000000000000 softirq=2373/2374 fqs=5262
[ 273.776649] rcu: CPU 39 hardirqs softirqs csw system cond_resched
[ 273.785348] rcu: CPU 39 count: 0 17 0 0
[ 273.794050] rcu: CPU 39 cputime: 328 0 8981 ==> 9293 (ms)
[ 273.803971] rcu: CPU 39 current: in_kernel_fpu_begin=1 preemptible=0
[ 273.810660] rcu: CPU 39 self-detected stall t=21671 jiffies g=18181 q=1112 ncpus=56
[ 273.818659] CPU: 39 PID: 2607 Comm: modprobe Not tainted 6.0.0+ #14