Re: [RFC] CPUMASK: proposal for replacing cpumask_t

From: Mike Travis
Date: Fri Sep 12 2008 - 18:51:01 EST

Rusty Russell wrote:
> On Saturday 13 September 2008 00:28:56 Mike Travis wrote:
>> Rusty Russell wrote:
>>> I'm yet to be convinced that we really need to allocate cpumasks in any
>>> fast paths. And if not, we should simply allocate them everywhere. I'd
>>> rather see one #ifdef around a place where we can show a perf issue.
>> Using a typedef came from Linus, and the idea is basically if NR_CPUS fits
>> into a long, then it's carried as an array of one (ie., local variable).
> Sure it's clever. ie. nice and confusing.
> But do we have any code paths where we care? Unless we do, let's just keep it
> simple...
> Cheers,
> Rusty.

Here's the thread:

It doesn't seem worthwhile to force all systems to deal with large cpumask's
if they don't need to. Passing the value on the stack (actually usually in a
reg) if it fits into a long makes a lot of sense.

And I don't think it's that abstract, but I'm willing to hear other opinions.

Btw, most likely only distros that distribute an "Enterprise" edition of
Linux will ever set NR_CPUS so high, so the actual number of systems making
use of this will be a very small percentage (big $$-wise though... ;-)

I even think that perhaps BITS_PER_LONG might be too low a threshold to kick
in this extra code. A Larabee chip will have 128 cpus so maybe 128 or 256 is
a better metric...?

As soon as I get a working kernel with the proposed changes, I will definitely
be doing perf testing.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at