cpumask: make for_each_cpu_mask a bit smaller
authorAlexander van Heukelum <heukelum@mailshack.com>
Tue, 13 May 2008 09:28:21 +0000 (11:28 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 23 May 2008 16:46:12 +0000 (18:46 +0200)
commit7baac8b91f9871ba8cb09af84de4ae1d86d07812
tree4624f10539c3bb4581f99c1a187f1008502b8438
parent3f9b48a7584851997702cdc3f58e7811b5546397
cpumask: make for_each_cpu_mask a bit smaller

The for_each_cpu_mask loop is used quite often in the kernel. It
makes use of two functions: first_cpu and next_cpu. This patch
changes for_each_cpu_mask to use only the latter. Because next_cpu
finds the next eligible cpu _after_ the given one, the iteration
variable has to be initialized to -1 and next_cpu has to be
called with this value before the first iteration. An x86_64
defconfig kernel (from sched/latest) is about 2500 bytes smaller
with this patch applied:

   text    data     bss     dec     hex filename
6222517  917952  749932 7890401  7865e1 vmlinux.orig
6219922  917952  749932 7887806  785bbe vmlinux

The same size reduction is seen for defconfig+MAXSMP

   text    data     bss     dec     hex filename
6241772 2563968 1492716 10298456  9d2458 vmlinux.orig
6239211 2563968 1492716 10295895  9d1a57 vmlinux

Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/cpumask.h