[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190719190649.30096-2-rcampbell@nvidia.com>
Date: Fri, 19 Jul 2019 12:06:47 -0700
From: Ralph Campbell <rcampbell@...dia.com>
To: <linux-mm@...ck.org>
CC: <linux-kernel@...r.kernel.org>,
Ralph Campbell <rcampbell@...dia.com>,
Matthew Wilcox <mawilcox@...rosoft.com>,
Vlastimil Babka <vbabka@...e.cz>,
Christoph Lameter <cl@...ux.com>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Jérôme Glisse <jglisse@...hat.com>,
"Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>,
Lai Jiangshan <jiangshanlai@...il.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
"Pekka Enberg" <penberg@...nel.org>,
Randy Dunlap <rdunlap@...radead.org>,
"Andrey Ryabinin" <aryabinin@...tuozzo.com>,
Christoph Hellwig <hch@....de>,
"Jason Gunthorpe" <jgg@...lanox.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: [PATCH 1/3] mm: document zone device struct page reserved fields
Struct page for ZONE_DEVICE private pages uses the reserved fields when
anonymous pages are migrated to device private memory. This is so
the page->mapping and page->index fields are preserved and the page can
be migrated back to system memory.
Document this in comments so it is more clear.
Signed-off-by: Ralph Campbell <rcampbell@...dia.com>
Cc: Matthew Wilcox <mawilcox@...rosoft.com>
Cc: Vlastimil Babka <vbabka@...e.cz>
Cc: Christoph Lameter <cl@...ux.com>
Cc: Dave Hansen <dave.hansen@...ux.intel.com>
Cc: Jérôme Glisse <jglisse@...hat.com>
Cc: "Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>
Cc: Lai Jiangshan <jiangshanlai@...il.com>
Cc: Martin Schwidefsky <schwidefsky@...ibm.com>
Cc: Pekka Enberg <penberg@...nel.org>
Cc: Randy Dunlap <rdunlap@...radead.org>
Cc: Andrey Ryabinin <aryabinin@...tuozzo.com>
Cc: Christoph Hellwig <hch@....de>
Cc: Jason Gunthorpe <jgg@...lanox.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>
---
include/linux/mm_types.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 3a37a89eb7a7..d6ea74e20306 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -159,7 +159,14 @@ struct page {
/** @pgmap: Points to the hosting device page map. */
struct dev_pagemap *pgmap;
void *zone_device_data;
- 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 */
};
/** @rcu_head: You can use this to free a page by RCU. */
--
2.20.1
Powered by blists - more mailing lists