Subject: Re: [PATCH resend v6 20/30] mm: page_alloc: clear PG_zeroed on buddy merge if not both zero

From: "Michael S. Tsirkin" <[email-masked]>
Date: Tue, 12 May 2026 17:06:05 -0400

On Tue, May 12, 2026 at 12:32:20PM -0400, Gregory Price wrote:
> On Tue, May 12, 2026 at 11:58:27AM -0400, Michael S. Tsirkin wrote:
> > On Tue, May 12, 2026 at 11:56:02AM -0400, Gregory Price wrote:
> > > On Mon, May 11, 2026 at 05:03:35AM -0400, Michael S. Tsirkin wrote:
> > > > When two buddy pages merge in __free_one_page(), preserve
> > > > PG_zeroed on the merged page only if both buddies have the
> > > > flag set.  Otherwise clear it.
> > > > 
> > > > The merged page would inherit PG_zeroed, and a later __GFP_ZERO
> > > > allocation would skip zeroing stale data in the non-zero half.
> > > > 
> > > > Signed-off-by: Michael S. Tsirkin <[email-masked]>
> > > > Assisted-by: Claude:claude-opus-4-6
> > > > Assisted-by: cursor-agent:GPT-5.4-xhigh
> > > > ---
> > > >  mm/page_alloc.c | 15 ++++++++++++++-
> > > >  1 file changed, 14 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> > > > index bd3b909cacdf..d70c9ba6b329 100644
> > > > --- a/mm/page_alloc.c
> > > > +++ b/mm/page_alloc.c
> > > > @@ -940,10 +940,14 @@ static inline void __free_one_page(struct page *page,
> > > >  	unsigned long buddy_pfn = 0;
> > > >  	unsigned long combined_pfn;
> > > >  	struct page *buddy;
> > > > +	bool buddy_zeroed;
> > > > +	bool page_zeroed;
> > > 
> > > If you want to play some code golf, i think you can get away with a
> > > single bool here:
> > > 
> > >     bool zeroed;
> > >     zeroed = PageZeroed(buddy);
> > >     zeroed &= PageZeroed(page);
> > > 
> > >     if (zeroed)
> > >         __SetPageZeroed(page);
> > > 
> > > ~Gregory
> > 
> > Does it matter? It makes my head hurt.
> >
> 
> Less code generally means less bugs, but this is more style nits than
> anything.  Either way
> 
> Reviewed-by: Gregory Price <[email-masked]>
> 
> ~Gregory

many thanks for your detailed review. I did my best to address all
comments, and sent v7. 

-- 
MST