aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/rcu
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2020-03-17 08:57:02 -0700
committerPaul E. McKenney <paulmck@kernel.org>2020-04-27 11:03:52 -0700
commit88092d0c99d7584d50cc8caadb8fa9ff8a1d4ea0 (patch)
tree90ea681eed768a5f7eef4ff72f57637d9406f03c /kernel/rcu
parentrcu-tasks: Make RCU Tasks Trace make use of RCU scheduler hooks (diff)
downloadlinux-dev-88092d0c99d7584d50cc8caadb8fa9ff8a1d4ea0.tar.xz
linux-dev-88092d0c99d7584d50cc8caadb8fa9ff8a1d4ea0.zip
rcu-tasks: Add a grace-period start time for throttling and debug
This commit adds a place to record the grace-period start in jiffies. This will be used by later commits for debugging purposes and to throttle IPIs early in the grace period. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'kernel/rcu')
-rw-r--r--kernel/rcu/tasks.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index 6f8a4040fbdd..71462cf3d4bd 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -46,6 +46,7 @@ struct rcu_tasks {
raw_spinlock_t cbs_lock;
int gp_state;
unsigned long gp_jiffies;
+ unsigned long gp_start;
struct task_struct *kthread_ptr;
rcu_tasks_gp_func_t gp_func;
pregp_func_t pregp_func;
@@ -200,6 +201,7 @@ static int __noreturn rcu_tasks_kthread(void *arg)
// Wait for one grace period.
set_tasks_gp_state(rtp, RTGS_WAIT_GP);
+ rtp->gp_start = jiffies;
rtp->gp_func(rtp);
/* Invoke the callbacks. */