Re: Optimisation for smp_num_cpus loop in hotplug

James Bottomley (James.Bottomley@SteelEye.com)
Fri, 21 Jun 2002 09:10:21 -0400


zaitcev@redhat.com said:
> This is neat, but I'd like to see it work with O(1) as well. Mingo's
> code uses some long bitmaps.

Well, it's strictly only for the cpu bitmap (and it's designed to be different
depending on the arch so you can use arch specific CPU enumeration knowlege).
The O(1) optimisation for this is easy:

#ifdef CONFIG_SMP
#define for_each_cpu(cpu, mask) \
for(mask = cpu_online_map; \
cpu = __ffs(mask), mask != 0; \
mask &= ~(1<<cpu))
#else
#define for_each_cpu(cpu, mask) cpu = 1;
#endif

because you don't really want to run an SMP kernel on a machine which has only
one cpu. Or did you mean you'd like to see it work with the O(1) scheduler,
some kind of generic for_each_set_bit?

James

-
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/