Re: [PATCH 5/6] cgroup/cpuset: optimize cpuset_mems_allowed_intersects()

Waiman Long
2024-05-14T16:55:48Z

On 5/14/24 12:50, Tejun Heo wrote:
> On Tue, May 14, 2024 at 12:47:59PM -0400, Waiman Long wrote:
>>> diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
>>> index 4237c8748715..47ed206d4890 100644
>>> --- a/kernel/cgroup/cpuset.c
>>> +++ b/kernel/cgroup/cpuset.c
>>> @@ -5010,6 +5010,9 @@ EXPORT_SYMBOL_GPL(cpuset_mem_spread_node);
>>> int cpuset_mems_allowed_intersects(const struct task_struct *tsk1,
>>> const struct task_struct *tsk2)
>>> {
>>> + if (tsk1 == tsk2)
>>> + return 1;
>>> +
>>> return nodes_intersects(tsk1->mems_allowed, tsk2->mems_allowed);
>>> }
>> Reviewed-by: Waiman Long <longman@redhat.com>
> I'm not sure this is worth the added code.

Yes, I do have a second thought afterward. The only caller of
cpuset_mems_allowed_intersects() is oom_cpuset_eligible() in
mm/oom_kill.c. So I believe a better fix is to avoid calling
cpuset_mems_allowed_intersects() there if current == tsk.

Cheers,
Longman