linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.com>
To: Kent Overstreet <kent.overstreet@linux.dev>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Qi Zheng <zhengqi.arch@bytedance.com>,
	Roman Gushchin <roman.gushchin@linux.dev>
Subject: Re: [PATCH 4/7] mm: Centralize & improve oom reporting in show_mem.c
Date: Wed, 29 Nov 2023 09:59:27 +0100	[thread overview]
Message-ID: <ZWb9bwTQALvf5cMC@tiehlicka> (raw)
In-Reply-To: <20231128175439.6jarreie7cay74fn@moria.home.lan>

On Tue 28-11-23 12:54:39, Kent Overstreet wrote:
> On Tue, Nov 28, 2023 at 11:07:18AM +0100, Michal Hocko wrote:
[...]
> > > @@ -423,4 +426,21 @@ void __show_mem(unsigned int filter, nodemask_t *nodemask, int max_zone_idx)
> > >  #ifdef CONFIG_MEMORY_FAILURE
> > >  	printk("%lu pages hwpoisoned\n", atomic_long_read(&num_poisoned_pages));
> > >  #endif
> > > +
> > > +	buf = kmalloc(4096, GFP_ATOMIC);
> > 
> > I really do not think we want to allow allocations from the OOM context.
> > Is there any reason why this cannot be a statically allocated buffer?
> 
> You've made this claim before without ever giving any reasoning behind
> it.

We are actively out of memory at the stage you would like to allocate
memory. I am pretty sure I have mentioned this argument in the past.

> It's GFP_ATOMIC; it has to work from _interrupt_ context, OOM context is
> fine.

This is a completely _different_ contexts. GFP_ATOMIC works around IRQ
or any atomic context inability to wait for the reclaim by accessing the
memory reserves. At the _global_ oom situation those reserves are
extremely scarce resource. Debugging data is certainly not something we
would want to compete with e.g. oom victims or their dependencies that
might need to access those reserves in order to make a forward progress.
Especially in case where the said debugging data is not detrimental to
analyse the OOM situation. And to be completely honest, I haven't really
seen any strong arguments for shrinker internal state dumping other than
_in some very limited_ cases this _might_ be useful.

> And no, we don't want to burn 4k on a static buffer that is almost never
> used; people do care about making the kernel run on small systems.

WE DO NOT ALLOCATE FROM OOM context, not to mention for something as
disposable as debugging data which usefulness is not really clear. If
there are systems which cannot effort a 4kb for static buffer then just
disable this debugging data.
-- 
Michal Hocko
SUSE Labs


  reply	other threads:[~2023-11-29  8:59 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-22 23:25 [PATCH 0/7] shrinker debugging improvements Kent Overstreet
2023-11-22 23:25 ` [PATCH 1/7] seq_buf: seq_buf_human_readable_u64() Kent Overstreet
2023-11-22 23:25 ` [PATCH 2/7] mm: shrinker: Add a .to_text() method for shrinkers Kent Overstreet
     [not found]   ` <deed9bb1-02b9-4e89-895b-38a84e5a9408@gmail.com>
2023-11-23 21:24     ` Kent Overstreet
2023-11-24  3:08       ` Qi Zheng
2023-11-25  0:30         ` Kent Overstreet
2023-11-28  3:27           ` Muchun Song
2023-11-28  3:53             ` Kent Overstreet
2023-11-28  6:23               ` Qi Zheng
2023-11-29  0:34                 ` Roman Gushchin
2023-11-29  9:14                   ` Michal Hocko
2023-11-29 23:11                     ` Kent Overstreet
2023-11-30  3:09                       ` Qi Zheng
2023-11-30  3:21                         ` Kent Overstreet
2023-11-30  3:42                           ` Qi Zheng
2023-11-30  4:14                             ` Kent Overstreet
2023-11-30 19:01                           ` Roman Gushchin
2023-12-01  0:00                             ` Kent Overstreet
2023-12-01  1:18                             ` Dave Chinner
2023-12-01 20:01                               ` Roman Gushchin
2023-12-01 21:51                                 ` Kent Overstreet
2023-12-06  8:16                                 ` Dave Chinner
2023-12-06 19:13                                   ` Kent Overstreet
2023-12-09  1:44                                     ` Roman Gushchin
2023-12-09  2:04                                       ` Kent Overstreet
2023-11-30  8:14                       ` Michal Hocko
2023-12-01  1:47                         ` Kent Overstreet
2023-12-01 10:04                           ` Michal Hocko
2023-12-01 21:25                             ` Kent Overstreet
2023-12-04 10:33                               ` Michal Hocko
2023-12-04 18:15                                 ` Kent Overstreet
2023-12-05  8:49                                   ` Michal Hocko
2023-12-05 23:21                                     ` Kent Overstreet
2023-11-24 11:46   ` kernel test robot
2023-11-28 10:01   ` Michal Hocko
2023-11-28 17:48     ` Kent Overstreet
2023-11-29 16:02       ` Michal Hocko
2023-11-29 22:36         ` Kent Overstreet
2023-11-22 23:25 ` [PATCH 3/7] mm: shrinker: Add new stats for .to_text() Kent Overstreet
2023-11-22 23:25 ` [PATCH 4/7] mm: Centralize & improve oom reporting in show_mem.c Kent Overstreet
2023-11-28 10:07   ` Michal Hocko
2023-11-28 17:54     ` Kent Overstreet
2023-11-29  8:59       ` Michal Hocko [this message]
2023-11-22 23:25 ` [PATCH 5/7] mm: shrinker: Add shrinker_to_text() to debugfs interface Kent Overstreet
2023-11-22 23:25 ` [PATCH 6/7] bcachefs: shrinker.to_text() methods Kent Overstreet
2023-11-22 23:25 ` [PATCH 7/7] bcachefs: add counters for failed shrinker reclaim Kent Overstreet
2023-11-28  9:59 ` [PATCH 0/7] shrinker debugging improvements Michal Hocko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZWb9bwTQALvf5cMC@tiehlicka \
    --to=mhocko@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=kent.overstreet@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=roman.gushchin@linux.dev \
    --cc=zhengqi.arch@bytedance.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox