Members rcu_state::levelcnt[] and rcu_state::levelspread[]
are only used at init. There is no reason to keep them
afterwards.

Cc: "Paul E. McKenney" <[email protected]>
Signed-off-by: Alexander Gordeev <[email protected]>
---
 kernel/rcu/tree.c | 29 ++++++++++++++++-------------
 kernel/rcu/tree.h |  2 --
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 6856096..ccea2c7 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3735,16 +3735,16 @@ void rcu_scheduler_starting(void)
  * or balancing the tree, depending on CONFIG_RCU_FANOUT_EXACT.
  */
 #ifdef CONFIG_RCU_FANOUT_EXACT
-static void __init rcu_init_levelspread(struct rcu_state *rsp)
+static void __init rcu_init_levelspread(int *levelspread, const int *levelcnt)
 {
        int i;
 
-       rsp->levelspread[rcu_num_lvls - 1] = rcu_fanout_leaf;
+       levelspread[rcu_num_lvls - 1] = rcu_fanout_leaf;
        for (i = rcu_num_lvls - 2; i >= 0; i--)
-               rsp->levelspread[i] = CONFIG_RCU_FANOUT;
+               levelspread[i] = CONFIG_RCU_FANOUT;
 }
 #else /* #ifdef CONFIG_RCU_FANOUT_EXACT */
-static void __init rcu_init_levelspread(struct rcu_state *rsp)
+static void __init rcu_init_levelspread(int *levelspread, const int *levelcnt)
 {
        int ccur;
        int cprv;
@@ -3752,8 +3752,8 @@ static void __init rcu_init_levelspread(struct rcu_state 
*rsp)
 
        cprv = nr_cpu_ids;
        for (i = rcu_num_lvls - 1; i >= 0; i--) {
-               ccur = rsp->levelcnt[i];
-               rsp->levelspread[i] = (cprv + ccur - 1) / ccur;
+               ccur = levelcnt[i];
+               levelspread[i] = (cprv + ccur - 1) / ccur;
                cprv = ccur;
        }
 }
@@ -3776,6 +3776,9 @@ static void __init rcu_init_one(struct rcu_state *rsp,
                "rcu_node_fqs_2",
                "rcu_node_fqs_3" };
        static u8 fl_mask = 0x1;
+
+       int levelcnt[RCU_NUM_LVLS];             /* # nodes in each level. */
+       int levelspread[RCU_NUM_LVLS];          /* kids/node in each level. */
        int cpustride = 1;
        int i;
        int j;
@@ -3790,19 +3793,19 @@ static void __init rcu_init_one(struct rcu_state *rsp,
        /* Initialize the level-tracking arrays. */
 
        for (i = 0; i < rcu_num_lvls; i++)
-               rsp->levelcnt[i] = num_rcu_lvl[i];
+               levelcnt[i] = num_rcu_lvl[i];
        for (i = 1; i < rcu_num_lvls; i++)
-               rsp->level[i] = rsp->level[i - 1] + rsp->levelcnt[i - 1];
-       rcu_init_levelspread(rsp);
+               rsp->level[i] = rsp->level[i - 1] + levelcnt[i - 1];
+       rcu_init_levelspread(levelspread, levelcnt);
        rsp->flavor_mask = fl_mask;
        fl_mask <<= 1;
 
        /* Initialize the elements themselves, starting from the leaves. */
 
        for (i = rcu_num_lvls - 1; i >= 0; i--) {
-               cpustride *= rsp->levelspread[i];
+               cpustride *= levelspread[i];
                rnp = rsp->level[i];
-               for (j = 0; j < rsp->levelcnt[i]; j++, rnp++) {
+               for (j = 0; j < levelcnt[i]; j++, rnp++) {
                        raw_spin_lock_init(&rnp->lock);
                        lockdep_set_class_and_name(&rnp->lock,
                                                   &rcu_node_class[i], buf[i]);
@@ -3822,10 +3825,10 @@ static void __init rcu_init_one(struct rcu_state *rsp,
                                rnp->grpmask = 0;
                                rnp->parent = NULL;
                        } else {
-                               rnp->grpnum = j % rsp->levelspread[i - 1];
+                               rnp->grpnum = j % levelspread[i - 1];
                                rnp->grpmask = 1UL << rnp->grpnum;
                                rnp->parent = rsp->level[i - 1] +
-                                             j / rsp->levelspread[i - 1];
+                                             j / levelspread[i - 1];
                        }
                        rnp->level = i;
                        INIT_LIST_HEAD(&rnp->blkd_tasks);
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
index 0f7a469..a3e4714 100644
--- a/kernel/rcu/tree.h
+++ b/kernel/rcu/tree.h
@@ -414,8 +414,6 @@ do {                                                        
                \
 struct rcu_state {
        struct rcu_node node[NUM_RCU_NODES];    /* Hierarchy. */
        struct rcu_node *level[RCU_NUM_LVLS];   /* Hierarchy levels. */
-       u32 levelcnt[RCU_NUM_LVLS];             /* # nodes in each level. */
-       u8 levelspread[RCU_NUM_LVLS];           /* kids/node in each level. */
        u8 flavor_mask;                         /* bit in flavor mask. */
        struct rcu_data __percpu *rda;          /* pointer of percu rcu_data. */
        void (*call)(struct rcu_head *head,     /* call_rcu() flavor. */
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to