[PATCH] Allow cpusets to be configured/built on non-SMP systems

Ingo Molnar mingo at elte.hu
Tue Mar 3 00:07:34 PST 2009


* Paul Menage <menage at google.com> wrote:

> Allow cpusets to be configured/built on non-SMP systems
> 
> Currently it's impossible to build cpusets under UML on x86-64, since
> cpusets depends on SMP and x86-64 UML doesn't support SMP.
> 
> There's code in cpusets that doesn't depend on SMP.  This patch
> surrounds the minimum amount of cpusets code with #ifdef CONFIG_SMP in
> order to allow cpusets to build/run on UP systems (for testing
> purposes under UML).
> 
> Signed-off-by: Paul Menage <menage at google.com>
> 
> ---
> 
>  init/Kconfig    |    2 +-
>  kernel/cpuset.c |   14 ++++++++++++++
>  2 files changed, 15 insertions(+), 1 deletions(-)
> 
> diff --git a/init/Kconfig b/init/Kconfig
> index 92d2c64..3f20aa2 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -477,7 +477,7 @@ config CGROUP_DEVICE
>  
>  config CPUSETS
>  	bool "Cpuset support"
> -	depends on SMP && CGROUPS
> +	depends on CGROUPS
>  	help
>  	  This option will let you create and manage CPUSETs which
>  	  allow dynamically partitioning a system into sets of CPUs and
> diff --git a/kernel/cpuset.c b/kernel/cpuset.c
> index a46d693..b4d12d8 100644
> --- a/kernel/cpuset.c
> +++ b/kernel/cpuset.c
>
> @@ -517,6 +517,8 @@ static int validate_change(const struct cpuset *cur, const struct cpuset *trial)
>  	return 0;
>  }
>  
> +#ifdef CONFIG_SMP
> +
>  /*
>   * Helper routine for generate_sched_domains().
>   * Do cpusets a, b have overlapping cpus_allowed masks?
> @@ -811,6 +813,16 @@ static void do_rebuild_sched_domains(struct work_struct *unused)
>  
>  	put_online_cpus();
>  }
> +#else

Please use:

> +#else /* !CONFIG_SMP: */

to show that it's the UP branch - even if the #ifdef itself has 
scrolled off from screen already.

> +static void do_rebuild_sched_domains(struct work_struct *unused)
> +{
> +}
> +
> +static int generate_sched_domains(struct cpumask **domains,
> +			struct sched_domain_attr **attributes)
> +{
> +}
> +#endif // CONFIG_SMP

Please dont use C++ comments.

Looks good otherwise. (Btw., please try to Cc: PeterZ and me to 
cpusets patches in the future, especially when it affects the 
scheduler.)

	Ingo


More information about the Containers mailing list