Hi, Ridong, On Thu, 20 Nov 2025 21:45:16, Chen Ridong wrote: >On 2025/11/20 21:07, Sun Shaojie wrote: >> I have carefully considered the scenario where parent effective CPUs are >> empty, which corresponds to the following two cases. (After apply this >> patch). >> >> root cgroup >> | >> A1 >> / \ >> A2 A3 >> >> Case 1: >> Step: >> #1> echo "0-1" > A1/cpuset.cpus >> #2> echo "root" > A1/cpuset.cpus.partition >> #3> echo "0-1" > A2/cpuset.cpus >> #4> echo "root" > A2/cpuset.cpus.partition >> >> After step #4, >> >> | A1 | A2 | A3 | >> cpus_allowed | 0-1 | 0-1 | | >> effective_cpus | | 0-1 | | >> prstate | root | root | member | >> >> After step #4, A3's effective CPUs is empty. >> > >That may be a corner case is unexpected. > >> #5> echo "0-1" > A3/cpuset.cpus >> > >If we create subdirectories (e.g., A4, A5, ...) under the A1 cpuset and then >configure cpuset.cpus >for A1 (a common usage scenario), processes can no longer be migrated into >these subdirectories (A4, >A5, ...) afterward. However, prior to your patch, this migration was allowed.
Are you referring to creating subdirectories (A4, A5, ...) after step #4? And what parameters should be configured for A1's cpuset.cpus? Could you provide a specific example? Additionally, processes cannot be migrated into a cgroup whose cpuset.cpus.effective is empty. However, this patch does not modify this behavior. So why does applying this patch enable such migration? >> After step #5, >> >> | A1 | A2 | A3 | >> cpus_allowed | 0-1 | 0-1 | 0-1 | >> effective_cpus | | 0-1 | | >> prstate | root | root | member | >> Thanks, Sun Shaojie

