All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.com>
To: Richard Chang <richardycc@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Kairui Song <kasong@tencent.com>, Qi Zheng <qi.zheng@linux.dev>,
	Shakeel Butt <shakeel.butt@linux.dev>,
	Barry Song <baohua@kernel.org>,
	Axel Rasmussen <axelrasmussen@google.com>,
	Yuanchu Xie <yuanchu@google.com>, Wei Xu <weixugc@google.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	David Hildenbrand <david@kernel.org>,
	Lorenzo Stoakes <ljs@kernel.org>,
	Suren Baghdasaryan <surenb@google.com>,
	"T . J . Mercier" <tjmercier@google.com>,
	Martin Liu <liumartin@google.com>,
	Minchan Kim <minchan@kernel.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] mm: vmscan: abort proactive reclaim early when freezing for suspend
Date: Tue, 14 Jul 2026 14:40:09 +0200	[thread overview]
Message-ID: <alYuKYnHgAaOFz-z@tiehlicka> (raw)
In-Reply-To: <alYqVPEyZ2ySrdAm@tiehlicka>

On Tue 14-07-26 14:23:50, Michal Hocko wrote:
> On Tue 14-07-26 17:00:37, Richard Chang wrote:
[...]
> > On the other hand, the freezer timeout/suspend failure is a genuine
> > bug currently impacting Android devices in the field. The proposed
> > patch safely addresses this immediate issue by leveraging the
> > pre-existing -EINTR exit path in user_proactive_reclaim(). Could we
> > focus on the current patch and open a separate discussion for a more
> > ideal, long-term design regarding freezer invisibility as a follow-up?
> 
> I am not insisting both to be addressed in the same patch. But building
> more on top of a broken behavior is not healthy either.
> In the current state this should be as easy as turning signal_pending
> into fatal_signal_pending and try_to_freeze at the pro-active reclaim
> entry point which should be safe from the freezer POV.

Something like the following on top of your early break from reclaim
patch. Maybe there is a better way. Freezer has always been quite
confusing to me but this should work AFAICT.

diff --git a/mm/vmscan.c b/mm/vmscan.c
index 35c3bb15ae96..3795734b3a22 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -7909,9 +7909,15 @@ int user_proactive_reclaim(char *buf,
 		unsigned long batch_size = (nr_to_reclaim - nr_reclaimed) / 4;
 		unsigned long reclaimed;
 
-		if (signal_pending(current))
+		if (fatal_signal_pending(current))
 			return -EINTR;
 
+		/*
+		 * Make sure this potentially costly operation doesn't block
+		 * freezer for too long.
+		 */
+		try_to_freeze();
+
 		/*
 		 * This is the final attempt, drain percpu lru caches in the
 		 * hope of introducing more evictable pages.
-- 
Michal Hocko
SUSE Labs

  reply	other threads:[~2026-07-14 12:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-06  8:12 [PATCH] mm: vmscan: abort proactive reclaim early when freezing Richard Chang
2026-07-06 12:54 ` Barry Song
2026-07-07  8:00   ` Richard Chang
2026-07-06 23:38 ` Andrew Morton
2026-07-07 10:13   ` Richard Chang
2026-07-07  2:20 ` Yosry Ahmed
2026-07-07  8:04   ` Richard Chang
2026-07-07 18:28     ` Yosry Ahmed
2026-07-07 19:48 ` Shakeel Butt
2026-07-08  4:14   ` Richard Chang
2026-07-08  4:54     ` Shakeel Butt
2026-07-08  7:24       ` Richard Chang
2026-07-08 15:47         ` Shakeel Butt
2026-07-08 16:03           ` T.J. Mercier
2026-07-08 16:51             ` Shakeel Butt
2026-07-09  7:22               ` [PATCH v2] mm: vmscan: abort proactive reclaim early when freezing for suspend Richard Chang
2026-07-09 12:06                 ` Michal Hocko
2026-07-10  3:29                   ` Richard Chang
2026-07-10  6:27                     ` Michal Hocko
2026-07-14  9:00                       ` Richard Chang
2026-07-14 12:23                         ` Michal Hocko
2026-07-14 12:40                           ` Michal Hocko [this message]
2026-07-15  7:56                             ` Richard Chang
2026-07-15  8:49                               ` Michal Hocko
2026-07-15 17:47                                 ` Oleg Nesterov
2026-07-15 19:58                                   ` 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=alYuKYnHgAaOFz-z@tiehlicka \
    --to=mhocko@suse.com \
    --cc=akpm@linux-foundation.org \
    --cc=axelrasmussen@google.com \
    --cc=baohua@kernel.org \
    --cc=david@kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=kasong@tencent.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=liumartin@google.com \
    --cc=ljs@kernel.org \
    --cc=minchan@kernel.org \
    --cc=qi.zheng@linux.dev \
    --cc=richardycc@google.com \
    --cc=shakeel.butt@linux.dev \
    --cc=surenb@google.com \
    --cc=tjmercier@google.com \
    --cc=weixugc@google.com \
    --cc=yuanchu@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.