Messages in this thread Patch in this message |  | | Subject | [PATCH] 2.5.32: is_smp() and can_be_smp() | From | Luca Barbieri <> | Date | 28 Aug 2002 00:07:27 +0200 |
| |
Will be used by another patch that I'll post in the very near future. For i386 cpucount is used rather than computing the hweight of cpu_online_map since it's faster and already there. Ideally the same should be done for all architectures in both these macros and num_online_cpus and num_possible_cpus.
diff --exclude-from=/home/ldb/src/linux-exclude -urNdp linux-2.5.32/include/asm-i386/smp.h linux-2.5.32_smp/include/asm-i386/smp.h --- linux-2.5.32/include/asm-i386/smp.h 2002-08-27 21:26:32.000000000 +0200 +++ linux-2.5.32_smp/include/asm-i386/smp.h 2002-08-27 23:25:09.000000000 +0200 @@ -94,6 +94,10 @@ extern inline unsigned int num_online_cp return hweight32(cpu_online_map); } +extern int cpucount; +#define is_smp() (cpucount) +#define can_be_smp() (cpucount) + extern inline int any_online_cpu(unsigned int mask) { if (mask & cpu_online_map) diff --exclude-from=/home/ldb/src/linux-exclude -urNdp linux-2.5.32/include/linux/smp.h linux-2.5.32_smp/include/linux/smp.h --- linux-2.5.32/include/linux/smp.h 2002-08-27 21:26:43.000000000 +0200 +++ linux-2.5.32_smp/include/linux/smp.h 2002-08-27 23:25:47.000000000 +0200 @@ -78,6 +78,19 @@ extern int register_cpu_notifier(struct extern void unregister_cpu_notifier(struct notifier_block *nb); int cpu_up(unsigned int cpu); + +#ifndef is_smp +#define is_smp() (num_online_cpus() > 1) +#endif + +#ifndef can_be_smp +#ifdef num_possible_cpus +#define can_be_smp() (num_possible_cpus() > 1) +#else +#define can_be_smp() is_smp() +#endif +#endif + #else /* !SMP */ /* @@ -96,6 +109,8 @@ static inline void smp_send_reschedule_a #define cpu_online_map 1 #define cpu_online(cpu) ({ cpu; 1; }) #define num_online_cpus() 1 +#define is_smp() 0 +#define can_be_smp() 0 #define num_booting_cpus() 1 struct notifier_block; [unhandled content-type:application/pgp-signature] |  |