On Wed, Jul 24, 2019 at 04:26:58PM -0700, Ralph Campbell wrote: > Struct page for ZONE_DEVICE private pages uses the page->mapping and > and page->index fields while the source anonymous pages are migrated to > device private memory. This is so rmap_walk() can find the page when > migrating the ZONE_DEVICE private page back to system memory. > ZONE_DEVICE pmem backed fsdax pages also use the page->mapping and > page->index fields when files are mapped into a process address space. > > Add comments to struct page and remove the unused "_zd_pad_1" field > to make this more clear. I still think we should also fix up the layout, and I haven't seen a reply from Matthew justifying his curses for your patch that makes the struct page layout actually match how it is used.