All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@linux.intel.com>
To: Jeff Moyer <jmoyer@redhat.com>
Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org
Subject: Re: [PATCH 06/10] mm: Add vmf_insert_pfn_pmd()
Date: Mon, 13 Jul 2015 11:02:35 -0400	[thread overview]
Message-ID: <20150713150235.GG13681@linux.intel.com> (raw)
In-Reply-To: <x49r3oc6vj6.fsf@segfault.boston.devel.redhat.com>

On Mon, Jul 13, 2015 at 09:23:41AM -0400, Jeff Moyer wrote:
> Matthew Wilcox <matthew.r.wilcox@intel.com> writes:
> 
> > +static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
> > +		pmd_t *pmd, unsigned long pfn, pgprot_t prot, bool write)
> > +{
> > +	return VM_FAULT_NOPAGE;
> > +}
> 
> What's the point of the return value?

Good point.  Originally, it paralleled insert_pfn() in mm/memory.c, but it
became apparent that the return code of 0 or -Exxx was useless, and in converting insert_pfn_pmd over to VM_FAULT_ codes, all possible return codes were
going to be VM_FAULT_NOPAGE.  It didn't occur to me to take it one step further and make the function return void.

It doesn't make much difference either way:

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 26d0fc1..5ffdcaa 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -837,7 +837,7 @@ int do_huge_pmd_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
 	return 0;
 }
 
-static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
+static void insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
 		pmd_t *pmd, unsigned long pfn, pgprot_t prot, bool write)
 {
 	struct mm_struct *mm = vma->vm_mm;
@@ -855,7 +855,6 @@ static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
 		update_mmu_cache_pmd(vma, addr, pmd);
 	}
 	spin_unlock(ptl);
-	return VM_FAULT_NOPAGE;
 }
 
 int vmf_insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
@@ -877,7 +876,8 @@ int vmf_insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
 		return VM_FAULT_SIGBUS;
 	if (track_pfn_insert(vma, &pgprot, pfn))
 		return VM_FAULT_SIGBUS;
-	return insert_pfn_pmd(vma, addr, pmd, pfn, pgprot, write);
+	insert_pfn_pmd(vma, addr, pmd, pfn, pgprot, write);
+	return VM_FAULT_NOPAGE;
 }
 
 int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,


I suppose it's slightly cleaner.  I'll integrate this for the next release.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Matthew Wilcox <willy@linux.intel.com>
To: Jeff Moyer <jmoyer@redhat.com>
Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org
Subject: Re: [PATCH 06/10] mm: Add vmf_insert_pfn_pmd()
Date: Mon, 13 Jul 2015 11:02:35 -0400	[thread overview]
Message-ID: <20150713150235.GG13681@linux.intel.com> (raw)
In-Reply-To: <x49r3oc6vj6.fsf@segfault.boston.devel.redhat.com>

On Mon, Jul 13, 2015 at 09:23:41AM -0400, Jeff Moyer wrote:
> Matthew Wilcox <matthew.r.wilcox@intel.com> writes:
> 
> > +static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
> > +		pmd_t *pmd, unsigned long pfn, pgprot_t prot, bool write)
> > +{
> > +	return VM_FAULT_NOPAGE;
> > +}
> 
> What's the point of the return value?

Good point.  Originally, it paralleled insert_pfn() in mm/memory.c, but it
became apparent that the return code of 0 or -Exxx was useless, and in converting insert_pfn_pmd over to VM_FAULT_ codes, all possible return codes were
going to be VM_FAULT_NOPAGE.  It didn't occur to me to take it one step further and make the function return void.

It doesn't make much difference either way:

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 26d0fc1..5ffdcaa 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -837,7 +837,7 @@ int do_huge_pmd_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
 	return 0;
 }
 
-static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
+static void insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
 		pmd_t *pmd, unsigned long pfn, pgprot_t prot, bool write)
 {
 	struct mm_struct *mm = vma->vm_mm;
@@ -855,7 +855,6 @@ static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
 		update_mmu_cache_pmd(vma, addr, pmd);
 	}
 	spin_unlock(ptl);
-	return VM_FAULT_NOPAGE;
 }
 
 int vmf_insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
@@ -877,7 +876,8 @@ int vmf_insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr,
 		return VM_FAULT_SIGBUS;
 	if (track_pfn_insert(vma, &pgprot, pfn))
 		return VM_FAULT_SIGBUS;
-	return insert_pfn_pmd(vma, addr, pmd, pfn, pgprot, write);
+	insert_pfn_pmd(vma, addr, pmd, pfn, pgprot, write);
+	return VM_FAULT_NOPAGE;
 }
 
 int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,


I suppose it's slightly cleaner.  I'll integrate this for the next release.

  reply	other threads:[~2015-07-13 15:02 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-10 20:29 [PATCH 00/10] Huge page support for DAX files Matthew Wilcox
2015-07-10 20:29 ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 01/10] thp: vma_adjust_trans_huge(): adjust file-backed VMA too Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 02/10] dax: Move DAX-related functions to a new header Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 03/10] thp: Prepare for DAX huge pages Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-19 11:03   ` Kirill A. Shutemov
2015-07-19 11:03     ` Kirill A. Shutemov
2015-07-10 20:29 ` [PATCH 04/10] mm: Add a pmd_fault handler Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 05/10] mm: Export various functions for the benefit of DAX Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 06/10] mm: Add vmf_insert_pfn_pmd() Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-13 13:23   ` Jeff Moyer
2015-07-13 13:23     ` Jeff Moyer
2015-07-13 15:02     ` Matthew Wilcox [this message]
2015-07-13 15:02       ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 07/10] dax: Add huge page fault support Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-13 15:05   ` Jan Kara
2015-07-13 15:05     ` Jan Kara
2015-07-13 15:33     ` Matthew Wilcox
2015-07-13 15:33       ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 08/10] ext2: Huge " Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 09/10] ext4: " Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox
2015-07-10 20:29 ` [PATCH 10/10] xfs: " Matthew Wilcox
2015-07-10 20:29   ` Matthew Wilcox

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=20150713150235.GG13681@linux.intel.com \
    --to=willy@linux.intel.com \
    --cc=jmoyer@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=matthew.r.wilcox@intel.com \
    /path/to/YOUR_REPLY

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

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