Skip to contentSkip to conversation

Heads up: cpumask changes

DISCUSSION Rusty Russell 1 participant 1 message Nov 18, 2008 Generic include/asm header files

lore
Share & tools
lore
#0 lore raw

Hi all,

With large NR_CPUS coming, Mike and I have been working to make dynamic
cpumasks an option. The main change is to APIs which pass cpumask_t around; they'll now be '[const] struct cpumask *'. This unfortunately will hit arch code as interfaces get frobbed, and a couple of nasty one-shot transitions are unavoidable.

For archs which never intend to support CONFIG_CPUMASK_OFFSTACK, the rest
of the changes will be cosmetic (eg. s/cpumask_t/struct cpumask/ eventually). For x86 and others who allow CONFIG_CPUMASK_OFFSTACK, "struct cpumask" will eventually be undefined so it cannot be assigned or used on the stack: this means use cpumask_copy(), cpumask_var_t and as a last resort, DEFINE_BITMAP(bitmap, NR_CPUS) and to_cpumask(bitmap).

We've been working most closely with Ingo, as x86, irq and scheduler are
most effected. Apologies in advance for the churn, but the final result will be a neater API than what we have now as well as stupid numbers of cpus in your .config.

Thanks!
Rusty.