Messages in this thread | | | Date | Tue, 18 Feb 2003 07:31:11 +0100 | From | Andi Kleen <> | Subject | Re: 2.5.61: x86_64 num_online_cpus() buglet? |
| |
On Mon, Feb 17, 2003 at 06:51:12PM +0100, Mikael Pettersson wrote: > Andi, > > Kernel 2.5.61's include/asm-x86_64/smp.h contains: > > extern unsigned long cpu_online_map; > ... > extern inline unsigned int num_online_cpus(void) > { > return hweight32(cpu_online_map); > } > > and similarly for cpu_callout_map. > > hweight32() truncates a 64-bit operand to 32-bits, so either > - the maps should be int rather than long, or > - x86_64 needs to define and use a new hweight64(), or > - CONFIG_NR_CPUS must not exceed 32 on x86_64. > > Comments?
You're right - it should use hweight64. Thanks for the headup. I'll fix it.
Currently the x86-64 port is limited to 8 CPUs because the APIC drivers don't support cluster mode (yet) and can only talk to 8 local apics, so it isn't that harmful.
-Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |