aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2006-03-25 06:08:10 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-25 11:23:00 -0500
commit96a9b4d31eba4722ba7aad2cc15118a7799f499f (patch)
treef96739e328e3e50b43122e551a36415f6e26a1e8 /include
parent8630282070b4a52b12cfa514ba8558e2f3d56360 (diff)
[PATCH] cpumask: uninline any_online_cpu()
text data bss dec hex filename before: 3605597 1363528 363328 5332453 515de5 vmlinux after: 3605295 1363612 363200 5332107 515c8b vmlinux 218 bytes saved. Also, optimise any_online_cpu() out of existence on CONFIG_SMP=n. This function seems inefficient. Can't we simply AND the two masks, then use find_first_bit()? Cc: Paul Jackson <pj@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/cpumask.h13
1 files changed, 3 insertions, 10 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index f770039344c5..99e6115d8e52 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -398,22 +398,15 @@ extern cpumask_t cpu_present_map;
398 398
399#ifdef CONFIG_SMP 399#ifdef CONFIG_SMP
400int highest_possible_processor_id(void); 400int highest_possible_processor_id(void);
401#define any_online_cpu(mask) __any_online_cpu(&(mask))
402int __any_online_cpu(const cpumask_t *mask);
401#else 403#else
402#define highest_possible_processor_id() 0 404#define highest_possible_processor_id() 0
405#define any_online_cpu(mask) 0
403#endif 406#endif
404 407
405#define any_online_cpu(mask) \
406({ \
407 int cpu; \
408 for_each_cpu_mask(cpu, (mask)) \
409 if (cpu_online(cpu)) \
410 break; \
411 cpu; \
412})
413
414#define for_each_cpu(cpu) for_each_cpu_mask((cpu), cpu_possible_map) 408#define for_each_cpu(cpu) for_each_cpu_mask((cpu), cpu_possible_map)
415#define for_each_online_cpu(cpu) for_each_cpu_mask((cpu), cpu_online_map) 409#define for_each_online_cpu(cpu) for_each_cpu_mask((cpu), cpu_online_map)
416#define for_each_present_cpu(cpu) for_each_cpu_mask((cpu), cpu_present_map) 410#define for_each_present_cpu(cpu) for_each_cpu_mask((cpu), cpu_present_map)
417 411
418
419#endif /* __LINUX_CPUMASK_H */ 412#endif /* __LINUX_CPUMASK_H */