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.

On 7/24/19 10:38 PM, Christoph Hellwig wrote:
> 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.>
Well, I can kind of see this both ways since ZONE_DEVICE
MEMORY_DEVICE_DEVDAX and MEMORY_DEVICE_PCI_P2PDMA don't
seem to use the 3 words like MEMORY_DEVICE_PRIVATE and
MEMORY_DEVICE_FS_DAX.
I like v3 because not all of the ZONE_DEVICE types are handled
the same in regards to using the 3 words and there may be future
ZONE_DEVICE types that use the 3 words differently which might
require a union.
I agree, I would like to hear from Matthew on his thoughts.