Re: [PATCH 1/3] mm: document zone device struct page reserved fields

From: Christoph Hellwig
Date: Wed Jul 17 2019 - 00:23:07 EST


On Tue, Jul 16, 2019 at 06:20:23PM -0700, John Hubbard wrote:
> > - unsigned long _zd_pad_1; /* uses mapping */
> > + /*
> > + * The following fields are used to hold the source
> > + * page anonymous mapping information while it is
> > + * migrated to device memory. See migrate_page().
> > + */
> > + unsigned long _zd_pad_1; /* aliases mapping */
> > + unsigned long _zd_pad_2; /* aliases index */
> > + unsigned long _zd_pad_3; /* aliases private */
>
> Actually, I do think this helps. It's hard to document these fields, and
> the ZONE_DEVICE pages have a really complicated situation during migration
> to a device.
>
> Additionally, I'm not sure, but should we go even further, and do this on the
> other side of the alias:

The _zd_pad_* field obviously are NOT used anywhere in the source tree.
So these comments are very misleading. If we still keep
using ->mapping, ->index and ->private we really should clean up the
definition of struct page to make that obvious instead of trying to
doctor around it using comments.