On Tue, 7 Jul 2026 13:09:01 +1000, [email protected] wrote:

> > -   for (pfn = head_pfn + 1; pfn < end_pfn; pfn++) {
> > +
> > +   pfn = head_pfn + 1;
> > +   /*
> > +    * All tails of the same compound page share the state established by
> > +    * prep_compound_tail(). Reuse one tail template for the whole range and
> > +    * refresh only the PFN-dependent fields in that template before each 
> > copy.
> > +    */
> > +   if (use_template) {
> >             struct page *page = pfn_to_page(pfn);
> >
> > -           zone_device_page_init_slow(page, pfn, zone_idx, nid, pgmap);
> > -           prep_compound_tail(page, head, order);
> > -           set_page_count(page, 0);
> > +           zone_device_tail_page_init(page, pfn, zone_idx, nid,
> > +                                      pgmap, head, order);
> > +           zone_device_template_page_init(&template, page);
> > +           pfn++;
> 
> Similar comment as the previous patch - I think it's clearer to just init the
> template page here as a separate step and not unroll the loop.

Thanks. I will rework memmap_init_compound() the same way in v6.

Thanks,
Zhe

Reply via email to