linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Joshua Hahn <joshua.hahnjy@gmail.com>
To: ying chen <yc1082463@gmail.com>
Cc: akpm@linux-foundation.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, hannes@cmpxchg.org
Subject: Re: [PATCH] mm/vmscan: when the swappiness is set to 0, memory swapping should be prohibited during the global reclaim process
Date: Thu, 27 Feb 2025 07:54:27 -0800	[thread overview]
Message-ID: <20250227155431.2534325-1-joshua.hahnjy@gmail.com> (raw)
In-Reply-To: <CAN2Y7hxDdATNfb=R5J1as3pqA1RsP8c8LubC4QxojK5cJS9Q9w@mail.gmail.com>

On Thu, 27 Feb 2025 22:34:51 +0800 ying chen <yc1082463@gmail.com> wrote:

Hi Ying,

I hope you are having a great day! I wanted to share a few thoughts:

Previously, when the system is under a lot of memory pressure and is
facing OOMs, global reclaim can create space for the system and prevent
going out of memory by swapping, even when swappiness is 0. If this patch
removes that check, it would mean that global reclaim can no longer
"bypass" the swappiness == 0 condition.

I am also CCing Johannes, who is the original author of this section [1],
who clarified in the patch that swappiness == 0 has different meanings for
global reclaim and memory cgroup reclaim.  

> When we use zram as swap disks, global reclaim may cause the memory in some
> cgroups with memory.swappiness set to 0 to be swapped into zram. This memory
> won't be swapped back immediately after the free memory increases. Instead,
> it will continue to occupy the zram space, which may result in no available
> zram space for the cgroups with swapping enabled. Therefore, I think that

IMHO, I think that even with zram, we would still want to allow the system
to reclaim memory & swap out, in case we are facing imminent OOMs. Even if
the memory isn't immediately swapped back in when we are able to manage the
memory spike and see free memory, I imagine that we might not even be able
to manage the spike if we prevent global reclaim from swapping.

These are just some thoughts that I had about the patch. However, my
understanding of zram and reclaim is limited; please feel free to
correct me if you see anything that I am not understanding correctly.

Thank you for your time, have a great day!
Joshua

[1] https://lore.kernel.org/linux-mm/1355767957-4913-4-git-send-email-hannes@cmpxchg.org/

> when the vm.swappiness is set to 0, global reclaim should also refrain
> from memory swapping, just like these cgroups.
> 
> Signed-off-by: yc1082463 <yc1082463@gmail.com>
> ---
>  mm/vmscan.c | 9 +--------
>  1 file changed, 1 insertion(+), 8 deletions(-)
> 
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index c767d71c43d7..bdbb0fc03412 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -2426,14 +2426,7 @@ static void get_scan_count(struct lruvec
> *lruvec, struct scan_control *sc,
>                 goto out;
>         }
> 
> -       /*
> -        * Global reclaim will swap to prevent OOM even with no
> -        * swappiness, but memcg users want to use this knob to
> -        * disable swapping for individual groups completely when
> -        * using the memory controller's swap limit feature would be
> -        * too expensive.
> -        */
> -       if (cgroup_reclaim(sc) && !swappiness) {
> +       if (!swappiness) {
>                 scan_balance = SCAN_FILE;
>                 goto out;
>         }
> --
> 2.34.1

Sent using hkml (https://github.com/sjp38/hackermail)



  reply	other threads:[~2025-02-27 15:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-27 14:34 ying chen
2025-02-27 15:54 ` Joshua Hahn [this message]
2025-02-27 16:19   ` Johannes Weiner
2025-02-28  3:18     ` ying chen
2025-02-28  3:21     ` Yafang Shao
2025-02-28  3:16   ` ying chen
2025-02-27 19:12 ` Shakeel Butt
2025-02-28  2:48   ` ying chen
2025-03-03 12:07 ` Michal Hocko
  -- strict thread matches above, loose matches on Subject: below --
2025-02-27  7:51 ying chen

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=20250227155431.2534325-1-joshua.hahnjy@gmail.com \
    --to=joshua.hahnjy@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=yc1082463@gmail.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