Re: [PATCH -next] cpuset: add cpuset1_online_css helper for v1-specific operations
From: Waiman Long
Date: Tue Dec 16 2025 - 21:03:43 EST
On 12/16/25 7:53 PM, Chen Ridong wrote:
On 2025/12/16 22:58, Waiman Long wrote:
On 12/16/25 9:03 AM, Michal Koutný wrote:Considering potential use by other subsystems, this is worthwhile. I will add the helper.
On Tue, Dec 16, 2025 at 08:13:53PM +0800, Chen Ridong <chenridong@xxxxxxxxxxxxxxx> wrote:I would suggest defining a "assert_cpuset_lock_held(void)" helper function and put the declaration
Regarding the lock assertions: cpuset_mutex is defined in cpuset.c and is not visible inIt could be un-static'd and defined in cpuset-internal.h. (Hopefully, we
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?
should not end up with random callers of the helper but it's IMO worth
it for docs and greater safety.)
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.
If cpuset1_online_css() is only called under the condition !cpuset_v2(), a compile-time option mightThe "cpuset_v2_mode" mount flag is used for making the behavior of cpuset.{cpus,mems}.effective inShould we guard with !cpuset_v2() or !is_in_v2mode()?I have no experience with this transitional option so that made me look
In cgroup v1, if the cpuset is operating in v2 mode, are these flags still valid?
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?
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()".
suffice? When CONFIG_CPUSETS_V1=n, cpuset1_online_css could be defined as an empty inline function.
cpuset_v2() includes "!IS_ENABLED(CONFIG_CPUSETS_V1)", so the compiler should compile out the call to cpuset1_online_css() if CONFIG_CPUSETS_V1 isn't defined. If you want to make cpuset1_online_css() conditional on CONFIG_CPUSETS_V1, I am fine with that too.
Cheers,
Longman