diff mbox

[2/3] mm: introduce memory type MEMORY_DEVICE_DEV_DAX

Message ID 5c7996b8e6d31541f3185f8e4064ff97582c86f8.1530716899.git.yi.z.zhang@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Zhang, Yi July 4, 2018, 3:30 p.m. UTC
Currently, NVDIMM pages will be marked 'PageReserved'. However, unlike
other reserved PFNs, pages on NVDIMM shall still behave like normal ones
in many cases, i.e. when used as backend memory of KVM guest. This patch
introduces a new memory type, MEMORY_DEVICE_DEV_DAX. Together with the
existing type MEMORY_DEVICE_FS_DAX, we can differentiate the pages on
NVDIMM with the normal reserved pages.

Signed-off-by: Zhang Yi <yi.z.zhang@linux.intel.com>
Signed-off-by: Zhang Yu <yu.c.zhang@linux.intel.com>
---
 drivers/dax/pmem.c       | 1 +
 include/linux/memremap.h | 1 +
 2 files changed, 2 insertions(+)

Comments

Dan Williams July 4, 2018, 2:50 p.m. UTC | #1
On Wed, Jul 4, 2018 at 8:30 AM, Zhang Yi <yi.z.zhang@linux.intel.com> wrote:
> Currently, NVDIMM pages will be marked 'PageReserved'. However, unlike
> other reserved PFNs, pages on NVDIMM shall still behave like normal ones
> in many cases, i.e. when used as backend memory of KVM guest. This patch
> introduces a new memory type, MEMORY_DEVICE_DEV_DAX. Together with the
> existing type MEMORY_DEVICE_FS_DAX, we can differentiate the pages on
> NVDIMM with the normal reserved pages.
>
> Signed-off-by: Zhang Yi <yi.z.zhang@linux.intel.com>
> Signed-off-by: Zhang Yu <yu.c.zhang@linux.intel.com>
> ---
>  drivers/dax/pmem.c       | 1 +
>  include/linux/memremap.h | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/drivers/dax/pmem.c b/drivers/dax/pmem.c
> index fd49b24..fb3f363 100644
> --- a/drivers/dax/pmem.c
> +++ b/drivers/dax/pmem.c
> @@ -111,6 +111,7 @@ static int dax_pmem_probe(struct device *dev)
>                 return rc;
>
>         dax_pmem->pgmap.ref = &dax_pmem->ref;
> +       dax_pmem->pgmap.type = MEMORY_DEVICE_DEV_DAX;
>         addr = devm_memremap_pages(dev, &dax_pmem->pgmap);
>         if (IS_ERR(addr))
>                 return PTR_ERR(addr);
> diff --git a/include/linux/memremap.h b/include/linux/memremap.h
> index 5ebfff6..4127bf7 100644
> --- a/include/linux/memremap.h
> +++ b/include/linux/memremap.h
> @@ -58,6 +58,7 @@ enum memory_type {
>         MEMORY_DEVICE_PRIVATE = 1,
>         MEMORY_DEVICE_PUBLIC,
>         MEMORY_DEVICE_FS_DAX,
> +       MEMORY_DEVICE_DEV_DAX,

Please add documentation for this new type to the comment block about
this definition.
zhangyi6 July 5, 2018, 1:20 p.m. UTC | #2
On 2018年07月04日 22:50, Dan Williams wrote:
> On Wed, Jul 4, 2018 at 8:30 AM, Zhang Yi <yi.z.zhang@linux.intel.com> wrote:
>> Currently, NVDIMM pages will be marked 'PageReserved'. However, unlike
>> other reserved PFNs, pages on NVDIMM shall still behave like normal ones
>> in many cases, i.e. when used as backend memory of KVM guest. This patch
>> introduces a new memory type, MEMORY_DEVICE_DEV_DAX. Together with the
>> existing type MEMORY_DEVICE_FS_DAX, we can differentiate the pages on
>> NVDIMM with the normal reserved pages.
>>
>> Signed-off-by: Zhang Yi <yi.z.zhang@linux.intel.com>
>> Signed-off-by: Zhang Yu <yu.c.zhang@linux.intel.com>
>> ---
>>  drivers/dax/pmem.c       | 1 +
>>  include/linux/memremap.h | 1 +
>>  2 files changed, 2 insertions(+)
>>
>> diff --git a/drivers/dax/pmem.c b/drivers/dax/pmem.c
>> index fd49b24..fb3f363 100644
>> --- a/drivers/dax/pmem.c
>> +++ b/drivers/dax/pmem.c
>> @@ -111,6 +111,7 @@ static int dax_pmem_probe(struct device *dev)
>>                 return rc;
>>
>>         dax_pmem->pgmap.ref = &dax_pmem->ref;
>> +       dax_pmem->pgmap.type = MEMORY_DEVICE_DEV_DAX;
>>         addr = devm_memremap_pages(dev, &dax_pmem->pgmap);
>>         if (IS_ERR(addr))
>>                 return PTR_ERR(addr);
>> diff --git a/include/linux/memremap.h b/include/linux/memremap.h
>> index 5ebfff6..4127bf7 100644
>> --- a/include/linux/memremap.h
>> +++ b/include/linux/memremap.h
>> @@ -58,6 +58,7 @@ enum memory_type {
>>         MEMORY_DEVICE_PRIVATE = 1,
>>         MEMORY_DEVICE_PUBLIC,
>>         MEMORY_DEVICE_FS_DAX,
>> +       MEMORY_DEVICE_DEV_DAX,
> Please add documentation for this new type to the comment block about
> this definition.
Thanks for your comments Dan, Will add it in next version,
Regards
Yi.
diff mbox

Patch

diff --git a/drivers/dax/pmem.c b/drivers/dax/pmem.c
index fd49b24..fb3f363 100644
--- a/drivers/dax/pmem.c
+++ b/drivers/dax/pmem.c
@@ -111,6 +111,7 @@  static int dax_pmem_probe(struct device *dev)
 		return rc;
 
 	dax_pmem->pgmap.ref = &dax_pmem->ref;
+	dax_pmem->pgmap.type = MEMORY_DEVICE_DEV_DAX;
 	addr = devm_memremap_pages(dev, &dax_pmem->pgmap);
 	if (IS_ERR(addr))
 		return PTR_ERR(addr);
diff --git a/include/linux/memremap.h b/include/linux/memremap.h
index 5ebfff6..4127bf7 100644
--- a/include/linux/memremap.h
+++ b/include/linux/memremap.h
@@ -58,6 +58,7 @@  enum memory_type {
 	MEMORY_DEVICE_PRIVATE = 1,
 	MEMORY_DEVICE_PUBLIC,
 	MEMORY_DEVICE_FS_DAX,
+	MEMORY_DEVICE_DEV_DAX,
 };
 
 /*