All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: akpm@linux-foundation.org, chengming.zhou@linux.dev,
	christian@heusel.eu, ddstreet@ieee.org, nphamcs@gmail.com,
	rjones@redhat.com, sjenning@redhat.com, stable@vger.kernel.org,
	vitaly.wool@konsulko.com, yosryahmed@google.com
Subject: Re: [PATCH 6.8.y] mm: zswap: fix shrinker NULL crash with cgroup_disable=memory
Date: Mon, 29 Apr 2024 16:18:02 +0200	[thread overview]
Message-ID: <2024042954-hardship-arise-b7cd@gregkh> (raw)
In-Reply-To: <20240429130216.GB1155473@cmpxchg.org>

On Mon, Apr 29, 2024 at 09:02:16AM -0400, Johannes Weiner wrote:
> Christian reports a NULL deref in zswap that he bisected down to the zswap
> shrinker.  The issue also cropped up in the bug trackers of libguestfs [1]
> and the Red Hat bugzilla [2].
> 
> The problem is that when memcg is disabled with the boot time flag, the
> zswap shrinker might get called with sc->memcg == NULL.  This is okay in
> many places, like the lruvec operations.  But it crashes in
> memcg_page_state() - which is only used due to the non-node accounting of
> cgroup's the zswap memory to begin with.
> 
> Nhat spotted that the memcg can be NULL in the memcg-disabled case, and I
> was then able to reproduce the crash locally as well.
> 
> [1] https://github.com/libguestfs/libguestfs/issues/139
> [2] https://bugzilla.redhat.com/show_bug.cgi?id=2275252
> 
> Link: https://lkml.kernel.org/r/20240418124043.GC1055428@cmpxchg.org
> Link: https://lkml.kernel.org/r/20240417143324.GA1055428@cmpxchg.org
> Fixes: b5ba474f3f51 ("zswap: shrink zswap pool based on memory pressure")
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> Reported-by: Christian Heusel <christian@heusel.eu>
> Debugged-by: Nhat Pham <nphamcs@gmail.com>
> Suggested-by: Nhat Pham <nphamcs@gmail.com>
> Tested-by: Christian Heusel <christian@heusel.eu>
> Acked-by: Yosry Ahmed <yosryahmed@google.com>
> Cc: Chengming Zhou <chengming.zhou@linux.dev>
> Cc: Dan Streetman <ddstreet@ieee.org>
> Cc: Richard W.M. Jones <rjones@redhat.com>
> Cc: Seth Jennings <sjenning@redhat.com>
> Cc: Vitaly Wool <vitaly.wool@konsulko.com>
> Cc: <stable@vger.kernel.org>	[v6.8]
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> (cherry picked from commit 682886ec69d22363819a83ddddd5d66cb5c791e1)
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
> ---
>  mm/zswap.c | 25 ++++++++++++++++---------
>  1 file changed, 16 insertions(+), 9 deletions(-)

Now queued up, thanks.

greg k-h

      reply	other threads:[~2024-04-29 14:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-29 11:25 FAILED: patch "[PATCH] mm: zswap: fix shrinker NULL crash with cgroup_disable=memory" failed to apply to 6.8-stable tree gregkh
2024-04-29 13:02 ` [PATCH 6.8.y] mm: zswap: fix shrinker NULL crash with cgroup_disable=memory Johannes Weiner
2024-04-29 14:18   ` Greg KH [this message]

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=2024042954-hardship-arise-b7cd@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=chengming.zhou@linux.dev \
    --cc=christian@heusel.eu \
    --cc=ddstreet@ieee.org \
    --cc=hannes@cmpxchg.org \
    --cc=nphamcs@gmail.com \
    --cc=rjones@redhat.com \
    --cc=sjenning@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=vitaly.wool@konsulko.com \
    --cc=yosryahmed@google.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 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.