Messages in this thread | | | Date | Tue, 4 Jul 2023 23:10:01 -0400 | Subject | Re: [PATCH] cgroup/cpuset: avoid unneeded cpuset_mutex re-lock | From | Waiman Long <> |
| |
On 7/4/23 08:03, Miaohe Lin wrote: > cpuset_mutex unlock and lock pair is only needed when transferring tasks > out of empty cpuset. Avoid unneeded cpuset_mutex re-lock when !is_empty > to save cpu cycles. > > Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> > --- > kernel/cgroup/cpuset.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c > index 601c40da8e03..e136269c152c 100644 > --- a/kernel/cgroup/cpuset.c > +++ b/kernel/cgroup/cpuset.c > @@ -3521,17 +3521,16 @@ hotplug_update_tasks_legacy(struct cpuset *cs, > is_empty = cpumask_empty(cs->cpus_allowed) || > nodes_empty(cs->mems_allowed); > > - mutex_unlock(&cpuset_mutex); > - > /* > * Move tasks to the nearest ancestor with execution resources, > * This is full cgroup operation which will also call back into > * cpuset. Should be done outside any lock. > */ > - if (is_empty) > + if (is_empty) { > + mutex_unlock(&cpuset_mutex); > remove_tasks_in_empty_cpuset(cs); > - > - mutex_lock(&cpuset_mutex); > + mutex_lock(&cpuset_mutex); > + } > } > > static void Reviewed-by: Waiman Long <longman@redhat.com>
| |