The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Minchan Kim <minchan@kernel.org>
To: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: akpm@linux-foundation.org, hca@linux.ibm.com,
	linux-s390@vger.kernel.org, david@kernel.org, mhocko@suse.com,
	brauner@kernel.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, surenb@google.com,
	timmurray@google.com
Subject: Re: [PATCH v1 1/3] mm: process_mrelease: expedite clean file folio reclaim via mmu_gather
Date: Mon, 11 May 2026 14:48:59 -0700	[thread overview]
Message-ID: <agJOy1vnvYGipnku@google.com> (raw)
In-Reply-To: <d9644dab-120f-485c-9324-205282d89234-agordeev@linux.ibm.com>

On Mon, May 11, 2026 at 06:13:09PM +0200, Alexander Gordeev wrote:
> On Fri, May 08, 2026 at 02:56:35PM -0700, Minchan Kim wrote:
> 
> Hi Minchan,
> 
> > > > +void free_pages_and_caches(struct mm_struct *mm, struct encoded_page **pages, int nr)
> > > > +{
> > > > +	bool try_evict_file_folios = mm_flags_test(MMF_UNSTABLE, mm);
> > > > +	struct folio_batch folios;
> > > > +	unsigned int refs[PAGEVEC_SIZE];
> > > > +
> > > > +	folio_batch_init(&folios);
> > > > +	for (int i = 0; i < nr; i++) {
> > > > +		struct folio *folio = page_folio(encoded_page_ptr(pages[i]));
> > > > +
> > > > +		if (folio_test_anon(folio))
> > > > +			free_swap_cache(folio);
> > > > +		else if (unlikely(try_evict_file_folios))
> > > > +			free_file_cache(folio);
> > > 
> > > This condition is absent in free_pages_and_swap_cache().
> > > What would happen with non-anon and non-evict folio?
> > 
> > Are you asking about mlocked pages for file?
> > 
> > During unmapping, munlock_vma_folio() inside __folio_remove_rmap() clears
> > the PG_mlocked flag and moves the folio back to the evictable LRU list.
> > 
> > By the time the folios reach free_pages_and_caches(), if the folio is
> > exclusive, it will be successfully evicted. However, if the folio is shared,
> > mapping_evict_folio() detects it via the refcount check and skips the
> > eviction.
> > 
> > However, I realized we miss shmem folios in the swap cache due to the new
> > folio_test_anon() check we introduced. I will update the check to something
> > like this:
> > 
> > if (folio_test_swapcache(folio))
> >     free_swap_cache(folio);
> 
> This condition looks redundant, since free_swap_cache() checks it too.

What I meant is that the free_pages_and_swap_cache calls free_swap_cache
unconditionally for all those folio but my change in
free_pages_and_cached calls it only anon folio, which will miss shmem
cases.

      reply	other threads:[~2026-05-11 21:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260421230239.172582-1-minchan@kernel.org>
     [not found] ` <20260421230239.172582-2-minchan@kernel.org>
2026-05-05 14:53   ` [PATCH v1 1/3] mm: process_mrelease: expedite clean file folio reclaim via mmu_gather Alexander Gordeev
2026-05-08 21:56     ` Minchan Kim
2026-05-11 16:13       ` Alexander Gordeev
2026-05-11 21:48         ` Minchan Kim [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=agJOy1vnvYGipnku@google.com \
    --to=minchan@kernel.org \
    --cc=agordeev@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=brauner@kernel.org \
    --cc=david@kernel.org \
    --cc=hca@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mhocko@suse.com \
    --cc=surenb@google.com \
    --cc=timmurray@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox