Re: [PATCH -next] cpuset: add cpuset1_online_css helper for v1-specific operations

From: Waiman Long

Date: Tue Dec 16 2025 - 10:00:11 EST


On 12/16/25 9:03 AM, Michal Koutný wrote:
On Tue, Dec 16, 2025 at 08:13:53PM +0800, Chen Ridong <chenridong@xxxxxxxxxxxxxxx> wrote:
Regarding the lock assertions: cpuset_mutex is defined in cpuset.c and is not visible in
cpuset-v1.c. Given that cpuset v1 is deprecated, would you prefer that we add a helper to assert
cpuset_mutex is locked? Is that worth?
It could be un-static'd and defined in cpuset-internal.h. (Hopefully, we
should not end up with random callers of the helper but it's IMO worth
it for docs and greater safety.)
I would suggest defining a "assert_cpuset_lock_held(void)" helper function and put the declaration in include/linux/cpuset.h together with cpuset_lock/unlock() to complete the full set. This will allow other kernel subsystems to acquire the cpuset_mutex and assert that the mutex was held.

Should we guard with !cpuset_v2() or !is_in_v2mode()?

In cgroup v1, if the cpuset is operating in v2 mode, are these flags still valid?
I have no experience with this transitional option so that made me look
at the docs and there we specify it only affects behaviors of CPU masks,
not the extra flags. So I wanted to suggest !cpuset_v2(), correct?

The "cpuset_v2_mode" mount flag is used for making the behavior of cpuset.{cpus,mems}.effective in v1 behave like in v2. It has no effect on other v1 specific control files. So cpuset1_online_css() should only be called if "!cpuset_v2()".

Cheers,
Longman


Thanks,
Michal