[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211215144944.GE16798@blackbody.suse.cz>
Date: Wed, 15 Dec 2021 15:49:44 +0100
From: Michal Koutný <mkoutny@...e.com>
To: Waiman Long <longman@...hat.com>
Cc: Tejun Heo <tj@...nel.org>, Zefan Li <lizefan.x@...edance.com>,
Johannes Weiner <hannes@...xchg.org>,
Jonathan Corbet <corbet@....net>,
Shuah Khan <shuah@...nel.org>, cgroups@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org,
linux-kselftest@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>,
Roman Gushchin <guro@...com>, Phil Auld <pauld@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
Juri Lelli <juri.lelli@...hat.com>,
Frederic Weisbecker <frederic@...nel.org>,
Marcelo Tosatti <mtosatti@...hat.com>
Subject: Re: [PATCH v9 3/7] cgroup/cpuset: Refining features and constraints
of a partition
On Sun, Dec 05, 2021 at 01:32:16PM -0500, Waiman Long <longman@...hat.com> wrote:
> @@ -1455,34 +1450,16 @@ static void update_cpumasks_hier(struct cpuset *cs, struct tmpmasks *tmp)
> switch (parent->partition_root_state) {
> [...]
> -
> case PRS_ENABLED:
> - if (update_parent_subparts_cpumask(cp, partcmd_update, NULL, tmp))
> - update_tasks_cpumask(parent);
> + update_parent = true;
> [...]
> + if (update_parent) {
> + if (update_parent_subparts_cpumask(cp, partcmd_update, NULL, tmp))
> + update_tasks_cpumask(parent);
> + /*
> + * The cpuset partition_root_state may be changed
> + * to PRS_ERROR. Capture it.
> + */
> + new_prs = cp->partition_root_state;
> + }
IIUC, this ensures that when a parent becomes partition root again, this
would propagate downwards to invalidated children.
However, the documentation says:
> + Changing a partition root (valid or invalid) to "member" is
> + always allowed. If there are child partition roots underneath
> + it, they will become invalid and unrecoverable. So care must
> + be taken to double check for this condition before disabling
> + a partition root.
I.e. it suggests a child can be trapped in the unrecoverable state (i.e.
not fixable by writing into cpuset.cpus.partition).
But this does not happen, right?
Michal
Powered by blists - more mailing lists