On Mon, Mar 24, 2025 at 05:07:36PM -0300, Jason Gunthorpe wrote: > On Mon, Mar 24, 2025 at 02:18:34PM -0400, Mike Rapoport wrote: > > On Sun, Mar 23, 2025 at 03:55:52PM -0300, Jason Gunthorpe wrote: > > > On Sat, Mar 22, 2025 at 03:12:26PM -0400, Mike Rapoport wrote: > > > > > > > > > + page->private = order; > > > > > > > > > > Can't just set the page order directly? Why use private? > > > > > > > > Setting the order means recreating the folio the way > > > > prep_compound_page() > > > > does. I think it's better to postpone it until the folio is requested. > > > > This > > > > way it might run after SMP is enabled. > > > > > > I see, that makes sense, but also it could stil use page->order.. > > > > But there's no page->order :) > > I mean this: > > static inline unsigned int folio_order(const struct folio *folio) > { > if (!folio_test_large(folio)) > return 0; > return folio->_flags_1 & 0xff; > }
I don't think it's better than page->private, KHO will need to prep_compound_page() anyway so these will be overwritten there. And I don't remember, but having those set before prep_compound_page() might trigger VM_BUG_ON_PGFLAGS(). > Jason -- Sincerely yours, Mike.