From: Jason Gunthorpe <jgg@ziepe.ca>
To: Christoph Hellwig <hch@lst.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Paul Burton <paul.burton@mips.com>,
James Hogan <jhogan@kernel.org>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
Rich Felker <dalias@libc.org>,
"David S. Miller" <davem@davemloft.net>,
Nicholas Piggin <npiggin@gmail.com>,
Khalid Aziz <khalid.aziz@oracle.com>,
Andrey Konovalov <andreyknvl@google.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>,
linux-mips@vger.kernel.org, linux-sh@vger.kernel.org,
sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-mm@kvack.org, x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 10/16] mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP
Date: Fri, 21 Jun 2019 11:28:24 -0300 [thread overview]
Message-ID: <20190621142824.GP19891@ziepe.ca> (raw)
In-Reply-To: <20190611144102.8848-11-hch@lst.de>
On Tue, Jun 11, 2019 at 04:40:56PM +0200, Christoph Hellwig wrote:
> We only support the generic GUP now, so rename the config option to
> be more clear, and always use the mm/Kconfig definition of the
> symbol and select it from the arch Kconfigs.
Looks OK to me
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
But could you also roll something like this in to the series? There is
no longer any reason for the special __weak stuff that I can see -
just follow the normal pattern for stubbing config controlled
functions through the header file.
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0e8834ac32b76c..13b1cb573383d5 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1561,8 +1561,17 @@ long get_user_pages_locked(unsigned long start, unsigned long nr_pages,
long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
struct page **pages, unsigned int gup_flags);
+#ifdef CONFIG_HAVE_FAST_GUP
int get_user_pages_fast(unsigned long start, int nr_pages,
unsigned int gup_flags, struct page **pages);
+#else
+static inline int get_user_pages_fast(unsigned long start, int nr_pages,
+ unsigned int gup_flags,
+ struct page **pages)
+{
+ return get_user_pages_unlocked(start, nr_pages, pages, gup_flags);
+}
+#endif
/* Container for pinned pfns / pages */
struct frame_vector {
@@ -1668,8 +1677,17 @@ extern int mprotect_fixup(struct vm_area_struct *vma,
/*
* doesn't attempt to fault and will return short.
*/
+#ifdef CONFIG_HAVE_FAST_GUP
int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
struct page **pages);
+#else
+static inline int __get_user_pages_fast(unsigned long start, int nr_pages,
+ int write, struct page **pages)
+{
+ return 0;
+}
+#endif
+
/*
* per-process(per-mm_struct) statistics.
*/
diff --git a/mm/util.c b/mm/util.c
index 9834c4ab7d8e86..68575a315dc5ad 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -300,53 +300,6 @@ void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack)
}
#endif
-/*
- * Like get_user_pages_fast() except its IRQ-safe in that it won't fall
- * back to the regular GUP.
- * Note a difference with get_user_pages_fast: this always returns the
- * number of pages pinned, 0 if no pages were pinned.
- * If the architecture does not support this function, simply return with no
- * pages pinned.
- */
-int __weak __get_user_pages_fast(unsigned long start,
- int nr_pages, int write, struct page **pages)
-{
- return 0;
-}
-EXPORT_SYMBOL_GPL(__get_user_pages_fast);
-
-/**
- * get_user_pages_fast() - pin user pages in memory
- * @start: starting user address
- * @nr_pages: number of pages from start to pin
- * @gup_flags: flags modifying pin behaviour
- * @pages: array that receives pointers to the pages pinned.
- * Should be at least nr_pages long.
- *
- * get_user_pages_fast provides equivalent functionality to get_user_pages,
- * operating on current and current->mm, with force=0 and vma=NULL. However
- * unlike get_user_pages, it must be called without mmap_sem held.
- *
- * get_user_pages_fast may take mmap_sem and page table locks, so no
- * assumptions can be made about lack of locking. get_user_pages_fast is to be
- * implemented in a way that is advantageous (vs get_user_pages()) when the
- * user memory area is already faulted in and present in ptes. However if the
- * pages have to be faulted in, it may turn out to be slightly slower so
- * callers need to carefully consider what to use. On many architectures,
- * get_user_pages_fast simply falls back to get_user_pages.
- *
- * Return: number of pages pinned. This may be fewer than the number
- * requested. If nr_pages is 0 or negative, returns 0. If no pages
- * were pinned, returns -errno.
- */
-int __weak get_user_pages_fast(unsigned long start,
- int nr_pages, unsigned int gup_flags,
- struct page **pages)
-{
- return get_user_pages_unlocked(start, nr_pages, pages, gup_flags);
-}
-EXPORT_SYMBOL_GPL(get_user_pages_fast);
-
unsigned long vm_mmap_pgoff(struct file *file, unsigned long addr,
unsigned long len, unsigned long prot,
unsigned long flag, unsigned long pgoff)
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@ziepe.ca>
To: Christoph Hellwig <hch@lst.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Paul Burton <paul.burton@mips.com>,
James Hogan <jhogan@kernel.org>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
Rich Felker <dalias@libc.org>,
"David S. Miller" <davem@davemloft.net>,
Nicholas Piggin <npiggin@gmail.com>,
Khalid Aziz <khalid.aziz@oracle.com>,
Andrey Konovalov <andreyknvl@google.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>,
linux-mips@vger.kernel.org, linux-sh@vger.kernel.org,
sparclinux@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-mm@kvack.org, x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 10/16] mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP
Date: Fri, 21 Jun 2019 14:28:24 +0000 [thread overview]
Message-ID: <20190621142824.GP19891@ziepe.ca> (raw)
In-Reply-To: <20190611144102.8848-11-hch@lst.de>
On Tue, Jun 11, 2019 at 04:40:56PM +0200, Christoph Hellwig wrote:
> We only support the generic GUP now, so rename the config option to
> be more clear, and always use the mm/Kconfig definition of the
> symbol and select it from the arch Kconfigs.
Looks OK to me
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
But could you also roll something like this in to the series? There is
no longer any reason for the special __weak stuff that I can see -
just follow the normal pattern for stubbing config controlled
functions through the header file.
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0e8834ac32b76c..13b1cb573383d5 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1561,8 +1561,17 @@ long get_user_pages_locked(unsigned long start, unsigned long nr_pages,
long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
struct page **pages, unsigned int gup_flags);
+#ifdef CONFIG_HAVE_FAST_GUP
int get_user_pages_fast(unsigned long start, int nr_pages,
unsigned int gup_flags, struct page **pages);
+#else
+static inline int get_user_pages_fast(unsigned long start, int nr_pages,
+ unsigned int gup_flags,
+ struct page **pages)
+{
+ return get_user_pages_unlocked(start, nr_pages, pages, gup_flags);
+}
+#endif
/* Container for pinned pfns / pages */
struct frame_vector {
@@ -1668,8 +1677,17 @@ extern int mprotect_fixup(struct vm_area_struct *vma,
/*
* doesn't attempt to fault and will return short.
*/
+#ifdef CONFIG_HAVE_FAST_GUP
int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
struct page **pages);
+#else
+static inline int __get_user_pages_fast(unsigned long start, int nr_pages,
+ int write, struct page **pages)
+{
+ return 0;
+}
+#endif
+
/*
* per-process(per-mm_struct) statistics.
*/
diff --git a/mm/util.c b/mm/util.c
index 9834c4ab7d8e86..68575a315dc5ad 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -300,53 +300,6 @@ void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack)
}
#endif
-/*
- * Like get_user_pages_fast() except its IRQ-safe in that it won't fall
- * back to the regular GUP.
- * Note a difference with get_user_pages_fast: this always returns the
- * number of pages pinned, 0 if no pages were pinned.
- * If the architecture does not support this function, simply return with no
- * pages pinned.
- */
-int __weak __get_user_pages_fast(unsigned long start,
- int nr_pages, int write, struct page **pages)
-{
- return 0;
-}
-EXPORT_SYMBOL_GPL(__get_user_pages_fast);
-
-/**
- * get_user_pages_fast() - pin user pages in memory
- * @start: starting user address
- * @nr_pages: number of pages from start to pin
- * @gup_flags: flags modifying pin behaviour
- * @pages: array that receives pointers to the pages pinned.
- * Should be at least nr_pages long.
- *
- * get_user_pages_fast provides equivalent functionality to get_user_pages,
- * operating on current and current->mm, with force=0 and vma=NULL. However
- * unlike get_user_pages, it must be called without mmap_sem held.
- *
- * get_user_pages_fast may take mmap_sem and page table locks, so no
- * assumptions can be made about lack of locking. get_user_pages_fast is to be
- * implemented in a way that is advantageous (vs get_user_pages()) when the
- * user memory area is already faulted in and present in ptes. However if the
- * pages have to be faulted in, it may turn out to be slightly slower so
- * callers need to carefully consider what to use. On many architectures,
- * get_user_pages_fast simply falls back to get_user_pages.
- *
- * Return: number of pages pinned. This may be fewer than the number
- * requested. If nr_pages is 0 or negative, returns 0. If no pages
- * were pinned, returns -errno.
- */
-int __weak get_user_pages_fast(unsigned long start,
- int nr_pages, unsigned int gup_flags,
- struct page **pages)
-{
- return get_user_pages_unlocked(start, nr_pages, pages, gup_flags);
-}
-EXPORT_SYMBOL_GPL(get_user_pages_fast);
-
unsigned long vm_mmap_pgoff(struct file *file, unsigned long addr,
unsigned long len, unsigned long prot,
unsigned long flag, unsigned long pgoff)
WARNING: multiple messages have this Message-ID (diff)
From: Jason Gunthorpe <jgg@ziepe.ca>
To: Christoph Hellwig <hch@lst.de>
Cc: x86@kernel.org, Rich Felker <dalias@libc.org>,
Yoshinori Sato <ysato@users.sourceforge.jp>,
linux-sh@vger.kernel.org, James Hogan <jhogan@kernel.org>,
linuxppc-dev@lists.ozlabs.org,
Khalid Aziz <khalid.aziz@oracle.com>,
Nicholas Piggin <npiggin@gmail.com>,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
Paul Burton <paul.burton@mips.com>,
Paul Mackerras <paulus@samba.org>,
Andrey Konovalov <andreyknvl@google.com>,
sparclinux@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
"David S. Miller" <davem@davemloft.net>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 10/16] mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP
Date: Fri, 21 Jun 2019 11:28:24 -0300 [thread overview]
Message-ID: <20190621142824.GP19891@ziepe.ca> (raw)
In-Reply-To: <20190611144102.8848-11-hch@lst.de>
On Tue, Jun 11, 2019 at 04:40:56PM +0200, Christoph Hellwig wrote:
> We only support the generic GUP now, so rename the config option to
> be more clear, and always use the mm/Kconfig definition of the
> symbol and select it from the arch Kconfigs.
Looks OK to me
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
But could you also roll something like this in to the series? There is
no longer any reason for the special __weak stuff that I can see -
just follow the normal pattern for stubbing config controlled
functions through the header file.
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0e8834ac32b76c..13b1cb573383d5 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1561,8 +1561,17 @@ long get_user_pages_locked(unsigned long start, unsigned long nr_pages,
long get_user_pages_unlocked(unsigned long start, unsigned long nr_pages,
struct page **pages, unsigned int gup_flags);
+#ifdef CONFIG_HAVE_FAST_GUP
int get_user_pages_fast(unsigned long start, int nr_pages,
unsigned int gup_flags, struct page **pages);
+#else
+static inline int get_user_pages_fast(unsigned long start, int nr_pages,
+ unsigned int gup_flags,
+ struct page **pages)
+{
+ return get_user_pages_unlocked(start, nr_pages, pages, gup_flags);
+}
+#endif
/* Container for pinned pfns / pages */
struct frame_vector {
@@ -1668,8 +1677,17 @@ extern int mprotect_fixup(struct vm_area_struct *vma,
/*
* doesn't attempt to fault and will return short.
*/
+#ifdef CONFIG_HAVE_FAST_GUP
int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
struct page **pages);
+#else
+static inline int __get_user_pages_fast(unsigned long start, int nr_pages,
+ int write, struct page **pages)
+{
+ return 0;
+}
+#endif
+
/*
* per-process(per-mm_struct) statistics.
*/
diff --git a/mm/util.c b/mm/util.c
index 9834c4ab7d8e86..68575a315dc5ad 100644
--- a/mm/util.c
+++ b/mm/util.c
@@ -300,53 +300,6 @@ void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack)
}
#endif
-/*
- * Like get_user_pages_fast() except its IRQ-safe in that it won't fall
- * back to the regular GUP.
- * Note a difference with get_user_pages_fast: this always returns the
- * number of pages pinned, 0 if no pages were pinned.
- * If the architecture does not support this function, simply return with no
- * pages pinned.
- */
-int __weak __get_user_pages_fast(unsigned long start,
- int nr_pages, int write, struct page **pages)
-{
- return 0;
-}
-EXPORT_SYMBOL_GPL(__get_user_pages_fast);
-
-/**
- * get_user_pages_fast() - pin user pages in memory
- * @start: starting user address
- * @nr_pages: number of pages from start to pin
- * @gup_flags: flags modifying pin behaviour
- * @pages: array that receives pointers to the pages pinned.
- * Should be at least nr_pages long.
- *
- * get_user_pages_fast provides equivalent functionality to get_user_pages,
- * operating on current and current->mm, with force=0 and vma=NULL. However
- * unlike get_user_pages, it must be called without mmap_sem held.
- *
- * get_user_pages_fast may take mmap_sem and page table locks, so no
- * assumptions can be made about lack of locking. get_user_pages_fast is to be
- * implemented in a way that is advantageous (vs get_user_pages()) when the
- * user memory area is already faulted in and present in ptes. However if the
- * pages have to be faulted in, it may turn out to be slightly slower so
- * callers need to carefully consider what to use. On many architectures,
- * get_user_pages_fast simply falls back to get_user_pages.
- *
- * Return: number of pages pinned. This may be fewer than the number
- * requested. If nr_pages is 0 or negative, returns 0. If no pages
- * were pinned, returns -errno.
- */
-int __weak get_user_pages_fast(unsigned long start,
- int nr_pages, unsigned int gup_flags,
- struct page **pages)
-{
- return get_user_pages_unlocked(start, nr_pages, pages, gup_flags);
-}
-EXPORT_SYMBOL_GPL(get_user_pages_fast);
-
unsigned long vm_mmap_pgoff(struct file *file, unsigned long addr,
unsigned long len, unsigned long prot,
unsigned long flag, unsigned long pgoff)
next prev parent reply other threads:[~2019-06-21 14:28 UTC|newest]
Thread overview: 239+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-11 14:40 switch the remaining architectures to use generic GUP v3 Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 01/16] mm: use untagged_addr() for get_user_pages_fast addresses Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 19:22 ` Khalid Aziz
2019-06-11 19:22 ` Khalid Aziz
2019-06-11 19:22 ` Khalid Aziz
2019-06-21 13:16 ` Jason Gunthorpe
2019-06-21 13:16 ` Jason Gunthorpe
2019-06-21 13:16 ` Jason Gunthorpe
2019-06-21 13:39 ` Jason Gunthorpe
2019-06-21 13:39 ` Jason Gunthorpe
2019-06-21 13:39 ` Jason Gunthorpe
2019-06-21 15:35 ` Khalid Aziz
2019-06-21 15:35 ` Khalid Aziz
2019-06-21 15:35 ` Khalid Aziz
2019-06-21 15:54 ` Jason Gunthorpe
2019-06-21 15:54 ` Jason Gunthorpe
2019-06-21 15:54 ` Jason Gunthorpe
2019-06-25 7:41 ` Christoph Hellwig
2019-06-25 7:41 ` Christoph Hellwig
2019-06-25 7:41 ` Christoph Hellwig
2019-06-25 7:43 ` Christoph Hellwig
2019-06-25 7:43 ` Christoph Hellwig
2019-06-25 7:43 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 02/16] mm: simplify gup_fast_permitted Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-21 13:40 ` Jason Gunthorpe
2019-06-21 13:40 ` Jason Gunthorpe
2019-06-21 13:40 ` Jason Gunthorpe
2019-06-11 14:40 ` [PATCH 03/16] mm: lift the x86_32 PAE version of gup_get_pte to common code Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-21 13:45 ` Jason Gunthorpe
2019-06-21 13:45 ` Jason Gunthorpe
2019-06-21 13:45 ` Jason Gunthorpe
2019-06-11 14:40 ` [PATCH 04/16] MIPS: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-21 14:05 ` Jason Gunthorpe
2019-06-21 14:05 ` Jason Gunthorpe
2019-06-21 14:05 ` Jason Gunthorpe
2019-06-25 7:46 ` Christoph Hellwig
2019-06-25 7:46 ` Christoph Hellwig
2019-06-25 7:46 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 05/16] sh: add the missing pud_page definition Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 06/16] sh: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 07/16] sparc64: add the missing pgd_page definition Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 08/16] sparc64: define untagged_addr() Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 19:23 ` Khalid Aziz
2019-06-11 19:23 ` Khalid Aziz
2019-06-11 19:23 ` Khalid Aziz
2019-06-11 14:40 ` [PATCH 09/16] sparc64: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 19:35 ` Khalid Aziz
2019-06-11 19:35 ` Khalid Aziz
2019-06-11 19:35 ` Khalid Aziz
2019-06-11 14:40 ` [PATCH 10/16] mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 19:35 ` Khalid Aziz
2019-06-11 19:35 ` Khalid Aziz
2019-06-11 19:35 ` Khalid Aziz
2019-06-21 14:28 ` Jason Gunthorpe [this message]
2019-06-21 14:28 ` Jason Gunthorpe
2019-06-21 14:28 ` Jason Gunthorpe
2019-06-25 7:50 ` Christoph Hellwig
2019-06-25 7:50 ` Christoph Hellwig
2019-06-25 7:50 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 11/16] mm: consolidate the get_user_pages* implementations Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-21 14:41 ` Jason Gunthorpe
2019-06-21 14:41 ` Jason Gunthorpe
2019-06-21 14:41 ` Jason Gunthorpe
2019-06-25 7:56 ` Christoph Hellwig
2019-06-25 7:56 ` Christoph Hellwig
2019-06-25 7:56 ` Christoph Hellwig
2019-06-25 11:56 ` Jason Gunthorpe
2019-06-25 11:56 ` Jason Gunthorpe
2019-06-25 11:56 ` Jason Gunthorpe
2019-06-11 14:40 ` [PATCH 12/16] mm: validate get_user_pages_fast flags Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` [PATCH 13/16] mm: move the powerpc hugepd code to mm/gup.c Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:40 ` Christoph Hellwig
2019-06-11 14:41 ` [PATCH 14/16] mm: switch gup_hugepte to use try_get_compound_head Christoph Hellwig
2019-06-11 14:41 ` Christoph Hellwig
2019-06-11 14:41 ` Christoph Hellwig
2019-06-11 14:41 ` [PATCH 15/16] mm: mark the page referenced in gup_hugepte Christoph Hellwig
2019-06-11 14:41 ` Christoph Hellwig
2019-06-11 14:41 ` Christoph Hellwig
2019-06-11 14:41 ` [PATCH 16/16] mm: pass get_user_pages_fast iterator arguments in a structure Christoph Hellwig
2019-06-11 14:41 ` Christoph Hellwig
2019-06-11 14:41 ` Christoph Hellwig
2019-06-12 0:52 ` Nicholas Piggin
2019-06-12 0:52 ` Nicholas Piggin
2019-06-12 0:52 ` Nicholas Piggin
2019-06-12 1:09 ` Linus Torvalds
2019-06-12 1:09 ` Linus Torvalds
2019-06-12 1:09 ` Linus Torvalds
2019-06-20 12:18 ` Nicholas Piggin
2019-06-20 12:18 ` Nicholas Piggin
2019-06-20 12:18 ` Nicholas Piggin
2019-06-20 17:21 ` Linus Torvalds
2019-06-20 17:21 ` Linus Torvalds
2019-06-20 17:21 ` Linus Torvalds
2019-06-21 8:15 ` Christoph Hellwig
2019-06-21 8:15 ` Christoph Hellwig
2019-06-21 8:15 ` Christoph Hellwig
2019-06-21 23:55 ` Nicholas Piggin
2019-06-21 23:55 ` Nicholas Piggin
2019-06-21 23:55 ` Nicholas Piggin
2019-06-21 8:29 ` Nicholas Piggin
2019-06-21 8:29 ` Nicholas Piggin
2019-06-21 8:29 ` Nicholas Piggin
2019-06-12 1:27 ` Nadav Amit
2019-06-12 1:27 ` Nadav Amit
2019-06-12 1:27 ` Nadav Amit
2019-06-20 11:45 ` switch the remaining architectures to use generic GUP v3 Christoph Hellwig
2019-06-20 11:45 ` Christoph Hellwig
2019-06-20 11:45 ` Christoph Hellwig
2019-06-21 14:43 ` Jason Gunthorpe
2019-06-21 14:43 ` Jason Gunthorpe
2019-06-21 14:43 ` Jason Gunthorpe
-- strict thread matches above, loose matches on Subject: below --
2019-06-25 14:36 switch the remaining architectures to use generic GUP v4 Christoph Hellwig
2019-06-25 14:36 ` Christoph Hellwig
2019-06-25 14:36 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 01/16] mm: use untagged_addr() for get_user_pages_fast addresses Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 02/16] mm: simplify gup_fast_permitted Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 03/16] mm: lift the x86_32 PAE version of gup_get_pte to common code Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 04/16] MIPS: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-29 14:37 ` Guenter Roeck
2019-06-29 14:37 ` Guenter Roeck
2019-06-29 14:37 ` Guenter Roeck
2019-06-25 14:37 ` [PATCH 05/16] sh: add the missing pud_page definition Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 06/16] sh: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-29 15:15 ` Guenter Roeck
2019-06-29 15:15 ` Guenter Roeck
2019-06-29 15:15 ` Guenter Roeck
2019-06-25 14:37 ` [PATCH 07/16] sparc64: add the missing pgd_page definition Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 08/16] sparc64: define untagged_addr() Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 09/16] sparc64: use the generic get_user_pages_fast code Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-07-17 21:59 ` Dmitry V. Levin
2019-07-17 21:59 ` Dmitry V. Levin
2019-07-17 22:04 ` Linus Torvalds
2019-07-17 22:04 ` Linus Torvalds
2019-07-17 23:30 ` Dmitry V. Levin
2019-07-17 23:30 ` Dmitry V. Levin
2019-07-18 0:17 ` Linus Torvalds
2019-07-18 0:17 ` Linus Torvalds
2019-07-18 1:21 ` David Miller
2019-07-18 1:21 ` David Miller
2019-07-18 21:43 ` David Miller
2019-07-18 21:43 ` David Miller
2019-07-18 21:14 ` David Miller
2019-07-18 21:14 ` David Miller
2019-07-19 6:00 ` Christoph Hellwig
2019-07-19 6:00 ` Christoph Hellwig
2019-07-24 19:32 ` Anatoly Pugachev
2019-07-24 19:32 ` Anatoly Pugachev
2019-07-24 20:13 ` David Miller
2019-07-24 20:13 ` David Miller
2019-07-25 18:33 ` Anatoly Pugachev
2019-07-25 18:33 ` Anatoly Pugachev
2019-07-25 22:52 ` David Miller
2019-07-25 22:52 ` David Miller
2019-07-28 2:09 ` David Miller
2019-07-28 2:09 ` David Miller
2019-07-28 20:00 ` Anatoly Pugachev
2019-07-28 20:00 ` Anatoly Pugachev
2019-07-26 17:58 ` Khalid Aziz
2019-07-26 17:58 ` Khalid Aziz
2019-08-09 19:59 ` Anatoly Pugachev
2019-08-09 19:59 ` Anatoly Pugachev
2019-08-10 7:17 ` Christoph Hellwig
2019-08-10 7:17 ` Christoph Hellwig
2019-08-10 19:36 ` Mikael Pettersson
2019-08-10 19:36 ` Mikael Pettersson
2019-08-11 20:30 ` Anatoly Pugachev
2019-08-11 20:30 ` Anatoly Pugachev
2019-06-25 14:37 ` [PATCH 10/16] mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 11/16] mm: reorder code blocks in gup.c Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 12/16] mm: consolidate the get_user_pages* implementations Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 13/16] mm: validate get_user_pages_fast flags Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 14/16] mm: move the powerpc hugepd code to mm/gup.c Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 19:37 ` Andrew Morton
2019-06-25 19:37 ` Andrew Morton
2019-06-25 19:37 ` Andrew Morton
2019-06-26 5:49 ` Christoph Hellwig
2019-06-26 5:49 ` Christoph Hellwig
2019-06-26 5:49 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 15/16] mm: switch gup_hugepte to use try_get_compound_head Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` [PATCH 16/16] mm: mark the page referenced in gup_hugepte Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
2019-06-25 14:37 ` Christoph Hellwig
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=20190621142824.GP19891@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=andreyknvl@google.com \
--cc=benh@kernel.crashing.org \
--cc=dalias@libc.org \
--cc=davem@davemloft.net \
--cc=hch@lst.de \
--cc=jhogan@kernel.org \
--cc=khalid.aziz@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-sh@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=paul.burton@mips.com \
--cc=paulus@samba.org \
--cc=sparclinux@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
--cc=ysato@users.sourceforge.jp \
/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.