diff options
| -rw-r--r-- | kernel/rcu/tree.c | 21 | ||||
| -rw-r--r-- | kernel/rcu/tree.h | 12 |
2 files changed, 16 insertions, 17 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 7226e25ba97f..e53bbc53bcd5 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c | |||
| @@ -124,13 +124,8 @@ module_param(rcu_fanout_exact, bool, 0444); | |||
| 124 | static int rcu_fanout_leaf = RCU_FANOUT_LEAF; | 124 | static int rcu_fanout_leaf = RCU_FANOUT_LEAF; |
| 125 | module_param(rcu_fanout_leaf, int, 0444); | 125 | module_param(rcu_fanout_leaf, int, 0444); |
| 126 | int rcu_num_lvls __read_mostly = RCU_NUM_LVLS; | 126 | int rcu_num_lvls __read_mostly = RCU_NUM_LVLS; |
| 127 | static int num_rcu_lvl[] = { /* Number of rcu_nodes at specified level. */ | 127 | /* Number of rcu_nodes at specified level. */ |
| 128 | NUM_RCU_LVL_0, | 128 | static int num_rcu_lvl[] = NUM_RCU_LVL_INIT; |
| 129 | NUM_RCU_LVL_1, | ||
| 130 | NUM_RCU_LVL_2, | ||
| 131 | NUM_RCU_LVL_3, | ||
| 132 | NUM_RCU_LVL_4, | ||
| 133 | }; | ||
| 134 | int rcu_num_nodes __read_mostly = NUM_RCU_NODES; /* Total # rcu_nodes in use. */ | 129 | int rcu_num_nodes __read_mostly = NUM_RCU_NODES; /* Total # rcu_nodes in use. */ |
| 135 | 130 | ||
| 136 | /* | 131 | /* |
| @@ -3994,16 +3989,8 @@ static void __init rcu_init_levelspread(int *levelspread, const int *levelcnt) | |||
| 3994 | static void __init rcu_init_one(struct rcu_state *rsp, | 3989 | static void __init rcu_init_one(struct rcu_state *rsp, |
| 3995 | struct rcu_data __percpu *rda) | 3990 | struct rcu_data __percpu *rda) |
| 3996 | { | 3991 | { |
| 3997 | static const char * const buf[] = { | 3992 | static const char * const buf[] = RCU_NODE_NAME_INIT; |
| 3998 | "rcu_node_0", | 3993 | static const char * const fqs[] = RCU_FQS_NAME_INIT; |
| 3999 | "rcu_node_1", | ||
| 4000 | "rcu_node_2", | ||
| 4001 | "rcu_node_3" }; | ||
| 4002 | static const char * const fqs[] = { | ||
| 4003 | "rcu_node_fqs_0", | ||
| 4004 | "rcu_node_fqs_1", | ||
| 4005 | "rcu_node_fqs_2", | ||
| 4006 | "rcu_node_fqs_3" }; | ||
| 4007 | static u8 fl_mask = 0x1; | 3994 | static u8 fl_mask = 0x1; |
| 4008 | 3995 | ||
| 4009 | int levelcnt[RCU_NUM_LVLS]; /* # nodes in each level. */ | 3996 | int levelcnt[RCU_NUM_LVLS]; /* # nodes in each level. */ |
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index 3413f3c5c8b2..d44856b6170a 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h | |||
| @@ -68,6 +68,9 @@ | |||
| 68 | # define NUM_RCU_LVL_2 0 | 68 | # define NUM_RCU_LVL_2 0 |
| 69 | # define NUM_RCU_LVL_3 0 | 69 | # define NUM_RCU_LVL_3 0 |
| 70 | # define NUM_RCU_LVL_4 0 | 70 | # define NUM_RCU_LVL_4 0 |
| 71 | # define NUM_RCU_LVL_INIT { NUM_RCU_LVL_0 } | ||
| 72 | # define RCU_NODE_NAME_INIT { "rcu_node_0" } | ||
| 73 | # define RCU_FQS_NAME_INIT { "rcu_node_fqs_0" } | ||
| 71 | #elif NR_CPUS <= RCU_FANOUT_2 | 74 | #elif NR_CPUS <= RCU_FANOUT_2 |
| 72 | # define RCU_NUM_LVLS 2 | 75 | # define RCU_NUM_LVLS 2 |
| 73 | # define NUM_RCU_LVL_0 1 | 76 | # define NUM_RCU_LVL_0 1 |
| @@ -75,6 +78,9 @@ | |||
| 75 | # define NUM_RCU_LVL_2 (NR_CPUS) | 78 | # define NUM_RCU_LVL_2 (NR_CPUS) |
| 76 | # define NUM_RCU_LVL_3 0 | 79 | # define NUM_RCU_LVL_3 0 |
| 77 | # define NUM_RCU_LVL_4 0 | 80 | # define NUM_RCU_LVL_4 0 |
| 81 | # define NUM_RCU_LVL_INIT { NUM_RCU_LVL_0, NUM_RCU_LVL_1 } | ||
| 82 | # define RCU_NODE_NAME_INIT { "rcu_node_0", "rcu_node_1" } | ||
| 83 | # define RCU_FQS_NAME_INIT { "rcu_node_fqs_0", "rcu_node_fqs_1" } | ||
| 78 | #elif NR_CPUS <= RCU_FANOUT_3 | 84 | #elif NR_CPUS <= RCU_FANOUT_3 |
| 79 | # define RCU_NUM_LVLS 3 | 85 | # define RCU_NUM_LVLS 3 |
| 80 | # define NUM_RCU_LVL_0 1 | 86 | # define NUM_RCU_LVL_0 1 |
| @@ -82,6 +88,9 @@ | |||
| 82 | # define NUM_RCU_LVL_2 DIV_ROUND_UP(NR_CPUS, RCU_FANOUT_1) | 88 | # define NUM_RCU_LVL_2 DIV_ROUND_UP(NR_CPUS, RCU_FANOUT_1) |
| 83 | # define NUM_RCU_LVL_3 (NR_CPUS) | 89 | # define NUM_RCU_LVL_3 (NR_CPUS) |
| 84 | # define NUM_RCU_LVL_4 0 | 90 | # define NUM_RCU_LVL_4 0 |
| 91 | # define NUM_RCU_LVL_INIT { NUM_RCU_LVL_0, NUM_RCU_LVL_1, NUM_RCU_LVL_2 } | ||
| 92 | # define RCU_NODE_NAME_INIT { "rcu_node_0", "rcu_node_1", "rcu_node_2" } | ||
| 93 | # define RCU_FQS_NAME_INIT { "rcu_node_fqs_0", "rcu_node_fqs_1", "rcu_node_fqs_2" } | ||
| 85 | #elif NR_CPUS <= RCU_FANOUT_4 | 94 | #elif NR_CPUS <= RCU_FANOUT_4 |
| 86 | # define RCU_NUM_LVLS 4 | 95 | # define RCU_NUM_LVLS 4 |
| 87 | # define NUM_RCU_LVL_0 1 | 96 | # define NUM_RCU_LVL_0 1 |
| @@ -89,6 +98,9 @@ | |||
| 89 | # define NUM_RCU_LVL_2 DIV_ROUND_UP(NR_CPUS, RCU_FANOUT_2) | 98 | # define NUM_RCU_LVL_2 DIV_ROUND_UP(NR_CPUS, RCU_FANOUT_2) |
| 90 | # define NUM_RCU_LVL_3 DIV_ROUND_UP(NR_CPUS, RCU_FANOUT_1) | 99 | # define NUM_RCU_LVL_3 DIV_ROUND_UP(NR_CPUS, RCU_FANOUT_1) |
| 91 | # define NUM_RCU_LVL_4 (NR_CPUS) | 100 | # define NUM_RCU_LVL_4 (NR_CPUS) |
| 101 | # define NUM_RCU_LVL_INIT { NUM_RCU_LVL_0, NUM_RCU_LVL_1, NUM_RCU_LVL_2, NUM_RCU_LVL_3 } | ||
| 102 | # define RCU_NODE_NAME_INIT { "rcu_node_0", "rcu_node_1", "rcu_node_2", "rcu_node_3" } | ||
| 103 | # define RCU_FQS_NAME_INIT { "rcu_node_fqs_0", "rcu_node_fqs_1", "rcu_node_fqs_2", "rcu_node_fqs_3" } | ||
| 92 | #else | 104 | #else |
| 93 | # error "CONFIG_RCU_FANOUT insufficient for NR_CPUS" | 105 | # error "CONFIG_RCU_FANOUT insufficient for NR_CPUS" |
| 94 | #endif /* #if (NR_CPUS) <= RCU_FANOUT_1 */ | 106 | #endif /* #if (NR_CPUS) <= RCU_FANOUT_1 */ |
