浏览代码

rcu: permit discontiguous cpu_possible_mask CPU numbering

TREE_RCU assumes that CPU numbering is contiguous, but some users need
large holes in the numbering to better map to hardware layout.  This patch
makes TREE_RCU (and TREE_PREEMPT_RCU) tolerate large holes in the CPU
numbering.  However, NR_CPUS must still be greater than the largest
CPU number.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Paul E. McKenney 15 年之前
父节点
当前提交
4a90a0681c
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      kernel/rcutree.c

+ 1 - 1
kernel/rcutree.c

@@ -1913,7 +1913,7 @@ static void __init rcu_init_one(struct rcu_state *rsp)
 
 
 	rnp = rsp->level[NUM_RCU_LVLS - 1];
 	rnp = rsp->level[NUM_RCU_LVLS - 1];
 	for_each_possible_cpu(i) {
 	for_each_possible_cpu(i) {
-		if (i > rnp->grphi)
+		while (i > rnp->grphi)
 			rnp++;
 			rnp++;
 		rsp->rda[i]->mynode = rnp;
 		rsp->rda[i]->mynode = rnp;
 		rcu_boot_init_percpu_data(i, rsp);
 		rcu_boot_init_percpu_data(i, rsp);