On Wed, Dec 09, 2020 at 04:02:05PM +0000, Joao Martins wrote: > Today (without the series) struct pages are not represented the way they > are expressed in the page tables, which is what I am hoping to fix in this > series thus initializing these as compound pages of a given order. But me > introducing PGMAP_COMPOUND was to conservatively keep both old (non-compound) > and new (compound pages) co-exist. Oooh, that I didn't know.. That is kind of horrible to have a PMD pointing at an order 0 page only in this one special case. Still, I think it would be easier to teach record_subpages() that a PMD doesn't necessarily point to a high order page, eg do something like I suggested for the SGL where it extracts the page order and iterates over the contiguous range of pfns. This way it can remain general with no particularly special path for devmap or a special PGMAP_COMPOUND check here. Jason