rcu: Add ->rt_priority and ->gp_start to show_rcu_gp_kthreads() output
This commit adds ->rt_priority and ->gp_start to show_rcu_gp_kthreads() output in order to better diagnose RCU priority boosting failures. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
parent
8e4b1d2bc1
commit
e44111ed20
|
@ -726,6 +726,7 @@ void show_rcu_gp_kthreads(void)
|
||||||
unsigned long j;
|
unsigned long j;
|
||||||
unsigned long ja;
|
unsigned long ja;
|
||||||
unsigned long jr;
|
unsigned long jr;
|
||||||
|
unsigned long js;
|
||||||
unsigned long jw;
|
unsigned long jw;
|
||||||
struct rcu_data *rdp;
|
struct rcu_data *rdp;
|
||||||
struct rcu_node *rnp;
|
struct rcu_node *rnp;
|
||||||
|
@ -734,11 +735,12 @@ void show_rcu_gp_kthreads(void)
|
||||||
j = jiffies;
|
j = jiffies;
|
||||||
ja = j - data_race(rcu_state.gp_activity);
|
ja = j - data_race(rcu_state.gp_activity);
|
||||||
jr = j - data_race(rcu_state.gp_req_activity);
|
jr = j - data_race(rcu_state.gp_req_activity);
|
||||||
|
js = j - data_race(rcu_state.gp_start);
|
||||||
jw = j - data_race(rcu_state.gp_wake_time);
|
jw = j - data_race(rcu_state.gp_wake_time);
|
||||||
pr_info("%s: wait state: %s(%d) ->state: %#lx delta ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_flags %#x\n",
|
pr_info("%s: wait state: %s(%d) ->state: %#lx ->rt_priority %u delta ->gp_start %lu ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_flags %#x\n",
|
||||||
rcu_state.name, gp_state_getname(rcu_state.gp_state),
|
rcu_state.name, gp_state_getname(rcu_state.gp_state),
|
||||||
rcu_state.gp_state, t ? t->state : 0x1ffffL,
|
rcu_state.gp_state, t ? t->state : 0x1ffffL, t ? t->rt_priority : 0xffU,
|
||||||
ja, jr, jw, (long)data_race(rcu_state.gp_wake_seq),
|
js, ja, jr, jw, (long)data_race(rcu_state.gp_wake_seq),
|
||||||
(long)data_race(rcu_state.gp_seq),
|
(long)data_race(rcu_state.gp_seq),
|
||||||
(long)data_race(rcu_get_root()->gp_seq_needed),
|
(long)data_race(rcu_get_root()->gp_seq_needed),
|
||||||
data_race(rcu_state.gp_flags));
|
data_race(rcu_state.gp_flags));
|
||||||
|
|
Loading…
Reference in New Issue