Re: [RFC PATCH] mm, oom: oom ratelimit auto tuning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020/04/14 23:58, Yafang Shao wrote:
>>>>> The OOM ratelimit starts with a slow rate, and it will increase slowly
>>>>> if the speed of the console is rapid and decrease rapidly if the speed
>>>>> of the console is slow. oom_rs.burst will be in [1, 10] and
>>>>> oom_rs.interval will always greater than 5 * HZ.
>>>>
>>>> I am not against increasing the ratelimit timeout. But this patch seems
>>>> to be trying to be too clever.  Why cannot we simply increase the
>>>> parameters of the ratelimit?
>>>
>>> I justed worried that the user may complain it if too many
>>> oom_kill_process callbacks are suppressed.
>>
>> This can be a real concern indeed.

I'm proposing automated ratelimiting of dump_tasks() at
http://lkml.kernel.org/r/1563360901-8277-1-git-send-email-penguin-kernel@xxxxxxxxxxxxxxxxxxx .
I believe that automated ratelimiting of dump_tasks() remains necessary
even after printk() became asynchronous.

>>
>>> But considering that OOM burst at the same time are always because of
>>> the same reason,
>>
>> This is not really the case. Please note that many parallel OOM killers
>> might happen in memory cgroup setups.
>>
>>> so I think one snapshot of the OOM may be enough.
>>> Simply setting oom_rs with {20 * HZ, 1} can resolve this issue.
>>
>> Does it really though? The ratelimit doesn't stop the long taking
>> output. It simply cannot because the work is already done.
>>
>> That being said, making the ratelimiting more aggressive sounds more
>> like a workaround than an actual fix. So I would go that route only if
>> there is no other option. I believe the real problem here is in printk
>> being too synchronous here. This is a general problem and something
>> printk maintainers are already working on.
>>
> 
> Yes, printk being too sync is the real issue. If the printk an be
> async, then we don't need to worry about it at all.

I strongly disagree. dump_tasks() will needlessly fill printk() log buffer
(and potentially loose other kernel messages due to buffer full / disk full).

By the way, Petr and Sergey, how is the progress of making printk() asynchronous?
When can we expect that work to be merged?





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux