Re: [PATCH v2 8/8] mm: Centralize & improve oom reporting in show_mem.c

Michal Hocko
2022-04-22T12:58:24Z

On Thu 21-04-22 19:48:37, Kent Overstreet wrote:
> This patch:
> - Changes show_mem() to always report on slab usage
> - Instead of reporting on all slabs, we only report on top 10 slabs,
> and in sorted order

As I've already pointed out in the email thread for the previous
version, this would be better in its own patch explaining why we want to
make this unconditional and why to limit the number caches to print.
Why the trashold shouldn't be absolute size based?

> - Also reports on shrinkers, with the new shrinkers_to_text().
> Shrinkers need to be included in OOM/allocation failure reporting
> because they're responsible for memory reclaim - if a shrinker isn't
> giving up its memory, we need to know which one and why.

Again, I do agree that information about shrinkers can be useful but
there are two main things to consider. Do we want to dump that
information unconditionaly? E.g. does it make sense to print for all
allocation requests (even high order, GFP_NOWAIT...)? Should there be
any explicit trigger when to dump this data (like too many shrinkers
failing etc)?

Last but not least let me echo the concern from the other reply. Memory
allocations are not really reasonable to be done from the oom context so
the pr_buf doesn't sound like a good tool here.

Also please make sure to provide an example of the output and _explain_
how the new output is better than the existing one.
--
Michal Hocko
SUSE Labs