summaryrefslogtreecommitdiffstats
path: root/kernel/rcu/tree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@kernel.org>2022-08-04 17:01:55 -0700
committerPaul E. McKenney <paulmck@kernel.org>2022-08-31 05:08:08 -0700
commita5d1b0b68a62afb1bce0b36cc9a1875acf8a6dff (patch)
tree0ace19912449521eb2fbfab4922d7e5e3d2e0bb7 /kernel/rcu/tree.c
parent258f887aba60c8fc7946a9f379f9a3889f92fc85 (diff)
downloadlinux-stable-a5d1b0b68a62afb1bce0b36cc9a1875acf8a6dff.tar.gz
linux-stable-a5d1b0b68a62afb1bce0b36cc9a1875acf8a6dff.tar.bz2
linux-stable-a5d1b0b68a62afb1bce0b36cc9a1875acf8a6dff.zip
rcu: Set rcu_data structures' initial ->gpwrap value to true
It would be good do reduce the size of the rcu_gp_oldstate structure from three unsigned long instances to two, but this requires that the boot-time optimized grace periods update the various ->gp_seq fields. Updating these fields in the rcu_state structure and in all of the rcu_node structures is at least semi-reasonable, but updating them in all of the rcu_data structures is a bridge too far. This means that if there are too many early boot-time grace periods, the ->gp_seq field in the rcu_data structure cannot be trusted. This commit therefore sets each rcu_data structure's ->gpwrap field to provide the necessary impetus for a suitable level of distrust. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'kernel/rcu/tree.c')
-rw-r--r--kernel/rcu/tree.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 5c4ec9dd4ce7..03b089184b37 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -76,6 +76,7 @@
/* Data structures. */
static DEFINE_PER_CPU_SHARED_ALIGNED(struct rcu_data, rcu_data) = {
+ .gpwrap = true,
#ifdef CONFIG_RCU_NOCB_CPU
.cblist.flags = SEGCBLIST_RCU_CORE,
#endif