>> From: Ran Xiaokai <[email protected]> >> >> Memblock pages (including reserved memory) should have their allocation >> tags initialized to CODETAG_EMPTY via clear_page_tag_ref() before being >> released to the page allocator. When kho restores pages through >> kho_restore_page(), missing this call causes mismatched >> allocation/deallocation tracking and below warning message: >> >> alloc_tag was not set >> WARNING: include/linux/alloc_tag.h:164 at ___free_pages+0xb8/0x260, CPU#1: >> swapper/0/1 >> RIP: 0010:___free_pages+0xb8/0x260 >> kho_restore_vmalloc+0x187/0x2e0 >> kho_test_init+0x3c4/0xa30 >> do_one_initcall+0x62/0x2b0 >> kernel_init_freeable+0x25b/0x480 >> kernel_init+0x1a/0x1c0 >> ret_from_fork+0x2d1/0x360 >> >> Add missing clear_page_tag_ref() annotation in kho_restore_page() to >> fix this. >> >> Signed-off-by: Ran Xiaokai <[email protected]> >> --- >> It is based on linux-next 20260120. I dont konw whether this base is ok ? > >It's awkward. > >Your v2 patch was based on Linus mainline. This is appropriate, as the >patch should be sent to Linus soon and it has cc:stable, so -stable >maintainers will try to backport it into earlier kernels. > >However your v3 patch is dependent upon other material ("kho: simplify >page initialization in kho_restore_page()") which is scheduled for >6.20(?)-rc1.
I think i misunderstood Pratyush's last reply: "I suggested a re-roll of this patch based on top of my cleanup patches [1], since I think with those the end result is a bit nicer." >For a prompt, backportable merge it's best to base the fix on latest >Linus mainline, please. > >You didn't actually describe why v3 is different from v2. If the >v2->v3 changes are just nice-to-have then let's redo those and base >them on linux-next in the usual fashion. >Unless I'm missing something, your well-reviewed, decently-tested v2 >patch remains suitable for upstreaming during 6.18-rcX v2 version just fixed the folio case(compound page), but didn't fix the contiguous order 0 pages case. So i think it is better to send a v3 version base on lastest Linus tree and drop the v2 version.
