Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[PATCH] rcu: move some code from macro to function

0 views
Skip to first unread message

Lai Jiangshan

unread,
Mar 27, 2010, 11:20:02 PM3/27/10
to

cleanup: move some code from macro to function

Signed-off-by: Lai Jiangshan <la...@cn.fujitsu.com>
---
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 3ec8160..112edb5 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1849,6 +1849,14 @@ static void __init rcu_init_one(struct rcu_state *rsp)
INIT_LIST_HEAD(&rnp->blocked_tasks[3]);
}
}
+
+ rnp = rsp->level[NUM_RCU_LVLS - 1];
+ for_each_possible_cpu(i) {
+ if (i > rnp->grphi)
+ rnp++;
+ rsp->rda[i]->mynode = rnp;
+ rcu_boot_init_percpu_data(i, rsp);
+ }
}

/*
@@ -1859,19 +1867,11 @@ static void __init rcu_init_one(struct rcu_state *rsp)
#define RCU_INIT_FLAVOR(rsp, rcu_data) \
do { \
int i; \
- int j; \
- struct rcu_node *rnp; \
\
- rcu_init_one(rsp); \
- rnp = (rsp)->level[NUM_RCU_LVLS - 1]; \
- j = 0; \
for_each_possible_cpu(i) { \
- if (i > rnp[j].grphi) \
- j++; \
- per_cpu(rcu_data, i).mynode = &rnp[j]; \
(rsp)->rda[i] = &per_cpu(rcu_data, i); \
- rcu_boot_init_percpu_data(i, rsp); \
} \
+ rcu_init_one(rsp); \
} while (0)

void __init rcu_init(void)

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

Paul E. McKenney

unread,
Mar 28, 2010, 12:20:01 AM3/28/10
to
On Sun, Mar 28, 2010 at 11:12:30AM +0800, Lai Jiangshan wrote:
>
> cleanup: move some code from macro to function

Nice!

I have queued this for RCU 2.6.35, with the following commit message:

Shrink the RCU_INIT_FLAVOR() macro by moving all but the
initialization of the ->rda[] array to rcu_init_one().
The call to rcu_init_one() can then be moved to the end
of the RCU_INIT_FLAVOR() macro, which is required because
rcu_boot_init_percpu_data(), which is now called from
rcu_init_one(), depends on the initialization of the ->rda[]
array.

Seem reasonable?

Thanx, Paul

Lai Jiangshan

unread,
Mar 28, 2010, 9:10:01 PM3/28/10
to
Paul E. McKenney wrote:
> On Sun, Mar 28, 2010 at 11:12:30AM +0800, Lai Jiangshan wrote:
>> cleanup: move some code from macro to function
>
> Nice!
>
> I have queued this for RCU 2.6.35, with the following commit message:
>
> Shrink the RCU_INIT_FLAVOR() macro by moving all but the
> initialization of the ->rda[] array to rcu_init_one().
> The call to rcu_init_one() can then be moved to the end
> of the RCU_INIT_FLAVOR() macro, which is required because
> rcu_boot_init_percpu_data(), which is now called from
> rcu_init_one(), depends on the initialization of the ->rda[]
> array.
>
> Seem reasonable?
>
> Thanx, Paul
>

OK
Thanks, Lai

0 new messages