Re: [Patch 17/23] mask v2 = [6/7] nodemask_t_ia64_changes

From: Nick Piggin
Date: Wed Apr 07 2004 - 10:07:26 EST


Paul Jackson wrote:
Nick wrote:

No, the schedule() fastpath doesn't use find_next_bit.


Ok - makes sense - thanks.

Uninlining it is perhaps the easiest way out.

That or replacing it with the trivial version that is several times
smaller (loops one bit at a time, checking 'test_bit()').

Right now, I don't see any excuse for that fat version of find_next_bit()
to exist.


Well it would be nice to keep it fast though, especially
for big masks like those 64 byte cpumasks of yours. In
the scheduler for example, a lot of balancing operations
are done with very sparse cpumasks, which your bit at a
time version doesn't handle very well.

For example, a global CPU balancing operation on a 512
CPU system with 2 CPUs per node currently does 256
for_each_cpu loops over cpumasks with two entries in
them. 130 thousand test_bit loop iteratinos.

The uninlined larger version would have to be smaller and
faster than your small version inlined, wouldn't it?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/