Re: Optimisation for smp_num_cpus loop in hotplug

From: James Bottomley (James.Bottomley@SteelEye.com)
Date: Fri Jun 21 2002 - 08:10:21 EST


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/



This archive was generated by hypermail 2b29 : Sun Jun 23 2002 - 22:00:24 EST