diff options
author | Andrew Morton <akpm@osdl.org> | 2006-03-25 06:08:10 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 11:23:00 -0500 |
commit | 96a9b4d31eba4722ba7aad2cc15118a7799f499f (patch) | |
tree | f96739e328e3e50b43122e551a36415f6e26a1e8 /include/linux/cpumask.h | |
parent | 8630282070b4a52b12cfa514ba8558e2f3d56360 (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/linux/cpumask.h')
-rw-r--r-- | include/linux/cpumask.h | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index f770039344c..99e6115d8e5 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 |
400 | int highest_possible_processor_id(void); | 400 | int highest_possible_processor_id(void); |
401 | #define any_online_cpu(mask) __any_online_cpu(&(mask)) | ||
402 | int __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 */ |