diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2020-03-17 16:02:06 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2020-04-27 11:03:52 -0700 |
commit | 276c410448dbca357a2bc3539acfe04862e5f172 (patch) | |
tree | 5f25b125fb10b79997286884b3724f5415eb5b11 /init/init_task.c | |
parent | b0afa0f056676ffe0a7213818f09d2460adbcc16 (diff) | |
download | lwn-276c410448dbca357a2bc3539acfe04862e5f172.tar.gz lwn-276c410448dbca357a2bc3539acfe04862e5f172.zip |
rcu-tasks: Split ->trc_reader_need_end
This commit splits ->trc_reader_need_end by using the rcu_special union.
This change permits readers to check to see if a memory barrier is
required without any added overhead in the common case where no such
barrier is required. This commit also adds the read-side checking.
Later commits will add the machinery to properly set the new
->trc_reader_special.b.need_mb field.
This commit also makes rcu_read_unlock_trace_special() tolerate nested
read-side critical sections within interrupt and NMI handlers.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'init/init_task.c')
-rw-r--r-- | init/init_task.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/init/init_task.c b/init/init_task.c index e8b3740ee598..825972daec32 100644 --- a/init/init_task.c +++ b/init/init_task.c @@ -143,6 +143,7 @@ struct task_struct init_task #endif #ifdef CONFIG_TASKS_TRACE_RCU .trc_reader_nesting = 0, + .trc_reader_special.s = 0, .trc_holdout_list = LIST_HEAD_INIT(init_task.trc_holdout_list), #endif #ifdef CONFIG_CPUSETS |