From: Sasha Levin <sashal@kernel.org>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: Suren Baghdasaryan <surenb@google.com>,
stable@vger.kernel.org, Ran Xiaokai <ran.xiaokai@zte.com.cn>,
Pratyush Yadav <pratyush@kernel.org>,
Pasha Tatashin <pasha.tatashin@soleen.com>,
"Mike Rapoport (Microsoft)" <rppt@kernel.org>,
Alexander Graf <graf@amazon.com>,
Kent Overstreet <kent.overstreet@linux.dev>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 6.18.y] kho: init alloc tags when restoring pages from reserved memory
Date: Wed, 4 Feb 2026 12:56:48 -0500 [thread overview]
Message-ID: <aYOIYOFoId9kY2Uh@laps> (raw)
In-Reply-To: <2026020427-germinate-pastor-aa8f@gregkh>
On Wed, Feb 04, 2026 at 06:06:16PM +0100, Greg KH wrote:
>On Wed, Feb 04, 2026 at 08:46:35AM -0800, Suren Baghdasaryan wrote:
>> On Wed, Feb 4, 2026 at 1:59 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>> >
>> > On Tue, Feb 03, 2026 at 07:26:54PM -0500, Sasha Levin wrote:
>> > > From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
>> > >
>> > > [ Upstream commit e86436ad0ad2a9aaf88802d69b68f02cbd1f04a9 ]
>> > >
>> > > 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.
>> > >
>> > > Link: https://lkml.kernel.org/r/20260122132740.176468-1-ranxiaokai627@163.com
>> > > Fixes: fc33e4b44b27 ("kexec: enable KHO support for memory preservation")
>> > > Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>
>> > > Reviewed-by: Pratyush Yadav <pratyush@kernel.org>
>> > > Reviewed-by: Pasha Tatashin <pasha.tatashin@soleen.com>
>> > > Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
>> > > Cc: Alexander Graf <graf@amazon.com>
>> > > Cc: Kent Overstreet <kent.overstreet@linux.dev>
>> > > Cc: Suren Baghdasaryan <surenb@google.com>
>> > > Cc: <stable@vger.kernel.org>
>> > > Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
>> > > Signed-off-by: Sasha Levin <sashal@kernel.org>
>> > > ---
>> > > kernel/kexec_handover.c | 8 ++++++++
>> > > 1 file changed, 8 insertions(+)
>> > >
>> > > diff --git a/kernel/kexec_handover.c b/kernel/kexec_handover.c
>> > > index 03d12e27189fc..db08c1a2e1f80 100644
>> > > --- a/kernel/kexec_handover.c
>> > > +++ b/kernel/kexec_handover.c
>> > > @@ -260,6 +260,14 @@ static struct page *kho_restore_page(phys_addr_t phys)
>> > > if (info.order > 0)
>> > > prep_compound_page(page, info.order);
>> > >
>> > > + /* Always mark headpage's codetag as empty to avoid accounting mismatch */
>> > > + clear_page_tag_ref(page);
>> > > + if (!is_folio) {
>> > > + /* Also do that for the non-compound tail pages */
>> > > + for (unsigned int i = 1; i < nr_pages; i++)
>> > > + clear_page_tag_ref(page + i);
>> > > + }
>> > > +
>> >
>> > Breaks the build :(
>>
>> Which config? I built both defconfig and CONFIG_MEM_ALLOC_PROFILING=y,
>> they didn't fail. Could you please send me your failing config?
>
>is_folio is not defined in this function, how are you even building this
>file?
This is a stupid issue I've hit last time too: allmodconfig sets
CONFIG_DEFERRED_STRUCT_PAGE_INIT=y which disables KHO.
I'll figure out a patch that still builds KHO if CONFIG_COMPILE_TEST is set,
unless someone beats be to it...
--
Thanks,
Sasha
next prev parent reply other threads:[~2026-02-04 17:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-03 14:30 FAILED: patch "[PATCH] kho: init alloc tags when restoring pages from reserved" failed to apply to 6.18-stable tree gregkh
2026-02-04 0:26 ` [PATCH 6.18.y] kho: init alloc tags when restoring pages from reserved memory Sasha Levin
2026-02-04 9:59 ` Greg KH
2026-02-04 16:46 ` Suren Baghdasaryan
2026-02-04 17:06 ` Greg KH
2026-02-04 17:56 ` Sasha Levin [this message]
2026-02-04 17:59 ` Suren Baghdasaryan
2026-02-05 3:30 ` ranxiaokai627
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=aYOIYOFoId9kY2Uh@laps \
--to=sashal@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=graf@amazon.com \
--cc=gregkh@linuxfoundation.org \
--cc=kent.overstreet@linux.dev \
--cc=pasha.tatashin@soleen.com \
--cc=pratyush@kernel.org \
--cc=ran.xiaokai@zte.com.cn \
--cc=rppt@kernel.org \
--cc=stable@vger.kernel.org \
--cc=surenb@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.