Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c51d7b5e authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcutorture: Print time since GP end upon forward-progress failure



If rcutorture's forward-progress tests fail while a grace period is not
in progress, it is useful to print the time since the last grace period
ended as a way to detect failure to launch a new grace period.  This
commit therefore makes this change.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
parent 1a682754
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2000,7 +2000,8 @@ static void rcu_gp_cleanup(void)

	WRITE_ONCE(rcu_state.gp_activity, jiffies);
	raw_spin_lock_irq_rcu_node(rnp);
	gp_duration = jiffies - rcu_state.gp_start;
	rcu_state.gp_end = jiffies;
	gp_duration = rcu_state.gp_end - rcu_state.gp_start;
	if (gp_duration > rcu_state.gp_max)
		rcu_state.gp_max = gp_duration;

@@ -2686,6 +2687,8 @@ void rcu_fwd_progress_check(unsigned long j)
			__func__, jiffies - rcu_state.gp_start);
		show_rcu_gp_kthreads();
	} else {
		pr_info("%s: Last GP end %lu jiffies ago\n",
			__func__, jiffies - rcu_state.gp_end);
		preempt_disable();
		rdp = this_cpu_ptr(&rcu_data);
		rcu_check_gp_start_stall(rdp->mynode, rdp, j);
+2 −0
Original line number Diff line number Diff line
@@ -328,6 +328,8 @@ struct rcu_state {
						/*  force_quiescent_state(). */
	unsigned long gp_start;			/* Time at which GP started, */
						/*  but in jiffies. */
	unsigned long gp_end;			/* Time last GP ended, again */
						/*  in jiffies. */
	unsigned long gp_activity;		/* Time of last GP kthread */
						/*  activity in jiffies. */
	unsigned long gp_req_activity;		/* Time of last GP request */