On Mon, Jan 19, 2026 at 09:50:16PM -0500, Zi Yan wrote: > >> I suppose we want some prep_single_page(page) and some reorg to share > >> code with the other prep function. > > This is just an unnecessary need due to lack of knowledge of/do not want > to investigate core MM page and folio initialization code.
It will be better to keep this related code together, not spread all around. > >> I don't think so. It should do the above job efficiently and iterate > >> over the page list exactly once. > > folio initialization should not iterate over any page list, since folio is > supposed to be treated as a whole instead of individual pages. The tail pages need to have the right data in them or compound_head won't work. > folio->mapping = NULL; > folio->memcg_data = 0; > folio->flags.f &= ~PAGE_FLAGS_CHECK_AT_PREP; > > should be enough. This seems believable to me for setting up an order 0 page. > if (order) > folio_set_large_rmappable(folio); That one is in zone_device_folio_init() And maybe the naming has got really confused if we have both functions now :\ Jason
