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.