All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jerome Glisse <jglisse@redhat.com>
To: "Zhang,Yi" <yi.z.zhang@linux.intel.com>
Cc: jack@suse.cz, yu c zhang <yu.c.zhang@intel.com>,
	kvm@vger.kernel.org, linux-nvdimm@lists.01.org,
	rkrcmar@redhat.com, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org, pbonzini@redhat.com, hch@lst.de,
	yi z zhang <yi.z.zhang@intel.com>
Subject: Re: [PATCH V3 3/4] mm: add a function to differentiate the pages is from DAX device memory
Date: Mon, 13 Aug 2018 10:29:06 -0400	[thread overview]
Message-ID: <20180813142906.GA3451@redhat.com> (raw)
In-Reply-To: <5ea50e63-b55a-c1e1-50be-6e2d951c04cf@linux.intel.com>

On Tue, Aug 14, 2018 at 01:41:40AM +0800, Zhang,Yi wrote:
> 
> 
> On 2018年08月09日 17:23, Pankaj Gupta wrote:
> >> DAX driver hotplug the device memory and move it to memory zone, these
> >> pages will be marked reserved flag, however, some other kernel componet
> >> will misconceive these pages are reserved mmio (ex: we map these dev_dax
> >> or fs_dax pages to kvm for DIMM/NVDIMM backend). Together with the type
> >> MEMORY_DEVICE_FS_DAX, we can use is_dax_page() to differentiate the pages
> >> is DAX device memory or not.
> >>
> >> Signed-off-by: Zhang Yi <yi.z.zhang@linux.intel.com>
> >> Signed-off-by: Zhang Yu <yu.c.zhang@linux.intel.com>
> >> ---
> >>  include/linux/mm.h | 12 ++++++++++++
> >>  1 file changed, 12 insertions(+)
> >>
> >> diff --git a/include/linux/mm.h b/include/linux/mm.h
> >> index 68a5121..de5cbc3 100644
> >> --- a/include/linux/mm.h
> >> +++ b/include/linux/mm.h
> >> @@ -889,6 +889,13 @@ static inline bool is_device_public_page(const struct
> >> page *page)
> >>  		page->pgmap->type == MEMORY_DEVICE_PUBLIC;
> >>  }
> >>  
> >> +static inline bool is_dax_page(const struct page *page)
> >> +{
> >> +	return is_zone_device_page(page) &&
> >> +		(page->pgmap->type == MEMORY_DEVICE_FS_DAX ||
> >> +		page->pgmap->type == MEMORY_DEVICE_DEV_DAX);
> >> +}
> > I think question from Dan for KVM VM with 'MEMORY_DEVICE_PUBLIC' still holds?
> > I am also interested to know if there is any use-case.
> >
> > Thanks,
> > Pankaj
> Yes, it is, thanks for your remind, Pankaj.
> Adding Jerome for Dan's questions on V1:
> [Dan]:
> 
> Jerome, might there be any use case to pass MEMORY_DEVICE_PUBLIC
> memory to a guest vm?

Yes and no, i am not sure how we are going to do it. But being able to
share GPU among multiple VM is on TODO list and those GPU will have
MEMORY_DEVICE_PUBLIC|PRIVATE depending on the platform. So either we
pass down the real underlying resource to the guest, or we will pass
down a fake one and have guest and host driver talk to each other so
that the host driver can do overall resource management accross multiple
guests.

So i would say that for now you can ignore MEMORY_DEVICE_PUBLIC and when
we get to the KVM guest sharing of those and decide how we want to do
it then we can update kvm to properly interpret those.

Cheers,
Jérôme
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

WARNING: multiple messages have this Message-ID (diff)
From: Jerome Glisse <jglisse@redhat.com>
To: "Zhang,Yi" <yi.z.zhang@linux.intel.com>
Cc: Pankaj Gupta <pagupta@redhat.com>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-nvdimm@lists.01.org, pbonzini@redhat.com,
	dan j williams <dan.j.williams@intel.com>,
	jack@suse.cz, hch@lst.de, yu c zhang <yu.c.zhang@intel.com>,
	linux-mm@kvack.org, rkrcmar@redhat.com,
	yi z zhang <yi.z.zhang@intel.com>
Subject: Re: [PATCH V3 3/4] mm: add a function to differentiate the pages is from DAX device memory
Date: Mon, 13 Aug 2018 10:29:06 -0400	[thread overview]
Message-ID: <20180813142906.GA3451@redhat.com> (raw)
In-Reply-To: <5ea50e63-b55a-c1e1-50be-6e2d951c04cf@linux.intel.com>

On Tue, Aug 14, 2018 at 01:41:40AM +0800, Zhang,Yi wrote:
> 
> 
> On 2018年08月09日 17:23, Pankaj Gupta wrote:
> >> DAX driver hotplug the device memory and move it to memory zone, these
> >> pages will be marked reserved flag, however, some other kernel componet
> >> will misconceive these pages are reserved mmio (ex: we map these dev_dax
> >> or fs_dax pages to kvm for DIMM/NVDIMM backend). Together with the type
> >> MEMORY_DEVICE_FS_DAX, we can use is_dax_page() to differentiate the pages
> >> is DAX device memory or not.
> >>
> >> Signed-off-by: Zhang Yi <yi.z.zhang@linux.intel.com>
> >> Signed-off-by: Zhang Yu <yu.c.zhang@linux.intel.com>
> >> ---
> >>  include/linux/mm.h | 12 ++++++++++++
> >>  1 file changed, 12 insertions(+)
> >>
> >> diff --git a/include/linux/mm.h b/include/linux/mm.h
> >> index 68a5121..de5cbc3 100644
> >> --- a/include/linux/mm.h
> >> +++ b/include/linux/mm.h
> >> @@ -889,6 +889,13 @@ static inline bool is_device_public_page(const struct
> >> page *page)
> >>  		page->pgmap->type == MEMORY_DEVICE_PUBLIC;
> >>  }
> >>  
> >> +static inline bool is_dax_page(const struct page *page)
> >> +{
> >> +	return is_zone_device_page(page) &&
> >> +		(page->pgmap->type == MEMORY_DEVICE_FS_DAX ||
> >> +		page->pgmap->type == MEMORY_DEVICE_DEV_DAX);
> >> +}
> > I think question from Dan for KVM VM with 'MEMORY_DEVICE_PUBLIC' still holds?
> > I am also interested to know if there is any use-case.
> >
> > Thanks,
> > Pankaj
> Yes, it is, thanks for your remind, Pankaj.
> Adding Jerome for Dan's questions on V1:
> [Dan]:
> 
> Jerome, might there be any use case to pass MEMORY_DEVICE_PUBLIC
> memory to a guest vm?

Yes and no, i am not sure how we are going to do it. But being able to
share GPU among multiple VM is on TODO list and those GPU will have
MEMORY_DEVICE_PUBLIC|PRIVATE depending on the platform. So either we
pass down the real underlying resource to the guest, or we will pass
down a fake one and have guest and host driver talk to each other so
that the host driver can do overall resource management accross multiple
guests.

So i would say that for now you can ignore MEMORY_DEVICE_PUBLIC and when
we get to the KVM guest sharing of those and decide how we want to do
it then we can update kvm to properly interpret those.

Cheers,
Jérôme

WARNING: multiple messages have this Message-ID (diff)
From: Jerome Glisse <jglisse@redhat.com>
To: "Zhang,Yi" <yi.z.zhang@linux.intel.com>
Cc: Pankaj Gupta <pagupta@redhat.com>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-nvdimm@lists.01.org, pbonzini@redhat.com,
	dan j williams <dan.j.williams@intel.com>,
	jack@suse.cz, hch@lst.de, yu c zhang <yu.c.zhang@intel.com>,
	linux-mm@kvack.org, rkrcmar@redhat.com,
	yi z zhang <yi.z.zhang@intel.com>
Subject: Re: [PATCH V3 3/4] mm: add a function to differentiate the pages is from DAX device memory
Date: Mon, 13 Aug 2018 10:29:06 -0400	[thread overview]
Message-ID: <20180813142906.GA3451@redhat.com> (raw)
In-Reply-To: <5ea50e63-b55a-c1e1-50be-6e2d951c04cf@linux.intel.com>

On Tue, Aug 14, 2018 at 01:41:40AM +0800, Zhang,Yi wrote:
> 
> 
> On 2018a1'08ae??09ae?JPY 17:23, Pankaj Gupta wrote:
> >> DAX driver hotplug the device memory and move it to memory zone, these
> >> pages will be marked reserved flag, however, some other kernel componet
> >> will misconceive these pages are reserved mmio (ex: we map these dev_dax
> >> or fs_dax pages to kvm for DIMM/NVDIMM backend). Together with the type
> >> MEMORY_DEVICE_FS_DAX, we can use is_dax_page() to differentiate the pages
> >> is DAX device memory or not.
> >>
> >> Signed-off-by: Zhang Yi <yi.z.zhang@linux.intel.com>
> >> Signed-off-by: Zhang Yu <yu.c.zhang@linux.intel.com>
> >> ---
> >>  include/linux/mm.h | 12 ++++++++++++
> >>  1 file changed, 12 insertions(+)
> >>
> >> diff --git a/include/linux/mm.h b/include/linux/mm.h
> >> index 68a5121..de5cbc3 100644
> >> --- a/include/linux/mm.h
> >> +++ b/include/linux/mm.h
> >> @@ -889,6 +889,13 @@ static inline bool is_device_public_page(const struct
> >> page *page)
> >>  		page->pgmap->type == MEMORY_DEVICE_PUBLIC;
> >>  }
> >>  
> >> +static inline bool is_dax_page(const struct page *page)
> >> +{
> >> +	return is_zone_device_page(page) &&
> >> +		(page->pgmap->type == MEMORY_DEVICE_FS_DAX ||
> >> +		page->pgmap->type == MEMORY_DEVICE_DEV_DAX);
> >> +}
> > I think question from Dan for KVM VM with 'MEMORY_DEVICE_PUBLIC' still holds?
> > I am also interested to know if there is any use-case.
> >
> > Thanks,
> > Pankaj
> Yes, it is, thanks for your remind, Pankaj.
> Adding Jerome for Dan's questions on V1:
> [Dan]:
> 
> Jerome, might there be any use case to pass MEMORY_DEVICE_PUBLIC
> memory to a guest vm?

Yes and no, i am not sure how we are going to do it. But being able to
share GPU among multiple VM is on TODO list and those GPU will have
MEMORY_DEVICE_PUBLIC|PRIVATE depending on the platform. So either we
pass down the real underlying resource to the guest, or we will pass
down a fake one and have guest and host driver talk to each other so
that the host driver can do overall resource management accross multiple
guests.

So i would say that for now you can ignore MEMORY_DEVICE_PUBLIC and when
we get to the KVM guest sharing of those and decide how we want to do
it then we can update kvm to properly interpret those.

Cheers,
JA(C)rA'me

  reply	other threads:[~2018-08-13 14:29 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-09 10:52 [PATCH V3 0/4] Fix kvm misconceives NVDIMM pages as reserved mmio Zhang Yi
2018-08-09 10:52 ` Zhang Yi
2018-08-09 10:52 ` Zhang Yi
2018-08-09  9:02 ` Jan Kara
2018-08-09  9:02   ` Jan Kara
2018-08-09  9:02   ` Jan Kara
2018-08-13 17:33   ` Zhang,Yi
2018-08-13 17:33     ` Zhang,Yi
2018-08-13 17:33     ` Zhang,Yi
2018-08-13 17:33     ` Zhang,Yi
2018-08-09 10:52 ` [PATCH V3 1/4] kvm: remove redundant reserved page check Zhang Yi
2018-08-09 10:52   ` Zhang Yi
2018-08-09 10:52   ` Zhang Yi
2018-08-09  9:13   ` Pankaj Gupta
2018-08-09  9:13     ` Pankaj Gupta
2018-08-09  9:13     ` Pankaj Gupta
2018-08-10 11:23   ` David Hildenbrand
2018-08-09 10:53 ` [PATCH V3 2/4] mm: introduce memory type MEMORY_DEVICE_DEV_DAX Zhang Yi
2018-08-09 10:53   ` Zhang Yi
2018-08-09  8:59   ` Jan Kara
2018-08-09  8:59     ` Jan Kara
2018-08-09  8:59     ` Jan Kara
2018-08-09 10:53 ` [PATCH V3 3/4] mm: add a function to differentiate the pages is from DAX device memory Zhang Yi
2018-08-09 10:53   ` Zhang Yi
2018-08-09 10:53   ` Zhang Yi
2018-08-09  9:23   ` Pankaj Gupta
2018-08-09  9:23     ` Pankaj Gupta
2018-08-13 17:41     ` Zhang,Yi
2018-08-13 17:41       ` Zhang,Yi
2018-08-13 17:41       ` Zhang,Yi
2018-08-13 17:41       ` Zhang,Yi
2018-08-13 14:29       ` Jerome Glisse [this message]
2018-08-13 14:29         ` Jerome Glisse
2018-08-13 14:29         ` Jerome Glisse
2018-08-09 10:53 ` [PATCH V3 4/4] kvm: add a check if pfn is from NVDIMM pmem Zhang Yi
2018-08-09 10:53   ` Zhang Yi
2018-08-09 10:53   ` Zhang Yi
2018-08-09  8:32   ` Pankaj Gupta
2018-08-13 17:32     ` Zhang,Yi
2018-08-13 17:32       ` Zhang,Yi
2018-08-13 17:32       ` Zhang,Yi
2018-08-13 17:32       ` Zhang,Yi
2018-08-10 13:27 ` [PATCH V3 0/4] Fix kvm misconceives NVDIMM pages as reserved mmio David Hildenbrand
2018-08-10 13:27   ` David Hildenbrand
2018-08-13 17:25   ` Zhang,Yi
2018-08-13 17:25     ` Zhang,Yi
2018-08-13 17:25     ` Zhang,Yi
2018-08-13 17:25     ` Zhang,Yi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180813142906.GA3451@redhat.com \
    --to=jglisse@redhat.com \
    --cc=hch@lst.de \
    --cc=jack@suse.cz \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=yi.z.zhang@intel.com \
    --cc=yi.z.zhang@linux.intel.com \
    --cc=yu.c.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.