[PATCH 3/6] PCI/P2PDMA: create VMA without page_mkwrite() operator

Martin Oliveira posted 6 patches 1 year, 8 months ago
There is a newer version of this series
[PATCH 3/6] PCI/P2PDMA: create VMA without page_mkwrite() operator
Posted by Martin Oliveira 1 year, 8 months ago
The P2PDMA code does not need (or want) a page_mkwrite() operator on its
VMA.

Furthermore, having the page_mkwrite() operator causes
writable_file_mapping_allowed() to fail due to
vma_needs_dirty_tracking() on the gup flow, which is a pre-requisite for
enabling P2PDMA with FOLL_LONGTERM use cases.

Co-developed-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Martin Oliveira <martin.oliveira@eideticom.com>
---
 drivers/pci/p2pdma.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
index 4f47a13cb500..ac07053abfea 100644
--- a/drivers/pci/p2pdma.c
+++ b/drivers/pci/p2pdma.c
@@ -171,6 +171,7 @@ static struct bin_attribute p2pmem_alloc_attr = {
 	 * to be very large.
 	 */
 	.size = SZ_1T,
+	.mmap_allocates = true,
 };
 
 static struct attribute *p2pmem_attrs[] = {
-- 
2.34.1
Re: [PATCH 3/6] PCI/P2PDMA: create VMA without page_mkwrite() operator
Posted by Bjorn Helgaas 1 year, 8 months ago
On Wed, Jun 05, 2024 at 01:29:31PM -0600, Martin Oliveira wrote:
> The P2PDMA code does not need (or want) a page_mkwrite() operator on its
> VMA.
> 
> Furthermore, having the page_mkwrite() operator causes
> writable_file_mapping_allowed() to fail due to
> vma_needs_dirty_tracking() on the gup flow, which is a pre-requisite for
> enabling P2PDMA with FOLL_LONGTERM use cases.
> 
> Co-developed-by: Logan Gunthorpe <logang@deltatee.com>
> Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
> Signed-off-by: Martin Oliveira <martin.oliveira@eideticom.com>

Fine with me, but please s/create/Create/ in the subject to match
history of the file.

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

> ---
>  drivers/pci/p2pdma.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
> index 4f47a13cb500..ac07053abfea 100644
> --- a/drivers/pci/p2pdma.c
> +++ b/drivers/pci/p2pdma.c
> @@ -171,6 +171,7 @@ static struct bin_attribute p2pmem_alloc_attr = {
>  	 * to be very large.
>  	 */
>  	.size = SZ_1T,
> +	.mmap_allocates = true,
>  };
>  
>  static struct attribute *p2pmem_attrs[] = {
> -- 
> 2.34.1
>