linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] kho: init alloc tags when restoring pages from reserved memory
@ 2026-01-09 10:42 ranxiaokai627
  2026-01-11  0:28 ` Andrew Morton
  2026-01-11  9:09 ` Mike Rapoport
  0 siblings, 2 replies; 6+ messages in thread
From: ranxiaokai627 @ 2026-01-09 10:42 UTC (permalink / raw)
  To: graf, rppt, pasha.tatashin, pratyush, akpm, surenb
  Cc: kexec, linux-mm, linux-kernel, ran.xiaokai, ranxiaokai627

From: Ran Xiaokai <ran.xiaokai@zte.com.cn>

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 warning message:
alloc_tag was not set.

Add missing clear_page_tag_ref() annotation in kho_restore_page() to
fix this.

Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>
---
 kernel/liveupdate/kexec_handover.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c
index cd6b3fb9dcae..2d47f2c50bd8 100644
--- a/kernel/liveupdate/kexec_handover.c
+++ b/kernel/liveupdate/kexec_handover.c
@@ -268,6 +268,7 @@ static struct page *kho_restore_page(phys_addr_t phys, bool is_folio)
 	else
 		kho_init_pages(page, nr_pages);
 
+	clear_page_tag_ref(page);
 	adjust_managed_page_count(page, nr_pages);
 	return page;
 }
-- 
2.25.1




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kho: init alloc tags when restoring pages from reserved memory
  2026-01-09 10:42 [PATCH] kho: init alloc tags when restoring pages from reserved memory ranxiaokai627
@ 2026-01-11  0:28 ` Andrew Morton
  2026-01-11  9:11   ` Mike Rapoport
  2026-01-11  9:09 ` Mike Rapoport
  1 sibling, 1 reply; 6+ messages in thread
From: Andrew Morton @ 2026-01-11  0:28 UTC (permalink / raw)
  To: ranxiaokai627
  Cc: graf, rppt, pasha.tatashin, pratyush, surenb, kexec, linux-mm,
	linux-kernel, ran.xiaokai

On Fri,  9 Jan 2026 10:42:51 +0000 ranxiaokai627@163.com wrote:

> From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
> 
> 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 warning message:
> alloc_tag was not set.
> 
> Add missing clear_page_tag_ref() annotation in kho_restore_page() to
> fix this.

Great, thanks.

It would be helpful to quote that warning message in the patch
changelog, please.

> --- a/kernel/liveupdate/kexec_handover.c
> +++ b/kernel/liveupdate/kexec_handover.c
> @@ -268,6 +268,7 @@ static struct page *kho_restore_page(phys_addr_t phys, bool is_folio)
>  	else
>  		kho_init_pages(page, nr_pages);
>  
> +	clear_page_tag_ref(page);
>  	adjust_managed_page_count(page, nr_pages);
>  	return page;
>  }

Warning splats are pretty bad and it's desirable to fix this in
previous kernel versions.

To do that it's best for us to identify which kernel version(s) should
be patched, via a Fixes: tag in the changelog.

From a quick look, it appears that Pratyush's 12b9a2c05d1b ("kho:
initialize tail pages for higher order folios properly") is a suitable
anchor, what do people think?

Meanwhile I'll queue this up for some testing while awaiting maintainer
feedback.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kho: init alloc tags when restoring pages from reserved memory
  2026-01-09 10:42 [PATCH] kho: init alloc tags when restoring pages from reserved memory ranxiaokai627
  2026-01-11  0:28 ` Andrew Morton
@ 2026-01-11  9:09 ` Mike Rapoport
  2026-01-11 19:58   ` Suren Baghdasaryan
  1 sibling, 1 reply; 6+ messages in thread
From: Mike Rapoport @ 2026-01-11  9:09 UTC (permalink / raw)
  To: ranxiaokai627
  Cc: graf, pasha.tatashin, pratyush, akpm, surenb, kexec, linux-mm,
	linux-kernel, ran.xiaokai

On Fri, Jan 09, 2026 at 10:42:51AM +0000, ranxiaokai627@163.com wrote:
> From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
> 
> 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 warning message:
> alloc_tag was not set.
> 
> Add missing clear_page_tag_ref() annotation in kho_restore_page() to
> fix this.
> 
> Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>

Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

> ---
>  kernel/liveupdate/kexec_handover.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c
> index cd6b3fb9dcae..2d47f2c50bd8 100644
> --- a/kernel/liveupdate/kexec_handover.c
> +++ b/kernel/liveupdate/kexec_handover.c
> @@ -268,6 +268,7 @@ static struct page *kho_restore_page(phys_addr_t phys, bool is_folio)
>  	else
>  		kho_init_pages(page, nr_pages);
>  
> +	clear_page_tag_ref(page);
>  	adjust_managed_page_count(page, nr_pages);
>  	return page;
>  }
> -- 
> 2.25.1
> 
> 

-- 
Sincerely yours,
Mike.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kho: init alloc tags when restoring pages from reserved memory
  2026-01-11  0:28 ` Andrew Morton
@ 2026-01-11  9:11   ` Mike Rapoport
  2026-01-11 19:58     ` Suren Baghdasaryan
  0 siblings, 1 reply; 6+ messages in thread
From: Mike Rapoport @ 2026-01-11  9:11 UTC (permalink / raw)
  To: Andrew Morton
  Cc: ranxiaokai627, graf, pasha.tatashin, pratyush, surenb, kexec,
	linux-mm, linux-kernel, ran.xiaokai

On Sat, Jan 10, 2026 at 04:28:43PM -0800, Andrew Morton wrote:
> On Fri,  9 Jan 2026 10:42:51 +0000 ranxiaokai627@163.com wrote:
> 
> > From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
> > 
> > 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 warning message:
> > alloc_tag was not set.
> > 
> > Add missing clear_page_tag_ref() annotation in kho_restore_page() to
> > fix this.
> 
> Great, thanks.
> 
> It would be helpful to quote that warning message in the patch
> changelog, please.
> 
> > --- a/kernel/liveupdate/kexec_handover.c
> > +++ b/kernel/liveupdate/kexec_handover.c
> > @@ -268,6 +268,7 @@ static struct page *kho_restore_page(phys_addr_t phys, bool is_folio)
> >  	else
> >  		kho_init_pages(page, nr_pages);
> >  
> > +	clear_page_tag_ref(page);
> >  	adjust_managed_page_count(page, nr_pages);
> >  	return page;
> >  }
> 
> Warning splats are pretty bad and it's desirable to fix this in
> previous kernel versions.
> 
> To do that it's best for us to identify which kernel version(s) should
> be patched, via a Fixes: tag in the changelog.
> 
> From a quick look, it appears that Pratyush's 12b9a2c05d1b ("kho:
> initialize tail pages for higher order folios properly") is a suitable
> anchor, what do people think?

I think it should be even earlier:
fc33e4b44b27 ("kexec: enable KHO support for memory preservation")
 
> Meanwhile I'll queue this up for some testing while awaiting maintainer
> feedback.

-- 
Sincerely yours,
Mike.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kho: init alloc tags when restoring pages from reserved memory
  2026-01-11  9:11   ` Mike Rapoport
@ 2026-01-11 19:58     ` Suren Baghdasaryan
  0 siblings, 0 replies; 6+ messages in thread
From: Suren Baghdasaryan @ 2026-01-11 19:58 UTC (permalink / raw)
  To: Mike Rapoport
  Cc: Andrew Morton, ranxiaokai627, graf, pasha.tatashin, pratyush,
	kexec, linux-mm, linux-kernel, ran.xiaokai

On Sun, Jan 11, 2026 at 1:11 AM Mike Rapoport <rppt@kernel.org> wrote:
>
> On Sat, Jan 10, 2026 at 04:28:43PM -0800, Andrew Morton wrote:
> > On Fri,  9 Jan 2026 10:42:51 +0000 ranxiaokai627@163.com wrote:
> >
> > > From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
> > >
> > > 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 warning message:
> > > alloc_tag was not set.
> > >
> > > Add missing clear_page_tag_ref() annotation in kho_restore_page() to
> > > fix this.
> >
> > Great, thanks.
> >
> > It would be helpful to quote that warning message in the patch
> > changelog, please.
> >
> > > --- a/kernel/liveupdate/kexec_handover.c
> > > +++ b/kernel/liveupdate/kexec_handover.c
> > > @@ -268,6 +268,7 @@ static struct page *kho_restore_page(phys_addr_t phys, bool is_folio)
> > >     else
> > >             kho_init_pages(page, nr_pages);
> > >
> > > +   clear_page_tag_ref(page);
> > >     adjust_managed_page_count(page, nr_pages);
> > >     return page;
> > >  }
> >
> > Warning splats are pretty bad and it's desirable to fix this in
> > previous kernel versions.
> >
> > To do that it's best for us to identify which kernel version(s) should
> > be patched, via a Fixes: tag in the changelog.
> >
> > From a quick look, it appears that Pratyush's 12b9a2c05d1b ("kho:
> > initialize tail pages for higher order folios properly") is a suitable
> > anchor, what do people think?
>
> I think it should be even earlier:
> fc33e4b44b27 ("kexec: enable KHO support for memory preservation")

I agree.

>
> > Meanwhile I'll queue this up for some testing while awaiting maintainer
> > feedback.
>
> --
> Sincerely yours,
> Mike.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kho: init alloc tags when restoring pages from reserved memory
  2026-01-11  9:09 ` Mike Rapoport
@ 2026-01-11 19:58   ` Suren Baghdasaryan
  0 siblings, 0 replies; 6+ messages in thread
From: Suren Baghdasaryan @ 2026-01-11 19:58 UTC (permalink / raw)
  To: Mike Rapoport
  Cc: ranxiaokai627, graf, pasha.tatashin, pratyush, akpm, kexec,
	linux-mm, linux-kernel, ran.xiaokai

On Sun, Jan 11, 2026 at 1:09 AM Mike Rapoport <rppt@kernel.org> wrote:
>
> On Fri, Jan 09, 2026 at 10:42:51AM +0000, ranxiaokai627@163.com wrote:
> > From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
> >
> > 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 warning message:
> > alloc_tag was not set.
> >
> > Add missing clear_page_tag_ref() annotation in kho_restore_page() to
> > fix this.
> >
> > Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>
>
> Reviewed-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

Reviewed-by: Suren Baghdasaryan <surenb@google.com>

>
> > ---
> >  kernel/liveupdate/kexec_handover.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/kernel/liveupdate/kexec_handover.c b/kernel/liveupdate/kexec_handover.c
> > index cd6b3fb9dcae..2d47f2c50bd8 100644
> > --- a/kernel/liveupdate/kexec_handover.c
> > +++ b/kernel/liveupdate/kexec_handover.c
> > @@ -268,6 +268,7 @@ static struct page *kho_restore_page(phys_addr_t phys, bool is_folio)
> >       else
> >               kho_init_pages(page, nr_pages);
> >
> > +     clear_page_tag_ref(page);
> >       adjust_managed_page_count(page, nr_pages);
> >       return page;
> >  }
> > --
> > 2.25.1
> >
> >
>
> --
> Sincerely yours,
> Mike.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-01-11 19:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-01-09 10:42 [PATCH] kho: init alloc tags when restoring pages from reserved memory ranxiaokai627
2026-01-11  0:28 ` Andrew Morton
2026-01-11  9:11   ` Mike Rapoport
2026-01-11 19:58     ` Suren Baghdasaryan
2026-01-11  9:09 ` Mike Rapoport
2026-01-11 19:58   ` Suren Baghdasaryan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox