All of lore.kernel.org
 help / color / mirror / Atom feed
* [Linux-kernel-mentees][PATCH v6 0/2] get_user_pages changes
@ 2019-08-18 19:38 ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:38 UTC (permalink / raw)
  To: sivanich, jhubbard
  Cc: jglisse, ira.weiny, gregkh, arnd, william.kucharski, hch,
	inux-kernel, linux-mm, linux-kernel-mentees, Bharath Vedartham

This version only converts put_page to put_user_page and removes
an unecessary ifdef. 

It does not convert atomic_pte_lookup to __get_user_pages as
gru_vtop could run in an interrupt context in which we can't assume
current as __get_user_pages does.

Bharath Vedartham (2):
  sgi-gru: Convert put_page() to put_user_page*()
  sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE

 drivers/misc/sgi-gru/grufault.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

-- 
2.7.4



^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 0/2] get_user_pages changes
@ 2019-08-18 19:38 ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: linux.bhar @ 2019-08-18 19:38 UTC (permalink / raw)


This version only converts put_page to put_user_page and removes
an unecessary ifdef. 

It does not convert atomic_pte_lookup to __get_user_pages as
gru_vtop could run in an interrupt context in which we can't assume
current as __get_user_pages does.

Bharath Vedartham (2):
  sgi-gru: Convert put_page() to put_user_page*()
  sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE

 drivers/misc/sgi-gru/grufault.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 0/2] get_user_pages changes
@ 2019-08-18 19:38 ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:38 UTC (permalink / raw)


This version only converts put_page to put_user_page and removes
an unecessary ifdef. 

It does not convert atomic_pte_lookup to __get_user_pages as
gru_vtop could run in an interrupt context in which we can't assume
current as __get_user_pages does.

Bharath Vedartham (2):
  sgi-gru: Convert put_page() to put_user_page*()
  sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE

 drivers/misc/sgi-gru/grufault.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
  2019-08-18 19:38 ` linux.bhar
  (?)
@ 2019-08-18 19:38   ` linux.bhar
  -1 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:38 UTC (permalink / raw)
  To: sivanich, jhubbard
  Cc: jglisse, ira.weiny, gregkh, arnd, william.kucharski, hch,
	inux-kernel, linux-mm, linux-kernel-mentees, Bharath Vedartham,
	linux-kernel

For pages that were retained via get_user_pages*(), release those pages
via the new put_user_page*() routines, instead of via put_page() or
release_pages().

This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
("mm: introduce put_user_page*(), placeholder versions").

Cc: Ira Weiny <ira.weiny@intel.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Jérôme Glisse <jglisse@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Dimitri Sivanich <sivanich@sgi.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: William Kucharski <william.kucharski@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org
Cc: linux-kernel-mentees@lists.linuxfoundation.org
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: William Kucharski <william.kucharski@oracle.com>
Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
---
 drivers/misc/sgi-gru/grufault.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
index 4b713a8..61b3447 100644
--- a/drivers/misc/sgi-gru/grufault.c
+++ b/drivers/misc/sgi-gru/grufault.c
@@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
 	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
 		return -EFAULT;
 	*paddr = page_to_phys(page);
-	put_page(page);
+	put_user_page(page);
 	return 0;
 }
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-18 19:38   ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: linux.bhar @ 2019-08-18 19:38 UTC (permalink / raw)


For pages that were retained via get_user_pages*(), release those pages
via the new put_user_page*() routines, instead of via put_page() or
release_pages().

This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
("mm: introduce put_user_page*(), placeholder versions").

Cc: Ira Weiny <ira.weiny at intel.com>
Cc: John Hubbard <jhubbard at nvidia.com>
Cc: J?r?me Glisse <jglisse at redhat.com>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
Cc: Dimitri Sivanich <sivanich at sgi.com>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: William Kucharski <william.kucharski at oracle.com>
Cc: Christoph Hellwig <hch at lst.de>
Cc: linux-kernel at vger.kernel.org
Cc: linux-mm at kvack.org
Cc: linux-kernel-mentees at lists.linuxfoundation.org
Reviewed-by: Ira Weiny <ira.weiny at intel.com>
Reviewed-by: John Hubbard <jhubbard at nvidia.com>
Reviewed-by: William Kucharski <william.kucharski at oracle.com>
Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
---
 drivers/misc/sgi-gru/grufault.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
index 4b713a8..61b3447 100644
--- a/drivers/misc/sgi-gru/grufault.c
+++ b/drivers/misc/sgi-gru/grufault.c
@@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
 	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
 		return -EFAULT;
 	*paddr = page_to_phys(page);
-	put_page(page);
+	put_user_page(page);
 	return 0;
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-18 19:38   ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:38 UTC (permalink / raw)


For pages that were retained via get_user_pages*(), release those pages
via the new put_user_page*() routines, instead of via put_page() or
release_pages().

This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
("mm: introduce put_user_page*(), placeholder versions").

Cc: Ira Weiny <ira.weiny at intel.com>
Cc: John Hubbard <jhubbard at nvidia.com>
Cc: J?r?me Glisse <jglisse at redhat.com>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
Cc: Dimitri Sivanich <sivanich at sgi.com>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: William Kucharski <william.kucharski at oracle.com>
Cc: Christoph Hellwig <hch at lst.de>
Cc: linux-kernel at vger.kernel.org
Cc: linux-mm at kvack.org
Cc: linux-kernel-mentees at lists.linuxfoundation.org
Reviewed-by: Ira Weiny <ira.weiny at intel.com>
Reviewed-by: John Hubbard <jhubbard at nvidia.com>
Reviewed-by: William Kucharski <william.kucharski at oracle.com>
Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
---
 drivers/misc/sgi-gru/grufault.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
index 4b713a8..61b3447 100644
--- a/drivers/misc/sgi-gru/grufault.c
+++ b/drivers/misc/sgi-gru/grufault.c
@@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
 	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
 		return -EFAULT;
 	*paddr = page_to_phys(page);
-	put_page(page);
+	put_user_page(page);
 	return 0;
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees][PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
  2019-08-18 19:38 ` linux.bhar
  (?)
@ 2019-08-18 19:38   ` linux.bhar
  -1 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:38 UTC (permalink / raw)
  To: sivanich, jhubbard
  Cc: jglisse, ira.weiny, gregkh, arnd, william.kucharski, hch,
	inux-kernel, linux-mm, linux-kernel-mentees, Bharath Vedartham,
	linux-kernel

is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
not set.

Cc: Ira Weiny <ira.weiny@intel.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Jérôme Glisse <jglisse@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Dimitri Sivanich <sivanich@sgi.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: William Kucharski <william.kucharski@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org
Cc: linux-kernel-mentees@lists.linuxfoundation.org
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: William Kucharski <william.kucharski@oracle.com>
Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
---
 drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
index 61b3447..bce47af 100644
--- a/drivers/misc/sgi-gru/grufault.c
+++ b/drivers/misc/sgi-gru/grufault.c
@@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
 {
 	struct page *page;
 
-#ifdef CONFIG_HUGETLB_PAGE
-	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
-#else
-	*pageshift = PAGE_SHIFT;
-#endif
+	if (unlikely(is_vm_hugetlb_page(vma)))
+		*pageshift = HPAGE_SHIFT;
+	else
+		*pageshift = PAGE_SHIFT;
+
 	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
 		return -EFAULT;
 	*paddr = page_to_phys(page);
@@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
 		return 1;
 
 	*paddr = pte_pfn(pte) << PAGE_SHIFT;
-#ifdef CONFIG_HUGETLB_PAGE
-	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
-#else
-	*pageshift = PAGE_SHIFT;
-#endif
+
+	if (unlikely(is_vm_hugetlb_page(vma)))
+		*pageshift = HPAGE_SHIFT;
+	else
+		*pageshift = PAGE_SHIFT;
+
 	return 0;
 
 err:
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
@ 2019-08-18 19:38   ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: linux.bhar @ 2019-08-18 19:38 UTC (permalink / raw)


is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
not set.

Cc: Ira Weiny <ira.weiny at intel.com>
Cc: John Hubbard <jhubbard at nvidia.com>
Cc: J?r?me Glisse <jglisse at redhat.com>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
Cc: Dimitri Sivanich <sivanich at sgi.com>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: William Kucharski <william.kucharski at oracle.com>
Cc: Christoph Hellwig <hch at lst.de>
Cc: linux-kernel at vger.kernel.org
Cc: linux-mm at kvack.org
Cc: linux-kernel-mentees at lists.linuxfoundation.org
Reviewed-by: Ira Weiny <ira.weiny at intel.com>
Reviewed-by: John Hubbard <jhubbard at nvidia.com>
Reviewed-by: William Kucharski <william.kucharski at oracle.com>
Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
---
 drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
index 61b3447..bce47af 100644
--- a/drivers/misc/sgi-gru/grufault.c
+++ b/drivers/misc/sgi-gru/grufault.c
@@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
 {
 	struct page *page;
 
-#ifdef CONFIG_HUGETLB_PAGE
-	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
-#else
-	*pageshift = PAGE_SHIFT;
-#endif
+	if (unlikely(is_vm_hugetlb_page(vma)))
+		*pageshift = HPAGE_SHIFT;
+	else
+		*pageshift = PAGE_SHIFT;
+
 	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
 		return -EFAULT;
 	*paddr = page_to_phys(page);
@@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
 		return 1;
 
 	*paddr = pte_pfn(pte) << PAGE_SHIFT;
-#ifdef CONFIG_HUGETLB_PAGE
-	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
-#else
-	*pageshift = PAGE_SHIFT;
-#endif
+
+	if (unlikely(is_vm_hugetlb_page(vma)))
+		*pageshift = HPAGE_SHIFT;
+	else
+		*pageshift = PAGE_SHIFT;
+
 	return 0;
 
 err:
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
@ 2019-08-18 19:38   ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:38 UTC (permalink / raw)


is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
not set.

Cc: Ira Weiny <ira.weiny at intel.com>
Cc: John Hubbard <jhubbard at nvidia.com>
Cc: J?r?me Glisse <jglisse at redhat.com>
Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
Cc: Dimitri Sivanich <sivanich at sgi.com>
Cc: Arnd Bergmann <arnd at arndb.de>
Cc: William Kucharski <william.kucharski at oracle.com>
Cc: Christoph Hellwig <hch at lst.de>
Cc: linux-kernel at vger.kernel.org
Cc: linux-mm at kvack.org
Cc: linux-kernel-mentees at lists.linuxfoundation.org
Reviewed-by: Ira Weiny <ira.weiny at intel.com>
Reviewed-by: John Hubbard <jhubbard at nvidia.com>
Reviewed-by: William Kucharski <william.kucharski at oracle.com>
Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
---
 drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
index 61b3447..bce47af 100644
--- a/drivers/misc/sgi-gru/grufault.c
+++ b/drivers/misc/sgi-gru/grufault.c
@@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
 {
 	struct page *page;
 
-#ifdef CONFIG_HUGETLB_PAGE
-	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
-#else
-	*pageshift = PAGE_SHIFT;
-#endif
+	if (unlikely(is_vm_hugetlb_page(vma)))
+		*pageshift = HPAGE_SHIFT;
+	else
+		*pageshift = PAGE_SHIFT;
+
 	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
 		return -EFAULT;
 	*paddr = page_to_phys(page);
@@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
 		return 1;
 
 	*paddr = pte_pfn(pte) << PAGE_SHIFT;
-#ifdef CONFIG_HUGETLB_PAGE
-	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
-#else
-	*pageshift = PAGE_SHIFT;
-#endif
+
+	if (unlikely(is_vm_hugetlb_page(vma)))
+		*pageshift = HPAGE_SHIFT;
+	else
+		*pageshift = PAGE_SHIFT;
+
 	return 0;
 
 err:
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 0/2] get_user_pages changes
  2019-08-18 19:38 ` linux.bhar
                   ` (3 preceding siblings ...)
  (?)
@ 2019-08-18 19:50 ` Bharath Vedartham
  -1 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:50 UTC (permalink / raw)
  To: sivanich, jhubbard; +Cc: linux-kernel

On Mon, Aug 19, 2019 at 01:08:53AM +0530, Bharath Vedartham wrote:
CC'ing lkml, the mail id was wrong.

> This version only converts put_page to put_user_page and removes
> an unecessary ifdef. 
> 
> It does not convert atomic_pte_lookup to __get_user_pages as
> gru_vtop could run in an interrupt context in which we can't assume
> current as __get_user_pages does.
> 
> Bharath Vedartham (2):
>   sgi-gru: Convert put_page() to put_user_page*()
>   sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
> 
>  drivers/misc/sgi-gru/grufault.c | 23 ++++++++++++-----------
>  1 file changed, 12 insertions(+), 11 deletions(-)
> 
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
  2019-08-18 19:38   ` linux.bhar
  (?)
@ 2019-08-18 19:51     ` linux.bhar
  -1 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:51 UTC (permalink / raw)
  To: sivanich, jhubbard
  Cc: jglisse, ira.weiny, gregkh, arnd, william.kucharski, hch,
	linux-kernel, linux-mm, linux-kernel-mentees

CC'ing lkml.

On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> For pages that were retained via get_user_pages*(), release those pages
> via the new put_user_page*() routines, instead of via put_page() or
> release_pages().
> 
> This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
> 
> Cc: Ira Weiny <ira.weiny@intel.com>
> Cc: John Hubbard <jhubbard@nvidia.com>
> Cc: Jérôme Glisse <jglisse@redhat.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich@sgi.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: William Kucharski <william.kucharski@oracle.com>
> Cc: Christoph Hellwig <hch@lst.de>
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-mm@kvack.org
> Cc: linux-kernel-mentees@lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski@oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 4b713a8..61b3447 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> -	put_page(page);
> +	put_user_page(page);
>  	return 0;
>  }
>  
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-18 19:51     ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: linux.bhar @ 2019-08-18 19:51 UTC (permalink / raw)


CC'ing lkml.

On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> For pages that were retained via get_user_pages*(), release those pages
> via the new put_user_page*() routines, instead of via put_page() or
> release_pages().
> 
> This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
> 
> Cc: Ira Weiny <ira.weiny at intel.com>
> Cc: John Hubbard <jhubbard at nvidia.com>
> Cc: J?r?me Glisse <jglisse at redhat.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich at sgi.com>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: William Kucharski <william.kucharski at oracle.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
> Cc: linux-kernel-mentees at lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 4b713a8..61b3447 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> -	put_page(page);
> +	put_user_page(page);
>  	return 0;
>  }
>  
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-18 19:51     ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:51 UTC (permalink / raw)


CC'ing lkml.

On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> For pages that were retained via get_user_pages*(), release those pages
> via the new put_user_page*() routines, instead of via put_page() or
> release_pages().
> 
> This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
> 
> Cc: Ira Weiny <ira.weiny at intel.com>
> Cc: John Hubbard <jhubbard at nvidia.com>
> Cc: J?r?me Glisse <jglisse at redhat.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich at sgi.com>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: William Kucharski <william.kucharski at oracle.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
> Cc: linux-kernel-mentees at lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 4b713a8..61b3447 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> -	put_page(page);
> +	put_user_page(page);
>  	return 0;
>  }
>  
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
  2019-08-18 19:38   ` linux.bhar
  (?)
@ 2019-08-18 19:51     ` linux.bhar
  -1 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:51 UTC (permalink / raw)
  To: sivanich, jhubbard
  Cc: jglisse, ira.weiny, gregkh, arnd, william.kucharski, hch,
	linux-kernel, linux-mm, linux-kernel-mentees

CC'ing lkml.

On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> not set.
> 
> Cc: Ira Weiny <ira.weiny@intel.com>
> Cc: John Hubbard <jhubbard@nvidia.com>
> Cc: Jérôme Glisse <jglisse@redhat.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich@sgi.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: William Kucharski <william.kucharski@oracle.com>
> Cc: Christoph Hellwig <hch@lst.de>
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-mm@kvack.org
> Cc: linux-kernel-mentees@lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski@oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 61b3447..bce47af 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  {
>  	struct page *page;
>  
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
>  		return 1;
>  
>  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	return 0;
>  
>  err:
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
@ 2019-08-18 19:51     ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: linux.bhar @ 2019-08-18 19:51 UTC (permalink / raw)


CC'ing lkml.

On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> not set.
> 
> Cc: Ira Weiny <ira.weiny at intel.com>
> Cc: John Hubbard <jhubbard at nvidia.com>
> Cc: J?r?me Glisse <jglisse at redhat.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich at sgi.com>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: William Kucharski <william.kucharski at oracle.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
> Cc: linux-kernel-mentees at lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 61b3447..bce47af 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  {
>  	struct page *page;
>  
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
>  		return 1;
>  
>  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	return 0;
>  
>  err:
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
@ 2019-08-18 19:51     ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-18 19:51 UTC (permalink / raw)


CC'ing lkml.

On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> not set.
> 
> Cc: Ira Weiny <ira.weiny at intel.com>
> Cc: John Hubbard <jhubbard at nvidia.com>
> Cc: J?r?me Glisse <jglisse at redhat.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich at sgi.com>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: William Kucharski <william.kucharski at oracle.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
> Cc: linux-kernel-mentees at lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 61b3447..bce47af 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  {
>  	struct page *page;
>  
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
>  		return 1;
>  
>  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	return 0;
>  
>  err:
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-19 12:56     ` Dimitri Sivanich
  0 siblings, 0 replies; 41+ messages in thread
From: Dimitri Sivanich @ 2019-08-19 12:56 UTC (permalink / raw)
  To: Bharath Vedartham
  Cc: sivanich, jhubbard, jglisse, ira.weiny, gregkh, arnd,
	william.kucharski, hch, inux-kernel, linux-mm,
	linux-kernel-mentees, linux-kernel

Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>

On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> For pages that were retained via get_user_pages*(), release those pages
> via the new put_user_page*() routines, instead of via put_page() or
> release_pages().
> 
> This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
> 
> Cc: Ira Weiny <ira.weiny@intel.com>
> Cc: John Hubbard <jhubbard@nvidia.com>
> Cc: Jérôme Glisse <jglisse@redhat.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich@sgi.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: William Kucharski <william.kucharski@oracle.com>
> Cc: Christoph Hellwig <hch@lst.de>
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-mm@kvack.org
> Cc: linux-kernel-mentees@lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski@oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 4b713a8..61b3447 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> -	put_page(page);
> +	put_user_page(page);
>  	return 0;
>  }
>  
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-19 12:56     ` Dimitri Sivanich
  0 siblings, 0 replies; 41+ messages in thread
From: Dimitri Sivanich @ 2019-08-19 12:56 UTC (permalink / raw)
  To: Bharath Vedartham
  Cc: sivanich, jhubbard, jglisse, ira.weiny, gregkh, arnd,
	william.kucharski, hch, inux-kernel, linux-mm,
	linux-kernel-mentees, linux-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 1688 bytes --]

Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>

On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> For pages that were retained via get_user_pages*(), release those pages
> via the new put_user_page*() routines, instead of via put_page() or
> release_pages().
> 
> This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
> 
> Cc: Ira Weiny <ira.weiny@intel.com>
> Cc: John Hubbard <jhubbard@nvidia.com>
> Cc: Jérôme Glisse <jglisse@redhat.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich@sgi.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: William Kucharski <william.kucharski@oracle.com>
> Cc: Christoph Hellwig <hch@lst.de>
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-mm@kvack.org
> Cc: linux-kernel-mentees@lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski@oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 4b713a8..61b3447 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> -	put_page(page);
> +	put_user_page(page);
>  	return 0;
>  }
>  
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-19 12:56     ` Dimitri Sivanich
  0 siblings, 0 replies; 41+ messages in thread
From: sivanich @ 2019-08-19 12:56 UTC (permalink / raw)


Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>

On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> For pages that were retained via get_user_pages*(), release those pages
> via the new put_user_page*() routines, instead of via put_page() or
> release_pages().
> 
> This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
> 
> Cc: Ira Weiny <ira.weiny at intel.com>
> Cc: John Hubbard <jhubbard at nvidia.com>
> Cc: J?r?me Glisse <jglisse at redhat.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich at sgi.com>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: William Kucharski <william.kucharski at oracle.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
> Cc: linux-kernel-mentees at lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 4b713a8..61b3447 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> -	put_page(page);
> +	put_user_page(page);
>  	return 0;
>  }
>  
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-19 12:56     ` Dimitri Sivanich
  0 siblings, 0 replies; 41+ messages in thread
From: Dimitri Sivanich @ 2019-08-19 12:56 UTC (permalink / raw)


Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>

On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> For pages that were retained via get_user_pages*(), release those pages
> via the new put_user_page*() routines, instead of via put_page() or
> release_pages().
> 
> This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> ("mm: introduce put_user_page*(), placeholder versions").
> 
> Cc: Ira Weiny <ira.weiny at intel.com>
> Cc: John Hubbard <jhubbard at nvidia.com>
> Cc: J?r?me Glisse <jglisse at redhat.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich at sgi.com>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: William Kucharski <william.kucharski at oracle.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
> Cc: linux-kernel-mentees at lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 4b713a8..61b3447 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> -	put_page(page);
> +	put_user_page(page);
>  	return 0;
>  }
>  
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
  2019-08-18 19:38   ` linux.bhar
  (?)
@ 2019-08-19 13:00     ` sivanich
  -1 siblings, 0 replies; 41+ messages in thread
From: Dimitri Sivanich @ 2019-08-19 13:00 UTC (permalink / raw)
  To: Bharath Vedartham
  Cc: sivanich, jhubbard, jglisse, ira.weiny, gregkh, arnd,
	william.kucharski, hch, linux-mm, linux-kernel-mentees,
	linux-kernel

Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>

On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> not set.
> 
> Cc: Ira Weiny <ira.weiny@intel.com>
> Cc: John Hubbard <jhubbard@nvidia.com>
> Cc: Jérôme Glisse <jglisse@redhat.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich@sgi.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: William Kucharski <william.kucharski@oracle.com>
> Cc: Christoph Hellwig <hch@lst.de>
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-mm@kvack.org
> Cc: linux-kernel-mentees@lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski@oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 61b3447..bce47af 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  {
>  	struct page *page;
>  
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
>  		return 1;
>  
>  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	return 0;
>  
>  err:
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
@ 2019-08-19 13:00     ` sivanich
  0 siblings, 0 replies; 41+ messages in thread
From: sivanich @ 2019-08-19 13:00 UTC (permalink / raw)


Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>

On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> not set.
> 
> Cc: Ira Weiny <ira.weiny at intel.com>
> Cc: John Hubbard <jhubbard at nvidia.com>
> Cc: J?r?me Glisse <jglisse at redhat.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich at sgi.com>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: William Kucharski <william.kucharski at oracle.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
> Cc: linux-kernel-mentees at lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 61b3447..bce47af 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  {
>  	struct page *page;
>  
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
>  		return 1;
>  
>  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	return 0;
>  
>  err:
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
@ 2019-08-19 13:00     ` sivanich
  0 siblings, 0 replies; 41+ messages in thread
From: Dimitri Sivanich @ 2019-08-19 13:00 UTC (permalink / raw)


Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>

On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> not set.
> 
> Cc: Ira Weiny <ira.weiny at intel.com>
> Cc: John Hubbard <jhubbard at nvidia.com>
> Cc: J?r?me Glisse <jglisse at redhat.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Dimitri Sivanich <sivanich at sgi.com>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Cc: William Kucharski <william.kucharski at oracle.com>
> Cc: Christoph Hellwig <hch at lst.de>
> Cc: linux-kernel at vger.kernel.org
> Cc: linux-mm at kvack.org
> Cc: linux-kernel-mentees at lists.linuxfoundation.org
> Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> ---
>  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> index 61b3447..bce47af 100644
> --- a/drivers/misc/sgi-gru/grufault.c
> +++ b/drivers/misc/sgi-gru/grufault.c
> @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
>  {
>  	struct page *page;
>  
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
>  		return -EFAULT;
>  	*paddr = page_to_phys(page);
> @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
>  		return 1;
>  
>  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> -#ifdef CONFIG_HUGETLB_PAGE
> -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> -#else
> -	*pageshift = PAGE_SHIFT;
> -#endif
> +
> +	if (unlikely(is_vm_hugetlb_page(vma)))
> +		*pageshift = HPAGE_SHIFT;
> +	else
> +		*pageshift = PAGE_SHIFT;
> +
>  	return 0;
>  
>  err:
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
  2019-08-19 12:56     ` [Linux-kernel-mentees][PATCH " Dimitri Sivanich
  (?)
@ 2019-08-19 19:06       ` linux.bhar
  -1 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-19 19:06 UTC (permalink / raw)
  To: Dimitri Sivanich
  Cc: jhubbard, jglisse, ira.weiny, gregkh, arnd, william.kucharski,
	hch, inux-kernel, linux-mm, linux-kernel-mentees, linux-kernel

On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>
Thanks!

John, would you like to take this patch into your miscellaneous
conversions patch set?

Thank you
Bharath
> On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> > For pages that were retained via get_user_pages*(), release those pages
> > via the new put_user_page*() routines, instead of via put_page() or
> > release_pages().
> > 
> > This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> > ("mm: introduce put_user_page*(), placeholder versions").
> > 
> > Cc: Ira Weiny <ira.weiny@intel.com>
> > Cc: John Hubbard <jhubbard@nvidia.com>
> > Cc: Jérôme Glisse <jglisse@redhat.com>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Dimitri Sivanich <sivanich@sgi.com>
> > Cc: Arnd Bergmann <arnd@arndb.de>
> > Cc: William Kucharski <william.kucharski@oracle.com>
> > Cc: Christoph Hellwig <hch@lst.de>
> > Cc: linux-kernel@vger.kernel.org
> > Cc: linux-mm@kvack.org
> > Cc: linux-kernel-mentees@lists.linuxfoundation.org
> > Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> > Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> > Reviewed-by: William Kucharski <william.kucharski@oracle.com>
> > Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
> > ---
> >  drivers/misc/sgi-gru/grufault.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> > index 4b713a8..61b3447 100644
> > --- a/drivers/misc/sgi-gru/grufault.c
> > +++ b/drivers/misc/sgi-gru/grufault.c
> > @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
> >  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
> >  		return -EFAULT;
> >  	*paddr = page_to_phys(page);
> > -	put_page(page);
> > +	put_user_page(page);
> >  	return 0;
> >  }
> >  
> > -- 
> > 2.7.4
> > 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-19 19:06       ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: linux.bhar @ 2019-08-19 19:06 UTC (permalink / raw)


On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
Thanks!

John, would you like to take this patch into your miscellaneous
conversions patch set?

Thank you
Bharath
> On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> > For pages that were retained via get_user_pages*(), release those pages
> > via the new put_user_page*() routines, instead of via put_page() or
> > release_pages().
> > 
> > This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> > ("mm: introduce put_user_page*(), placeholder versions").
> > 
> > Cc: Ira Weiny <ira.weiny at intel.com>
> > Cc: John Hubbard <jhubbard at nvidia.com>
> > Cc: J?r?me Glisse <jglisse at redhat.com>
> > Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> > Cc: Dimitri Sivanich <sivanich at sgi.com>
> > Cc: Arnd Bergmann <arnd at arndb.de>
> > Cc: William Kucharski <william.kucharski at oracle.com>
> > Cc: Christoph Hellwig <hch at lst.de>
> > Cc: linux-kernel at vger.kernel.org
> > Cc: linux-mm at kvack.org
> > Cc: linux-kernel-mentees at lists.linuxfoundation.org
> > Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> > Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> > Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> > Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> > ---
> >  drivers/misc/sgi-gru/grufault.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> > index 4b713a8..61b3447 100644
> > --- a/drivers/misc/sgi-gru/grufault.c
> > +++ b/drivers/misc/sgi-gru/grufault.c
> > @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
> >  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
> >  		return -EFAULT;
> >  	*paddr = page_to_phys(page);
> > -	put_page(page);
> > +	put_user_page(page);
> >  	return 0;
> >  }
> >  
> > -- 
> > 2.7.4
> > 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-19 19:06       ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-19 19:06 UTC (permalink / raw)


On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
Thanks!

John, would you like to take this patch into your miscellaneous
conversions patch set?

Thank you
Bharath
> On Mon, Aug 19, 2019 at 01:08:54AM +0530, Bharath Vedartham wrote:
> > For pages that were retained via get_user_pages*(), release those pages
> > via the new put_user_page*() routines, instead of via put_page() or
> > release_pages().
> > 
> > This is part a tree-wide conversion, as described in commit fc1d8e7cca2d
> > ("mm: introduce put_user_page*(), placeholder versions").
> > 
> > Cc: Ira Weiny <ira.weiny at intel.com>
> > Cc: John Hubbard <jhubbard at nvidia.com>
> > Cc: J?r?me Glisse <jglisse at redhat.com>
> > Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> > Cc: Dimitri Sivanich <sivanich at sgi.com>
> > Cc: Arnd Bergmann <arnd at arndb.de>
> > Cc: William Kucharski <william.kucharski at oracle.com>
> > Cc: Christoph Hellwig <hch at lst.de>
> > Cc: linux-kernel at vger.kernel.org
> > Cc: linux-mm at kvack.org
> > Cc: linux-kernel-mentees at lists.linuxfoundation.org
> > Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> > Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> > Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> > Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> > ---
> >  drivers/misc/sgi-gru/grufault.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> > index 4b713a8..61b3447 100644
> > --- a/drivers/misc/sgi-gru/grufault.c
> > +++ b/drivers/misc/sgi-gru/grufault.c
> > @@ -188,7 +188,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
> >  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
> >  		return -EFAULT;
> >  	*paddr = page_to_phys(page);
> > -	put_page(page);
> > +	put_user_page(page);
> >  	return 0;
> >  }
> >  
> > -- 
> > 2.7.4
> > 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
  2019-08-19 13:00     ` sivanich
  (?)
@ 2019-08-19 19:07       ` linux.bhar
  -1 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-19 19:07 UTC (permalink / raw)
  To: Dimitri Sivanich
  Cc: jhubbard, jglisse, ira.weiny, gregkh, arnd, william.kucharski,
	hch, linux-mm, linux-kernel-mentees, linux-kernel

On Mon, Aug 19, 2019 at 08:00:57AM -0500, Dimitri Sivanich wrote:
> Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>
Thanks! 
> On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> > is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> > not set.
> > 
> > Cc: Ira Weiny <ira.weiny@intel.com>
> > Cc: John Hubbard <jhubbard@nvidia.com>
> > Cc: Jérôme Glisse <jglisse@redhat.com>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Dimitri Sivanich <sivanich@sgi.com>
> > Cc: Arnd Bergmann <arnd@arndb.de>
> > Cc: William Kucharski <william.kucharski@oracle.com>
> > Cc: Christoph Hellwig <hch@lst.de>
> > Cc: linux-kernel@vger.kernel.org
> > Cc: linux-mm@kvack.org
> > Cc: linux-kernel-mentees@lists.linuxfoundation.org
> > Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> > Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> > Reviewed-by: William Kucharski <william.kucharski@oracle.com>
> > Signed-off-by: Bharath Vedartham <linux.bhar@gmail.com>
> > ---
> >  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
> >  1 file changed, 11 insertions(+), 10 deletions(-)
> > 
> > diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> > index 61b3447..bce47af 100644
> > --- a/drivers/misc/sgi-gru/grufault.c
> > +++ b/drivers/misc/sgi-gru/grufault.c
> > @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
> >  {
> >  	struct page *page;
> >  
> > -#ifdef CONFIG_HUGETLB_PAGE
> > -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> > -#else
> > -	*pageshift = PAGE_SHIFT;
> > -#endif
> > +	if (unlikely(is_vm_hugetlb_page(vma)))
> > +		*pageshift = HPAGE_SHIFT;
> > +	else
> > +		*pageshift = PAGE_SHIFT;
> > +
> >  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
> >  		return -EFAULT;
> >  	*paddr = page_to_phys(page);
> > @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
> >  		return 1;
> >  
> >  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> > -#ifdef CONFIG_HUGETLB_PAGE
> > -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> > -#else
> > -	*pageshift = PAGE_SHIFT;
> > -#endif
> > +
> > +	if (unlikely(is_vm_hugetlb_page(vma)))
> > +		*pageshift = HPAGE_SHIFT;
> > +	else
> > +		*pageshift = PAGE_SHIFT;
> > +
> >  	return 0;
> >  
> >  err:
> > -- 
> > 2.7.4
> > 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
@ 2019-08-19 19:07       ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: linux.bhar @ 2019-08-19 19:07 UTC (permalink / raw)


On Mon, Aug 19, 2019 at 08:00:57AM -0500, Dimitri Sivanich wrote:
> Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
Thanks! 
> On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> > is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> > not set.
> > 
> > Cc: Ira Weiny <ira.weiny at intel.com>
> > Cc: John Hubbard <jhubbard at nvidia.com>
> > Cc: J?r?me Glisse <jglisse at redhat.com>
> > Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> > Cc: Dimitri Sivanich <sivanich at sgi.com>
> > Cc: Arnd Bergmann <arnd at arndb.de>
> > Cc: William Kucharski <william.kucharski at oracle.com>
> > Cc: Christoph Hellwig <hch at lst.de>
> > Cc: linux-kernel at vger.kernel.org
> > Cc: linux-mm at kvack.org
> > Cc: linux-kernel-mentees at lists.linuxfoundation.org
> > Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> > Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> > Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> > Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> > ---
> >  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
> >  1 file changed, 11 insertions(+), 10 deletions(-)
> > 
> > diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> > index 61b3447..bce47af 100644
> > --- a/drivers/misc/sgi-gru/grufault.c
> > +++ b/drivers/misc/sgi-gru/grufault.c
> > @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
> >  {
> >  	struct page *page;
> >  
> > -#ifdef CONFIG_HUGETLB_PAGE
> > -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> > -#else
> > -	*pageshift = PAGE_SHIFT;
> > -#endif
> > +	if (unlikely(is_vm_hugetlb_page(vma)))
> > +		*pageshift = HPAGE_SHIFT;
> > +	else
> > +		*pageshift = PAGE_SHIFT;
> > +
> >  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
> >  		return -EFAULT;
> >  	*paddr = page_to_phys(page);
> > @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
> >  		return 1;
> >  
> >  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> > -#ifdef CONFIG_HUGETLB_PAGE
> > -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> > -#else
> > -	*pageshift = PAGE_SHIFT;
> > -#endif
> > +
> > +	if (unlikely(is_vm_hugetlb_page(vma)))
> > +		*pageshift = HPAGE_SHIFT;
> > +	else
> > +		*pageshift = PAGE_SHIFT;
> > +
> >  	return 0;
> >  
> >  err:
> > -- 
> > 2.7.4
> > 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE
@ 2019-08-19 19:07       ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-19 19:07 UTC (permalink / raw)


On Mon, Aug 19, 2019 at 08:00:57AM -0500, Dimitri Sivanich wrote:
> Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
Thanks! 
> On Mon, Aug 19, 2019 at 01:08:55AM +0530, Bharath Vedartham wrote:
> > is_vm_hugetlb_page will always return false if CONFIG_HUGETLB_PAGE is
> > not set.
> > 
> > Cc: Ira Weiny <ira.weiny at intel.com>
> > Cc: John Hubbard <jhubbard at nvidia.com>
> > Cc: J?r?me Glisse <jglisse at redhat.com>
> > Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> > Cc: Dimitri Sivanich <sivanich at sgi.com>
> > Cc: Arnd Bergmann <arnd at arndb.de>
> > Cc: William Kucharski <william.kucharski at oracle.com>
> > Cc: Christoph Hellwig <hch at lst.de>
> > Cc: linux-kernel at vger.kernel.org
> > Cc: linux-mm at kvack.org
> > Cc: linux-kernel-mentees at lists.linuxfoundation.org
> > Reviewed-by: Ira Weiny <ira.weiny at intel.com>
> > Reviewed-by: John Hubbard <jhubbard at nvidia.com>
> > Reviewed-by: William Kucharski <william.kucharski at oracle.com>
> > Signed-off-by: Bharath Vedartham <linux.bhar at gmail.com>
> > ---
> >  drivers/misc/sgi-gru/grufault.c | 21 +++++++++++----------
> >  1 file changed, 11 insertions(+), 10 deletions(-)
> > 
> > diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
> > index 61b3447..bce47af 100644
> > --- a/drivers/misc/sgi-gru/grufault.c
> > +++ b/drivers/misc/sgi-gru/grufault.c
> > @@ -180,11 +180,11 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma,
> >  {
> >  	struct page *page;
> >  
> > -#ifdef CONFIG_HUGETLB_PAGE
> > -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> > -#else
> > -	*pageshift = PAGE_SHIFT;
> > -#endif
> > +	if (unlikely(is_vm_hugetlb_page(vma)))
> > +		*pageshift = HPAGE_SHIFT;
> > +	else
> > +		*pageshift = PAGE_SHIFT;
> > +
> >  	if (get_user_pages(vaddr, 1, write ? FOLL_WRITE : 0, &page, NULL) <= 0)
> >  		return -EFAULT;
> >  	*paddr = page_to_phys(page);
> > @@ -238,11 +238,12 @@ static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr,
> >  		return 1;
> >  
> >  	*paddr = pte_pfn(pte) << PAGE_SHIFT;
> > -#ifdef CONFIG_HUGETLB_PAGE
> > -	*pageshift = is_vm_hugetlb_page(vma) ? HPAGE_SHIFT : PAGE_SHIFT;
> > -#else
> > -	*pageshift = PAGE_SHIFT;
> > -#endif
> > +
> > +	if (unlikely(is_vm_hugetlb_page(vma)))
> > +		*pageshift = HPAGE_SHIFT;
> > +	else
> > +		*pageshift = PAGE_SHIFT;
> > +
> >  	return 0;
> >  
> >  err:
> > -- 
> > 2.7.4
> > 

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
  2019-08-19 19:06       ` linux.bhar
  (?)
@ 2019-08-19 19:30         ` jhubbard
  -1 siblings, 0 replies; 41+ messages in thread
From: John Hubbard @ 2019-08-19 19:30 UTC (permalink / raw)
  To: Bharath Vedartham, Dimitri Sivanich, Andrew Morton
  Cc: jglisse, ira.weiny, gregkh, arnd, william.kucharski, hch,
	inux-kernel, linux-mm, linux-kernel-mentees, linux-kernel,
	Michal Hocko

On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
>> Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>
> Thanks!
> 
> John, would you like to take this patch into your miscellaneous
> conversions patch set?
> 

(+Andrew and Michal, so they know where all this is going.)

Sure, although that conversion series [1] is on a brief hold, because
there are additional conversions desired, and the API is still under
discussion. Also, reading between the lines of Michal's response [2]
about it, I think people would prefer that the next revision include
the following, for each conversion site:

Conversion of gup/put_page sites:

Before:

	get_user_pages(...);
	...
	for each page:
		put_page();

After:
	
	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
	vaddr_pin_user_pages(...gup_flags...)
	...
	vaddr_unpin_user_pages(); /* which invokes put_user_page() */

Fortunately, it's not harmful for the simpler conversion from put_page()
to put_user_page() to happen first, and in fact those have usually led
to simplifications, paving the way to make it easier to call
vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
to convert, too.)

So for now, I'm going to just build on top of Ira's tree, and once the
vaddr*() API settles down, I'll send out an updated series that attempts
to include the reviews and ACKs so far (I'll have to review them, but
make a note that review or ACK was done for part of the conversion),
and adds the additional gup(FOLL_PIN), and uses vaddr*() wrappers instead of
gup/pup.

[1] https://lore.kernel.org/r/20190807013340.9706-1-jhubbard@nvidia.com

[2] https://lore.kernel.org/r/20190809175210.GR18351@dhcp22.suse.cz


thanks,
-- 
John Hubbard
NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-19 19:30         ` jhubbard
  0 siblings, 0 replies; 41+ messages in thread
From: jhubbard @ 2019-08-19 19:30 UTC (permalink / raw)


On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
>> Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
> Thanks!
> 
> John, would you like to take this patch into your miscellaneous
> conversions patch set?
> 

(+Andrew and Michal, so they know where all this is going.)

Sure, although that conversion series [1] is on a brief hold, because
there are additional conversions desired, and the API is still under
discussion. Also, reading between the lines of Michal's response [2]
about it, I think people would prefer that the next revision include
the following, for each conversion site:

Conversion of gup/put_page sites:

Before:

	get_user_pages(...);
	...
	for each page:
		put_page();

After:
	
	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
	vaddr_pin_user_pages(...gup_flags...)
	...
	vaddr_unpin_user_pages(); /* which invokes put_user_page() */

Fortunately, it's not harmful for the simpler conversion from put_page()
to put_user_page() to happen first, and in fact those have usually led
to simplifications, paving the way to make it easier to call
vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
to convert, too.)

So for now, I'm going to just build on top of Ira's tree, and once the
vaddr*() API settles down, I'll send out an updated series that attempts
to include the reviews and ACKs so far (I'll have to review them, but
make a note that review or ACK was done for part of the conversion),
and adds the additional gup(FOLL_PIN), and uses vaddr*() wrappers instead of
gup/pup.

[1] https://lore.kernel.org/r/20190807013340.9706-1-jhubbard at nvidia.com

[2] https://lore.kernel.org/r/20190809175210.GR18351 at dhcp22.suse.cz


thanks,
-- 
John Hubbard
NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-19 19:30         ` jhubbard
  0 siblings, 0 replies; 41+ messages in thread
From: John Hubbard @ 2019-08-19 19:30 UTC (permalink / raw)


On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
>> Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
> Thanks!
> 
> John, would you like to take this patch into your miscellaneous
> conversions patch set?
> 

(+Andrew and Michal, so they know where all this is going.)

Sure, although that conversion series [1] is on a brief hold, because
there are additional conversions desired, and the API is still under
discussion. Also, reading between the lines of Michal's response [2]
about it, I think people would prefer that the next revision include
the following, for each conversion site:

Conversion of gup/put_page sites:

Before:

	get_user_pages(...);
	...
	for each page:
		put_page();

After:
	
	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
	vaddr_pin_user_pages(...gup_flags...)
	...
	vaddr_unpin_user_pages(); /* which invokes put_user_page() */

Fortunately, it's not harmful for the simpler conversion from put_page()
to put_user_page() to happen first, and in fact those have usually led
to simplifications, paving the way to make it easier to call
vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
to convert, too.)

So for now, I'm going to just build on top of Ira's tree, and once the
vaddr*() API settles down, I'll send out an updated series that attempts
to include the reviews and ACKs so far (I'll have to review them, but
make a note that review or ACK was done for part of the conversion),
and adds the additional gup(FOLL_PIN), and uses vaddr*() wrappers instead of
gup/pup.

[1] https://lore.kernel.org/r/20190807013340.9706-1-jhubbard at nvidia.com

[2] https://lore.kernel.org/r/20190809175210.GR18351 at dhcp22.suse.cz


thanks,
-- 
John Hubbard
NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
  2019-08-19 19:30         ` jhubbard
  (?)
@ 2019-08-20  8:18           ` mhocko
  -1 siblings, 0 replies; 41+ messages in thread
From: Michal Hocko @ 2019-08-20  8:18 UTC (permalink / raw)
  To: John Hubbard
  Cc: Bharath Vedartham, Dimitri Sivanich, Andrew Morton, jglisse,
	ira.weiny, gregkh, arnd, william.kucharski, hch, inux-kernel,
	linux-mm, linux-kernel-mentees, linux-kernel

On Mon 19-08-19 12:30:18, John Hubbard wrote:
> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> > On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> > > Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>
> > Thanks!
> > 
> > John, would you like to take this patch into your miscellaneous
> > conversions patch set?
> > 
> 
> (+Andrew and Michal, so they know where all this is going.)
> 
> Sure, although that conversion series [1] is on a brief hold, because
> there are additional conversions desired, and the API is still under
> discussion. Also, reading between the lines of Michal's response [2]
> about it, I think people would prefer that the next revision include
> the following, for each conversion site:
> 
> Conversion of gup/put_page sites:
> 
> Before:
> 
> 	get_user_pages(...);
> 	...
> 	for each page:
> 		put_page();
> 
> After:
> 	
> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
> 	vaddr_pin_user_pages(...gup_flags...)

I was hoping that FOLL_PIN would be handled by vaddr_pin_user_pages.

> 	...
> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
> 
> Fortunately, it's not harmful for the simpler conversion from put_page()
> to put_user_page() to happen first, and in fact those have usually led
> to simplifications, paving the way to make it easier to call
> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
> to convert, too.)

If that makes the later conversion easier then no real objections from
me. Assuming that the current put_user_page conversions are correct of
course (I have the mlock one and potentials that falls into the same
category in mind).
-- 
Michal Hocko
SUSE Labs

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-20  8:18           ` mhocko
  0 siblings, 0 replies; 41+ messages in thread
From: mhocko @ 2019-08-20  8:18 UTC (permalink / raw)


On Mon 19-08-19 12:30:18, John Hubbard wrote:
> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> > On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> > > Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
> > Thanks!
> > 
> > John, would you like to take this patch into your miscellaneous
> > conversions patch set?
> > 
> 
> (+Andrew and Michal, so they know where all this is going.)
> 
> Sure, although that conversion series [1] is on a brief hold, because
> there are additional conversions desired, and the API is still under
> discussion. Also, reading between the lines of Michal's response [2]
> about it, I think people would prefer that the next revision include
> the following, for each conversion site:
> 
> Conversion of gup/put_page sites:
> 
> Before:
> 
> 	get_user_pages(...);
> 	...
> 	for each page:
> 		put_page();
> 
> After:
> 	
> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
> 	vaddr_pin_user_pages(...gup_flags...)

I was hoping that FOLL_PIN would be handled by vaddr_pin_user_pages.

> 	...
> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
> 
> Fortunately, it's not harmful for the simpler conversion from put_page()
> to put_user_page() to happen first, and in fact those have usually led
> to simplifications, paving the way to make it easier to call
> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
> to convert, too.)

If that makes the later conversion easier then no real objections from
me. Assuming that the current put_user_page conversions are correct of
course (I have the mlock one and potentials that falls into the same
category in mind).
-- 
Michal Hocko
SUSE Labs

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-20  8:18           ` mhocko
  0 siblings, 0 replies; 41+ messages in thread
From: Michal Hocko @ 2019-08-20  8:18 UTC (permalink / raw)


On Mon 19-08-19 12:30:18, John Hubbard wrote:
> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> > On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> > > Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
> > Thanks!
> > 
> > John, would you like to take this patch into your miscellaneous
> > conversions patch set?
> > 
> 
> (+Andrew and Michal, so they know where all this is going.)
> 
> Sure, although that conversion series [1] is on a brief hold, because
> there are additional conversions desired, and the API is still under
> discussion. Also, reading between the lines of Michal's response [2]
> about it, I think people would prefer that the next revision include
> the following, for each conversion site:
> 
> Conversion of gup/put_page sites:
> 
> Before:
> 
> 	get_user_pages(...);
> 	...
> 	for each page:
> 		put_page();
> 
> After:
> 	
> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
> 	vaddr_pin_user_pages(...gup_flags...)

I was hoping that FOLL_PIN would be handled by vaddr_pin_user_pages.

> 	...
> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
> 
> Fortunately, it's not harmful for the simpler conversion from put_page()
> to put_user_page() to happen first, and in fact those have usually led
> to simplifications, paving the way to make it easier to call
> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
> to convert, too.)

If that makes the later conversion easier then no real objections from
me. Assuming that the current put_user_page conversions are correct of
course (I have the mlock one and potentials that falls into the same
category in mind).
-- 
Michal Hocko
SUSE Labs

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
  2019-08-19 19:30         ` jhubbard
  (?)
@ 2019-08-20 16:24           ` linux.bhar
  -1 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-20 16:24 UTC (permalink / raw)
  To: John Hubbard
  Cc: Dimitri Sivanich, Andrew Morton, jglisse, ira.weiny, gregkh,
	arnd, william.kucharski, hch, linux-kernel, linux-mm,
	linux-kernel-mentees, Michal Hocko

On Mon, Aug 19, 2019 at 12:30:18PM -0700, John Hubbard wrote:
> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> >On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> >>Reviewed-by: Dimitri Sivanich <sivanich@hpe.com>
> >Thanks!
> >
> >John, would you like to take this patch into your miscellaneous
> >conversions patch set?
> >
> 
> (+Andrew and Michal, so they know where all this is going.)
> 
> Sure, although that conversion series [1] is on a brief hold, because
> there are additional conversions desired, and the API is still under
> discussion. Also, reading between the lines of Michal's response [2]
> about it, I think people would prefer that the next revision include
> the following, for each conversion site:
> 
> Conversion of gup/put_page sites:
> 
> Before:
> 
> 	get_user_pages(...);
> 	...
> 	for each page:
> 		put_page();
> 
> After:
> 	
> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
> 	vaddr_pin_user_pages(...gup_flags...)
> 	...
> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
> 
> Fortunately, it's not harmful for the simpler conversion from put_page()
> to put_user_page() to happen first, and in fact those have usually led
> to simplifications, paving the way to make it easier to call
> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
> to convert, too.)
> 
> So for now, I'm going to just build on top of Ira's tree, and once the
> vaddr*() API settles down, I'll send out an updated series that attempts
> to include the reviews and ACKs so far (I'll have to review them, but
> make a note that review or ACK was done for part of the conversion),
> and adds the additional gup(FOLL_PIN), and uses vaddr*() wrappers instead of
> gup/pup.
> 
> [1] https://lore.kernel.org/r/20190807013340.9706-1-jhubbard@nvidia.com
> 
> [2] https://lore.kernel.org/r/20190809175210.GR18351@dhcp22.suse.cz
> 
Cc' lkml(I missed out the 'l' in this series). 

sounds good. It makes sense to keep the entire gup in the kernel rather
than to expose it outside. 

I ll make sure to checkout the emails on vaddr*() API and pace my work
on it accordingly.

Thank you
Bharath
> thanks,
> -- 
> John Hubbard
> NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-20 16:24           ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: linux.bhar @ 2019-08-20 16:24 UTC (permalink / raw)


On Mon, Aug 19, 2019 at 12:30:18PM -0700, John Hubbard wrote:
> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> >On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> >>Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
> >Thanks!
> >
> >John, would you like to take this patch into your miscellaneous
> >conversions patch set?
> >
> 
> (+Andrew and Michal, so they know where all this is going.)
> 
> Sure, although that conversion series [1] is on a brief hold, because
> there are additional conversions desired, and the API is still under
> discussion. Also, reading between the lines of Michal's response [2]
> about it, I think people would prefer that the next revision include
> the following, for each conversion site:
> 
> Conversion of gup/put_page sites:
> 
> Before:
> 
> 	get_user_pages(...);
> 	...
> 	for each page:
> 		put_page();
> 
> After:
> 	
> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
> 	vaddr_pin_user_pages(...gup_flags...)
> 	...
> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
> 
> Fortunately, it's not harmful for the simpler conversion from put_page()
> to put_user_page() to happen first, and in fact those have usually led
> to simplifications, paving the way to make it easier to call
> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
> to convert, too.)
> 
> So for now, I'm going to just build on top of Ira's tree, and once the
> vaddr*() API settles down, I'll send out an updated series that attempts
> to include the reviews and ACKs so far (I'll have to review them, but
> make a note that review or ACK was done for part of the conversion),
> and adds the additional gup(FOLL_PIN), and uses vaddr*() wrappers instead of
> gup/pup.
> 
> [1] https://lore.kernel.org/r/20190807013340.9706-1-jhubbard at nvidia.com
> 
> [2] https://lore.kernel.org/r/20190809175210.GR18351 at dhcp22.suse.cz
> 
Cc' lkml(I missed out the 'l' in this series). 

sounds good. It makes sense to keep the entire gup in the kernel rather
than to expose it outside. 

I ll make sure to checkout the emails on vaddr*() API and pace my work
on it accordingly.

Thank you
Bharath
> thanks,
> -- 
> John Hubbard
> NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-20 16:24           ` linux.bhar
  0 siblings, 0 replies; 41+ messages in thread
From: Bharath Vedartham @ 2019-08-20 16:24 UTC (permalink / raw)


On Mon, Aug 19, 2019 at 12:30:18PM -0700, John Hubbard wrote:
> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
> >On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
> >>Reviewed-by: Dimitri Sivanich <sivanich at hpe.com>
> >Thanks!
> >
> >John, would you like to take this patch into your miscellaneous
> >conversions patch set?
> >
> 
> (+Andrew and Michal, so they know where all this is going.)
> 
> Sure, although that conversion series [1] is on a brief hold, because
> there are additional conversions desired, and the API is still under
> discussion. Also, reading between the lines of Michal's response [2]
> about it, I think people would prefer that the next revision include
> the following, for each conversion site:
> 
> Conversion of gup/put_page sites:
> 
> Before:
> 
> 	get_user_pages(...);
> 	...
> 	for each page:
> 		put_page();
> 
> After:
> 	
> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
> 	vaddr_pin_user_pages(...gup_flags...)
> 	...
> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
> 
> Fortunately, it's not harmful for the simpler conversion from put_page()
> to put_user_page() to happen first, and in fact those have usually led
> to simplifications, paving the way to make it easier to call
> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
> to convert, too.)
> 
> So for now, I'm going to just build on top of Ira's tree, and once the
> vaddr*() API settles down, I'll send out an updated series that attempts
> to include the reviews and ACKs so far (I'll have to review them, but
> make a note that review or ACK was done for part of the conversion),
> and adds the additional gup(FOLL_PIN), and uses vaddr*() wrappers instead of
> gup/pup.
> 
> [1] https://lore.kernel.org/r/20190807013340.9706-1-jhubbard at nvidia.com
> 
> [2] https://lore.kernel.org/r/20190809175210.GR18351 at dhcp22.suse.cz
> 
Cc' lkml(I missed out the 'l' in this series). 

sounds good. It makes sense to keep the entire gup in the kernel rather
than to expose it outside. 

I ll make sure to checkout the emails on vaddr*() API and pace my work
on it accordingly.

Thank you
Bharath
> thanks,
> -- 
> John Hubbard
> NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
  2019-08-20  8:18           ` mhocko
  (?)
@ 2019-08-20 20:50             ` jhubbard
  -1 siblings, 0 replies; 41+ messages in thread
From: John Hubbard @ 2019-08-20 20:50 UTC (permalink / raw)
  To: Michal Hocko
  Cc: Bharath Vedartham, Dimitri Sivanich, Andrew Morton, jglisse,
	ira.weiny, gregkh, arnd, william.kucharski, hch, inux-kernel,
	linux-mm, linux-kernel-mentees, linux-kernel

On 8/20/19 1:18 AM, Michal Hocko wrote:
> On Mon 19-08-19 12:30:18, John Hubbard wrote:
>> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
>>> On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
...
>> Conversion of gup/put_page sites:
>>
>> Before:
>>
>> 	get_user_pages(...);
>> 	...
>> 	for each page:
>> 		put_page();
>>
>> After:
>> 	
>> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
>> 	vaddr_pin_user_pages(...gup_flags...)
> 
> I was hoping that FOLL_PIN would be handled by vaddr_pin_user_pages.
> 

Good point: now that we've got the 4 cases summarized, it turns out
that either FOLL_PIN is required, or there is no need to call
vaddr_pin_user_pages() at all.  So we can go back to setting FOLL_PIN
inside it, which is of course much better for maintenance. Great!


>> 	...
>> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
>>
>> Fortunately, it's not harmful for the simpler conversion from put_page()
>> to put_user_page() to happen first, and in fact those have usually led
>> to simplifications, paving the way to make it easier to call
>> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
>> to convert, too.)
> 
> If that makes the later conversion easier then no real objections from
> me. Assuming that the current put_user_page conversions are correct of
> course (I have the mlock one and potentials that falls into the same
> category in mind).
> 

Agreed: only correct conversions should be done. Not the incorrect
ones. ahem.  :)

thanks,
-- 
John Hubbard
NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-20 20:50             ` jhubbard
  0 siblings, 0 replies; 41+ messages in thread
From: jhubbard @ 2019-08-20 20:50 UTC (permalink / raw)


On 8/20/19 1:18 AM, Michal Hocko wrote:
> On Mon 19-08-19 12:30:18, John Hubbard wrote:
>> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
>>> On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
...
>> Conversion of gup/put_page sites:
>>
>> Before:
>>
>> 	get_user_pages(...);
>> 	...
>> 	for each page:
>> 		put_page();
>>
>> After:
>> 	
>> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
>> 	vaddr_pin_user_pages(...gup_flags...)
> 
> I was hoping that FOLL_PIN would be handled by vaddr_pin_user_pages.
> 

Good point: now that we've got the 4 cases summarized, it turns out
that either FOLL_PIN is required, or there is no need to call
vaddr_pin_user_pages() at all.  So we can go back to setting FOLL_PIN
inside it, which is of course much better for maintenance. Great!


>> 	...
>> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
>>
>> Fortunately, it's not harmful for the simpler conversion from put_page()
>> to put_user_page() to happen first, and in fact those have usually led
>> to simplifications, paving the way to make it easier to call
>> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
>> to convert, too.)
> 
> If that makes the later conversion easier then no real objections from
> me. Assuming that the current put_user_page conversions are correct of
> course (I have the mlock one and potentials that falls into the same
> category in mind).
> 

Agreed: only correct conversions should be done. Not the incorrect
ones. ahem.  :)

thanks,
-- 
John Hubbard
NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [Linux-kernel-mentees] [PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*()
@ 2019-08-20 20:50             ` jhubbard
  0 siblings, 0 replies; 41+ messages in thread
From: John Hubbard @ 2019-08-20 20:50 UTC (permalink / raw)


On 8/20/19 1:18 AM, Michal Hocko wrote:
> On Mon 19-08-19 12:30:18, John Hubbard wrote:
>> On 8/19/19 12:06 PM, Bharath Vedartham wrote:
>>> On Mon, Aug 19, 2019 at 07:56:11AM -0500, Dimitri Sivanich wrote:
...
>> Conversion of gup/put_page sites:
>>
>> Before:
>>
>> 	get_user_pages(...);
>> 	...
>> 	for each page:
>> 		put_page();
>>
>> After:
>> 	
>> 	gup_flags |= FOLL_PIN; (maybe FOLL_LONGTERM in some cases)
>> 	vaddr_pin_user_pages(...gup_flags...)
> 
> I was hoping that FOLL_PIN would be handled by vaddr_pin_user_pages.
> 

Good point: now that we've got the 4 cases summarized, it turns out
that either FOLL_PIN is required, or there is no need to call
vaddr_pin_user_pages() at all.  So we can go back to setting FOLL_PIN
inside it, which is of course much better for maintenance. Great!


>> 	...
>> 	vaddr_unpin_user_pages(); /* which invokes put_user_page() */
>>
>> Fortunately, it's not harmful for the simpler conversion from put_page()
>> to put_user_page() to happen first, and in fact those have usually led
>> to simplifications, paving the way to make it easier to call
>> vaddr_unpin_user_pages(), once it's ready. (And showing exactly what
>> to convert, too.)
> 
> If that makes the later conversion easier then no real objections from
> me. Assuming that the current put_user_page conversions are correct of
> course (I have the mlock one and potentials that falls into the same
> category in mind).
> 

Agreed: only correct conversions should be done. Not the incorrect
ones. ahem.  :)

thanks,
-- 
John Hubbard
NVIDIA

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2019-08-20 20:52 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-18 19:38 [Linux-kernel-mentees][PATCH v6 0/2] get_user_pages changes Bharath Vedartham
2019-08-18 19:38 ` [Linux-kernel-mentees] [PATCH " Bharath Vedartham
2019-08-18 19:38 ` linux.bhar
2019-08-18 19:38 ` [Linux-kernel-mentees][PATCH v6 1/2] sgi-gru: Convert put_page() to put_user_page*() Bharath Vedartham
2019-08-18 19:38   ` [Linux-kernel-mentees] [PATCH " Bharath Vedartham
2019-08-18 19:38   ` linux.bhar
2019-08-18 19:51   ` [Linux-kernel-mentees][PATCH " Bharath Vedartham
2019-08-18 19:51     ` [Linux-kernel-mentees] [PATCH " Bharath Vedartham
2019-08-18 19:51     ` linux.bhar
2019-08-19 12:56   ` [Linux-kernel-mentees][PATCH " Dimitri Sivanich
2019-08-19 12:56     ` [Linux-kernel-mentees] [PATCH " Dimitri Sivanich
2019-08-19 12:56     ` sivanich
2019-08-19 12:56     ` [Linux-kernel-mentees][PATCH " Dimitri Sivanich
2019-08-19 19:06     ` Bharath Vedartham
2019-08-19 19:06       ` [Linux-kernel-mentees] [PATCH " Bharath Vedartham
2019-08-19 19:06       ` linux.bhar
2019-08-19 19:30       ` [Linux-kernel-mentees][PATCH " John Hubbard
2019-08-19 19:30         ` [Linux-kernel-mentees] [PATCH " John Hubbard
2019-08-19 19:30         ` jhubbard
2019-08-20  8:18         ` [Linux-kernel-mentees][PATCH " Michal Hocko
2019-08-20  8:18           ` [Linux-kernel-mentees] [PATCH " Michal Hocko
2019-08-20  8:18           ` mhocko
2019-08-20 20:50           ` [Linux-kernel-mentees][PATCH " John Hubbard
2019-08-20 20:50             ` [Linux-kernel-mentees] [PATCH " John Hubbard
2019-08-20 20:50             ` jhubbard
2019-08-20 16:24         ` [Linux-kernel-mentees][PATCH " Bharath Vedartham
2019-08-20 16:24           ` [Linux-kernel-mentees] [PATCH " Bharath Vedartham
2019-08-20 16:24           ` linux.bhar
2019-08-18 19:38 ` [Linux-kernel-mentees][PATCH 2/2] sgi-gru: Remove uneccessary ifdef for CONFIG_HUGETLB_PAGE Bharath Vedartham
2019-08-18 19:38   ` [Linux-kernel-mentees] [PATCH " Bharath Vedartham
2019-08-18 19:38   ` linux.bhar
2019-08-18 19:51   ` [Linux-kernel-mentees][PATCH " Bharath Vedartham
2019-08-18 19:51     ` [Linux-kernel-mentees] [PATCH " Bharath Vedartham
2019-08-18 19:51     ` linux.bhar
2019-08-19 13:00   ` [Linux-kernel-mentees][PATCH " Dimitri Sivanich
2019-08-19 13:00     ` [Linux-kernel-mentees] [PATCH " Dimitri Sivanich
2019-08-19 13:00     ` sivanich
2019-08-19 19:07     ` [Linux-kernel-mentees][PATCH " Bharath Vedartham
2019-08-19 19:07       ` [Linux-kernel-mentees] [PATCH " Bharath Vedartham
2019-08-19 19:07       ` linux.bhar
2019-08-18 19:50 ` [Linux-kernel-mentees][PATCH v6 0/2] get_user_pages changes Bharath Vedartham

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.