Re: [PATCH] cpuset: hotunplug cpus and mems in all cpusets

From: Andrew Morton
Date: Tue Aug 29 2006 - 02:16:43 EST


On Mon, 28 Aug 2006 23:08:24 -0700
Paul Jackson <pj@xxxxxxx> wrote:

> The cpuset code handling hot unplug of CPUs or Memory Nodes
> was incorrect - it could remove a CPU or Node from the top
> cpuset, while leaving it still in some child cpusets.
>
> One basic rule of cpusets is that each cpusets cpus and mems
> are subsets of its parents. The cpuset hot unplug code
> violated this rule.
>
> So the cpuset hotunplug handler must walk down the tree,
> removing any removed CPU or Node from all cpusets.
>
> However, it is not allowed to make a cpusets cpus or mems
> become empty. They can only transition from empty to non-empty,
> not back.
>
> So if the last CPU or Node would be removed from a cpuset by
> the above walk, we scan back up the cpuset hierarchy, finding
> the nearest ancestor that still has something online, and copy
> its CPU or Memory placement.

Did you consider failing the hotremove request instead?
-
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/