mm/huge_memory: add a comment to the open-coded swap entry

The swap entry of each new folio in __split_folio_to_order() is computed
by hand from folio->swap rather than with folio_swap_entry(), because the
folio's page count is not valid while it is being split.  Add a comment
explaining this.

Link: https://lore.kernel.org/20260908-folio_swap_entry-v2-2-ee6d01dfa5e1@columbia.edu
Signed-off-by: Tal Zussman <tz2294@columbia.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Acked-by: David Hildenbrand (Arm) <david@kernel.org>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Baoquan He <baoquan.he@linux.dev>
Cc: Barry Song <baohua@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chengming Zhou <chengming.zhou@linux.dev>
Cc: Chris Li <chrisl@kernel.org>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Harry Yoo <harry@kernel.org>
Cc: Jann Horn <jannh@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Kairui Song <kasong@tencent.com>
Cc: Kemeng Shi <shikemeng@huaweicloud.com>
Cc: Kiryl Shutsemau <kas@kernel.org>
Cc: Lance Yang <lance.yang@linux.dev>
Cc: Liam R. Howlett <liam@infradead.org>
Cc: Lorenzo Stoakes <ljs@kernel.org>
Cc: Marc Rutland <mark.rutland@arm.com>
Cc: Nhat Pham <nphamcs@gmail.com>
Cc: Rik van Riel <riel@surriel.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Vlastimil Babka <vbabka@kernel.org>
Cc: Will Deacon <will@kernel.org>
This commit is contained in:
Tal Zussman 2026-09-08 11:16:32 -04:00 committed by Andrew Morton
parent 434114544b
commit 140c9dbdf6

View File

@ -3762,6 +3762,10 @@ static void __split_folio_to_order(struct folio *folio, int old_order,
*/
VM_WARN_ON_ONCE_PAGE(new_folio->private, new_head);
/*
* Not all folio fields are valid during a split, so open-code
* the swap entry rather than using folio_swap_entry().
*/
if (folio_test_swapcache(folio))
new_folio->swap.val = folio->swap.val + i;