Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1187253
| From | "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH tip/core/rcu 08/12] rcu: Remove unnecessary fields from rcu_state structure |
| Date | 2015-07-18 00:40 +0200 |
| Message-ID | <pNmsq-2cc-13@gated-at.bofh.it> (permalink) |
| References | <pNmsp-2cc-1@gated-at.bofh.it> <pNmsq-2cc-7@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Alexander Gordeev <agordeev@redhat.com>
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" <paulmck@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
kernel/rcu/tree.c | 27 +++++++++++++++------------
kernel/rcu/tree.h | 2 --
2 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 2ec7b796f660..7226e25ba97f 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3967,22 +3967,22 @@ void rcu_scheduler_starting(void)
* Compute the per-level fanout, either using the exact fanout specified
* or balancing the tree, depending on the rcu_fanout_exact boot parameter.
*/
-static void __init rcu_init_levelspread(struct rcu_state *rsp)
+static void __init rcu_init_levelspread(int *levelspread, const int *levelcnt)
{
int i;
if (rcu_fanout_exact) {
- 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] = RCU_FANOUT;
+ levelspread[i] = RCU_FANOUT;
} else {
int ccur;
int cprv;
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;
}
}
@@ -4005,6 +4005,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;
@@ -4019,19 +4022,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]);
@@ -4051,10 +4054,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 d625e9ff0faf..3413f3c5c8b2 100644
--- a/kernel/rcu/tree.h
+++ b/kernel/rcu/tree.h
@@ -441,8 +441,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.1.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH tip/core/rcu 0/12] Tree geometry-initialization simplifications for 4.3 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 03/12] rcu: Remove superfluous local variable in rcu_init_geometry() "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 08/12] rcu: Remove unnecessary fields from rcu_state structure "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 12/12] rcu: Reset rcu_fanout_leaf if out of bounds "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 11/12] rcu: Shut up bogus gcc array bounds warning "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 10/12] rcu: Simplify arithmetic to calculate number of RCU nodes "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 05/12] rcu: Simplify rcu_init_geometry() capacity arithmetics "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 09/12] rcu: Limit count of static data to the number of RCU levels "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 01/12] rcu: Provide more diagnostics for stalled GP kthread "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 04/12] rcu: Cleanup rcu_init_geometry() code and arithmetics "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 02/12] rcu: Panic if RCU tree can not accommodate all CPUs "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 07/12] rcu: Limit rcu_capacity[] size to RCU_NUM_LVLS items "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
[PATCH tip/core/rcu 06/12] rcu: Limit rcu_state::levelcnt[] to RCU_NUM_LVLS items "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-07-18 00:40 +0200
csiph-web