Re: [PATCH] core: Fix maxcpus boot option broken

From: Andrew Morton
Date: Fri May 31 2013 - 17:52:23 EST


On Thu, 30 May 2013 00:00:06 -0400 Youquan Song <youquan.song@xxxxxxxxx> wrote:

> maxcpus boot option to limit maximum number of CPUs on system, but this option
> is broken at recent kernel.

Can you help us identify which kernel versions have this bug?
Identifying the offending commit would be best. Thanks.

> Though we use maxcpus to limit CPUs number, but
> current kernel will register all of present CPUs in sysfs.
> udev will enumerate all registered cpu at sysfs, and it will bring up the CPU
> if the CPU is offline. So the maxcpus option is broken.
>
> This patch will only register the CPU which is not over limitation of maxcpus
> option in sysfs. So it will keep the maxcpus limitation when udev enumeration
> or other intention of bring up CPUs over the limitation by method like
> echo 1 > /sys/devices/system/cpu/online
>
> ...
>
> --- a/drivers/base/cpu.c
> +++ b/drivers/base/cpu.c
> @@ -272,6 +272,10 @@ int __cpuinit register_cpu(struct cpu *cpu, int num)
> {
> int error;
>
> + /* return when cpu number greater than maximum number of CPUs */
> + if (num >= setup_max_cpus)
> + return 0;
> +
> cpu->node_id = cpu_to_node(num);
> memset(&cpu->dev, 0x00, sizeof(struct device));
> cpu->dev.id = num;
> --
> 1.7.7.4
--
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/