Re: [PATCH] mm,oom: Defer dump_tasks() output.

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

 



On Sat 31-08-19 10:03:18, Tetsuo Handa wrote:
> On 2019/08/30 19:35, Michal Hocko wrote:
> > On Fri 30-08-19 19:04:53, Tetsuo Handa wrote:
> >> If /proc/sys/vm/oom_dump_tasks != 0, dump_header() can become very slow
> >> because dump_tasks() synchronously reports all OOM victim candidates, and
> >> as a result ratelimit test for dump_header() cannot work as expected.
> >>
> >> This patch defers dump_tasks() till oom_mutex is released. As a result of
> >> this patch, the latency between out_of_memory() is called and SIGKILL is
> >> sent (and the OOM reaper starts reclaiming memory) will be significantly
> >> reduced.
> > 
> > This is adding a lot of code for something that might be simply worked
> > around by disabling dump_tasks. Unless there is a real world workload
> > that suffers from the latency and depends on the eligible task list then
> > I do not think this is mergeable.
> > 
> 
> People had to use /proc/sys/vm/oom_dump_tasks == 0 (and give up obtaining some
> clue) because they worried stalls caused by /proc/sys/vm/oom_dump_tasks != 0
> while they have to use /proc/sys/vm/panic_on_oom == 0 because they don't want the
> down time caused by rebooting.

The main qustion is whether disabling that information is actually
causing any real problems.

> This patch avoids stalls (and gives them some clue).
> This patch also helps mitigating __ratelimit(&oom_rs) == "always true" problem.
> A straightforward improvement.

This is a wrong approach to mitigate that problem. Ratelimiting doesn't
really work for any operation that takes a longer time. Solving that
problem sounds usef in a generic way.

> If there are objections we can't apply this change, reasons would be something
> like "This change breaks existing userspace scripts that parse OOM messages".

No, not really. There is another aspect of inclusion criterion -
maintainability and code complexity. This patch doesn't help neither.

-- 
Michal Hocko
SUSE Labs




[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