[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <16838F71-3E96-4EFE-BDA1-600C33F75D36@nvidia.com>
Date: Mon, 03 Mar 2025 21:03:04 -0500
From: Zi Yan <ziy@...dia.com>
To: Liu Shixin <liushixin2@...wei.com>,
Baolin Wang <baolin.wang@...ux.alibaba.com>, <linux-mm@...ck.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>, Barry Song <baohua@...nel.org>,
David Hildenbrand <david@...hat.com>,
Kefeng Wang <wangkefeng.wang@...wei.com>, Lance Yang <ioworker0@...il.com>,
Ryan Roberts <ryan.roberts@....com>, Matthew Wilcox <willy@...radead.org>,
Hugh Dickins <hughd@...gle.com>,
Charan Teja Kalla <quic_charante@...cinc.com>, linux-kernel@...r.kernel.org,
Zi Yan <ziy@...dia.com>, Shivank Garg <shivankg@....com>,
stable@...r.kernel.org
Subject: Re: [PATCH v2] mm/migrate: fix shmem xarray update during migration
On 28 Feb 2025, at 12:49, Zi Yan wrote:
> Pagecache uses multi-index entries for large folio, so does shmem. Only
> swap cache still stores multiple entries for a single large folio.
> Commit fc346d0a70a1 ("mm: migrate high-order folios in swap cache correctly")
> fixed swap cache but got shmem wrong by storing multiple entries for
> a large shmem folio. Fix it by storing a single entry for a shmem
> folio.
>
> Fixes: fc346d0a70a1 ("mm: migrate high-order folios in swap cache correctly")
> Reported-by: Liu Shixin <liushixin2@...wei.com>
> Closes: https://lore.kernel.org/all/28546fb4-5210-bf75-16d6-43e1f8646080@huawei.com/
> Signed-off-by: Zi Yan <ziy@...dia.com>
> Reviewed-by: Shivank Garg <shivankg@....com>
+Cc:stable
> ---
> mm/migrate.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/mm/migrate.c b/mm/migrate.c
> index 365c6daa8d1b..2c9669135a38 100644
> --- a/mm/migrate.c
> +++ b/mm/migrate.c
> @@ -524,7 +524,11 @@ static int __folio_migrate_mapping(struct address_space *mapping,
> folio_set_swapcache(newfolio);
> newfolio->private = folio_get_private(folio);
> }
> - entries = nr;
> + /* shmem uses high-order entry */
> + if (!folio_test_anon(folio))
> + entries = 1;
> + else
> + entries = nr;
> } else {
> VM_BUG_ON_FOLIO(folio_test_swapcache(folio), folio);
> entries = 1;
> --
> 2.47.2
Best Regards,
Yan, Zi
Powered by blists - more mailing lists