History

mm/huge_memory: add page->private check back in __split_folio_to_order()

page->private should not be set in tail pages. Commit 4265d67e405a ("mm/migrate_device: add THP splitting during migration") removed a DEBUG_VM check without a proper reason[1]. Add it back.

Zi Yan committed 4 months ago

Commit d0076581 parent 7ae5a5d1 file · +7 −0Browse files

Unified · Split

mm/huge_memory.c+7−0
@@ -3591,6 +3591,13 @@ static void __split_folio_to_order(struct folio *folio, int old_order, · 3590 unmodified lines
35913591 new_folio->mapping = folio->mapping;
35923592 new_folio->index = folio->index + i;
35933593
3594+ /*
3595+ * page->private should not be set in tail pages. Warn once
3596+ * if private is unexpectedly set. Do it before swap.val assignment
3597+ * since private overlaps with swap.val.
3598+ */
3599+ VM_WARN_ON_ONCE_PAGE(new_folio->private, new_head);
3600+
35943601 if (folio_test_swapcache(folio))
35953602 new_folio->swap.val = folio->swap.val + i;
35963603