Re: [RFC][PATCH] oom: Be less verbose if the oom_control event fd has listeners

Richard Weinberger
2014-06-05T16:10:17Z

Am 05.06.2014 18:00, schrieb Oleg Nesterov:
> On 06/05, Richard Weinberger wrote:
>>
>> Am 05.06.2014 16:18, schrieb Oleg Nesterov:
>>> On 06/05, Richard Weinberger wrote:
>>>>
>>>> +int mem_cgroup_has_listeners(struct mem_cgroup *memcg)
>>>> +{
>>>> + int ret = 0;
>>>> +
>>>> + if (!memcg)
>>>> + goto out;
>>>> +
>>>> + spin_lock(&memcg_oom_lock);
>>>> + ret = !list_empty(&memcg->oom_notify);
>>>> + spin_unlock(&memcg_oom_lock);
>>>> +
>>>> +out:
>>>> + return ret;
>>>> +}
>>>
>>> Do we really need memcg_oom_lock to check list_empty() ? With or without
>>> this lock we can race with list_add/del anyway, and I guess we do not care.
>>
>> Hmm, in mm/memcontrol.c all list_dev/add are under memcg_oom_lock.
>
> And? How this lock can help to check list_empty() ?
>
> list_add/del can come right after mem_cgroup_has_listeners() and change
> the value of list_empty() anyway.

Ahh, now I can follow your mind. :)

Thanks,
//richard