Amos Waterland
2006-Aug-22 03:12 UTC
[Xen-devel] [PATCH] Use macro to walk through online cpus
There are two cases that I know of in xen/common where we waste cycles walking through a list from zero to NR_CPUS. This patch makes them use for_each_online_cpu instead. Signed-off-by: Amos Waterland <apw@us.ibm.com> --- schedule.c | 2 +- timer.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff -r 326e6736d92b xen/common/schedule.c --- a/xen/common/schedule.c Mon Aug 21 10:04:37 2006 -0400 +++ b/xen/common/schedule.c Mon Aug 21 22:31:12 2006 -0400 @@ -633,7 +633,7 @@ void __init scheduler_init(void) open_softirq(SCHEDULE_SOFTIRQ, __enter_scheduler); - for ( i = 0; i < NR_CPUS; i++ ) + for_each_online_cpu( i ) { spin_lock_init(&per_cpu(schedule_data, i).schedule_lock); init_timer(&per_cpu(schedule_data, i).s_timer, s_timer_fn, NULL, i); diff -r 326e6736d92b xen/common/timer.c --- a/xen/common/timer.c Mon Aug 21 10:04:37 2006 -0400 +++ b/xen/common/timer.c Mon Aug 21 22:31:21 2006 -0400 @@ -382,7 +382,7 @@ void __init timer_init(void) SET_HEAP_SIZE(&dummy_heap, 0); SET_HEAP_LIMIT(&dummy_heap, 0); - for ( i = 0; i < NR_CPUS; i++ ) + for_each_online_cpu( i ) { spin_lock_init(&per_cpu(timers, i).lock); per_cpu(timers, i).heap = &dummy_heap; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2006-Aug-22 07:15 UTC
Re: [Xen-devel] [PATCH] Use macro to walk through online cpus
On 22/8/06 4:12 am, "Amos Waterland" <apw@us.ibm.com> wrote:> There are two cases that I know of in xen/common where we waste cycles > walking through a list from zero to NR_CPUS. This patch makes them use > for_each_online_cpu instead. > > Signed-off-by: Amos Waterland <apw@us.ibm.com>Better to use for_each_cpu() in case any arch supports CPU hotplug in future. The wasted cycles are unimportant since these loops run only once, at boot time. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel