From: Michal Hocko <mhocko@suse.com>
To: Jianfeng Wang <jianfeng.w.wang@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [External] : Re: [PATCH] mm, oom: Add lru_add_drain() in __oom_reap_task_mm()
Date: Fri, 12 Jan 2024 09:49:08 +0100 [thread overview]
Message-ID: <ZaD9BNtXZfY2UtVI@tiehlicka> (raw)
In-Reply-To: <897538a0-5ce6-484e-a9bc-4e61b3be2265@oracle.com>
On Thu 11-01-24 16:08:57, Jianfeng Wang wrote:
>
>
> On 1/11/24 1:54 PM, Andrew Morton wrote:
> > On Thu, 11 Jan 2024 10:54:45 -0800 Jianfeng Wang <jianfeng.w.wang@oracle.com> wrote:
> >
> >>
> >>> Unless you can show any actual runtime effect of this patch then I think
> >>> it shouldn't be merged.
> >>>
> >>
> >> Thanks for raising your concern.
> >> I'd call it a trade-off rather than "not really correct". Look at
> >> unmap_region() / free_pages_and_swap_cache() written by Linus. These are in
> >> favor of this pattern, which indicates that the trade-off (i.e. draining
> >> local CPU or draining all CPUs or no draining at all) had been made in the
> >> same way in the past. I don't have a specific runtime effect to provide,
> >> except that it will free 10s kB pages immediately during OOM.
You are missing an important point. Those two calls are quite different.
oom_reaper unmaps memory after all the reclaim attempts have failed.
That includes draining all sorts of caches on the way. Including
draining LRU pcp cache (look for lru_add_drain_all in the reclaim path).
> > I don't think it's necessary to run lru_add_drain() for each vma. Once
> > we've done it it once, it can be skipped for additional vmas.
> >
> Agreed.
>
> > That's pretty minor because the second and successive calls will be
> > cheap. But it becomes much more significant if we switch to
> > lru_add_drain_all(), which sounds like what we should be doing here.
> > Is it possible?
> >
> What do you both think of adding lru_add_drain_all() prior to the for loop?
lru_add_drain_all relies on WQs. And we absolutely do not want to get
oom_reaper stuck just because all the WQ is jammed. So no, this is
actually actively harmful!
All that being said I stand by my previous statement that this patch is
not doing anything measurably useful. Prove me wrong otherwise I am
against merging "just for consistency patch". Really, we should go and
re-evaluate existing local lru draining callers. I wouldn't be surprised
if we removed some of them.
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2024-01-12 8:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-09 9:15 [PATCH] mm, oom: Add lru_add_drain() in __oom_reap_task_mm() Jianfeng Wang
2024-01-10 8:46 ` Michal Hocko
2024-01-10 19:02 ` Jianfeng Wang
2024-01-11 8:46 ` Michal Hocko
2024-01-11 18:54 ` Jianfeng Wang
2024-01-11 21:54 ` Andrew Morton
2024-01-12 0:08 ` [External] : " Jianfeng Wang
2024-01-12 8:49 ` Michal Hocko [this message]
2024-01-12 21:43 ` Minchan Kim
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=ZaD9BNtXZfY2UtVI@tiehlicka \
--to=mhocko@suse.com \
--cc=akpm@linux-foundation.org \
--cc=jianfeng.w.wang@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.