Re: [PATCH v3 1/3] mm: document zone device struct page field usage

From: Ralph Campbell
Date: Thu Jul 25 2019 - 14:19:13 EST



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.