linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC V5] Add gup trace points support
@ 2015-12-09 21:22 Yang Shi
  2015-12-09 21:22 ` [PATCH v5 1/7] trace/events: Add gup trace events Yang Shi
                   ` (7 more replies)
  0 siblings, 8 replies; 19+ messages in thread
From: Yang Shi @ 2015-12-09 21:22 UTC (permalink / raw)
  To: akpm, rostedt, mingo; +Cc: linux-kernel, linux-mm, linaro-kernel, yang.shi


v5:
* Fixed a typo introduced by v4 rebase
* Removed redundant "#define CREATE_TRACE_POINTS" from architecture specifc
  gup.c

v4:
* Adopted Steven's suggestion to use "unsigned int" for nr_pages to save
  space in ring buffer since it is unlikely to have more than 0xffffffff
  pages are touched by gup in one invoke
* Remove unnecessray type cast

v3:
* Adopted suggestion from Dave Hansen to move the gup header include to the last
* Adopted comments from Steven:
  - Use DECLARE_EVENT_CLASS and DEFINE_EVENT
  - Just keep necessary TP_ARGS
* Moved archtichture specific fall-backable fast version trace point after the
  do while loop since it may jump to the slow version.
* Not implement recording return value since Steven plans to have it in generic
  tracing code
 
v2:
* Adopted commetns from Steven
  - remove all reference to tsk->comm since it is unnecessary for non-sched
    trace points
  - reduce arguments for __get_user_pages trace point and update mm/gup.c
    accordingly
* Added Ralf's acked-by for patch 4/7.


Some background about why I think this might be useful.

When I was profiling some hugetlb related program, I got page-faults event
doubled when hugetlb is enabled. When I looked into the code, I found page-faults
come from two places, do_page_fault and gup. So, I tried to figure out which
play a role (or both) in my use case. But I can't find existing finer tracing
event for sub page-faults in current mainline kernel.

So, I added the gup trace points support to have finer tracing events for
page-faults. The below events are added:

__get_user_pages
__get_user_pages_fast
fixup_user_fault

Both __get_user_pages and fixup_user_fault call handle_mm_fault.

Just added trace points to raw version __get_user_pages since all variants
will call it finally to do real work.

Although __get_user_pages_fast doesn't call handle_mm_fault, it might be useful
to have it to distinguish between slow and fast version.

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

* [PATCH v5 1/7] trace/events: Add gup trace events
  2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
@ 2015-12-09 21:22 ` Yang Shi
  2015-12-09 21:22 ` [PATCH v5 2/7] mm/gup: add gup trace points Yang Shi
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 19+ messages in thread
From: Yang Shi @ 2015-12-09 21:22 UTC (permalink / raw)
  To: akpm, rostedt, mingo; +Cc: linux-kernel, linux-mm, linaro-kernel, yang.shi

page-faults events record the invoke to handle_mm_fault, but the invoke
may come from do_page_fault or gup. In some use cases, the finer event count
mey be needed, so add trace events support for:

__get_user_pages
__get_user_pages_fast
fixup_user_fault

Signed-off-by: Yang Shi <yang.shi@linaro.org>
---
 include/trace/events/gup.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 include/trace/events/gup.h

diff --git a/include/trace/events/gup.h b/include/trace/events/gup.h
new file mode 100644
index 0000000..ac0e011
--- /dev/null
+++ b/include/trace/events/gup.h
@@ -0,0 +1,63 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM gup
+
+#if !defined(_TRACE_GUP_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_GUP_H
+
+#include <linux/types.h>
+#include <linux/tracepoint.h>
+
+TRACE_EVENT(gup_fixup_user_fault,
+
+	TP_PROTO(unsigned long address),
+
+	TP_ARGS(address),
+
+	TP_STRUCT__entry(
+		__field(	unsigned long,	address		)
+	),
+
+	TP_fast_assign(
+		__entry->address	= address;
+	),
+
+	TP_printk("address=%lx",  __entry->address)
+);
+
+DECLARE_EVENT_CLASS(gup,
+
+	TP_PROTO(unsigned long start, unsigned int nr_pages),
+
+	TP_ARGS(start, nr_pages),
+
+	TP_STRUCT__entry(
+		__field(	unsigned long,	start		)
+		__field(	unsigned int,	nr_pages	)
+	),
+
+	TP_fast_assign(
+		__entry->start		= start;
+		__entry->nr_pages	= nr_pages;
+	),
+
+	TP_printk("start=%lx nr_pages=%d", __entry->start, __entry->nr_pages)
+);
+
+DEFINE_EVENT(gup, gup_get_user_pages,
+
+	TP_PROTO(unsigned long start, unsigned int nr_pages),
+
+	TP_ARGS(start, nr_pages)
+);
+
+DEFINE_EVENT(gup, gup_get_user_pages_fast,
+
+	TP_PROTO(unsigned long start, unsigned int nr_pages),
+
+	TP_ARGS(start, nr_pages)
+);
+
+#endif /* _TRACE_GUP_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
-- 
2.0.2


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

* [PATCH v5 2/7] mm/gup: add gup trace points
  2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
  2015-12-09 21:22 ` [PATCH v5 1/7] trace/events: Add gup trace events Yang Shi
@ 2015-12-09 21:22 ` Yang Shi
  2015-12-09 21:22 ` [PATCH v5 3/7] x86: " Yang Shi
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 19+ messages in thread
From: Yang Shi @ 2015-12-09 21:22 UTC (permalink / raw)
  To: akpm, rostedt, mingo; +Cc: linux-kernel, linux-mm, linaro-kernel, yang.shi

For slow version, just add trace point for raw __get_user_pages since all
slow variants call it to do the real work finally.

Signed-off-by: Yang Shi <yang.shi@linaro.org>
---
 mm/gup.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/mm/gup.c b/mm/gup.c
index deafa2c..00a3cff 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -18,6 +18,9 @@
 
 #include "internal.h"
 
+#define CREATE_TRACE_POINTS
+#include <trace/events/gup.h>
+
 static struct page *no_page_table(struct vm_area_struct *vma,
 		unsigned int flags)
 {
@@ -462,6 +465,8 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
 	if (!nr_pages)
 		return 0;
 
+	trace_gup_get_user_pages(start, nr_pages);
+
 	VM_BUG_ON(!!pages != !!(gup_flags & FOLL_GET));
 
 	/*
@@ -599,6 +604,7 @@ int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm,
 	if (!(vm_flags & vma->vm_flags))
 		return -EFAULT;
 
+	trace_gup_fixup_user_fault(address);
 	ret = handle_mm_fault(mm, vma, address, fault_flags);
 	if (ret & VM_FAULT_ERROR) {
 		if (ret & VM_FAULT_OOM)
@@ -1340,6 +1346,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 					start, len)))
 		return 0;
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	/*
 	 * Disable interrupts.  We use the nested form as we can already have
 	 * interrupts disabled by get_futex_key.
-- 
2.0.2


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

* [PATCH v5 3/7] x86: mm/gup: add gup trace points
  2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
  2015-12-09 21:22 ` [PATCH v5 1/7] trace/events: Add gup trace events Yang Shi
  2015-12-09 21:22 ` [PATCH v5 2/7] mm/gup: add gup trace points Yang Shi
@ 2015-12-09 21:22 ` Yang Shi
  2016-01-13 18:11   ` Shi, Yang
  2015-12-09 21:22 ` [PATCH v5 4/7] mips: " Yang Shi
                   ` (4 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Yang Shi @ 2015-12-09 21:22 UTC (permalink / raw)
  To: akpm, rostedt, mingo
  Cc: linux-kernel, linux-mm, linaro-kernel, yang.shi, Thomas Gleixner,
	H. Peter Anvin, x86

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Signed-off-by: Yang Shi <yang.shi@linaro.org>
---
 arch/x86/mm/gup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
index ae9a37b..df5f3ab 100644
--- a/arch/x86/mm/gup.c
+++ b/arch/x86/mm/gup.c
@@ -12,6 +12,8 @@
 
 #include <asm/pgtable.h>
 
+#include <trace/events/gup.h>
+
 static inline pte_t gup_get_pte(pte_t *ptep)
 {
 #ifndef CONFIG_X86_PAE
@@ -270,6 +272,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 					(void __user *)start, len)))
 		return 0;
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	/*
 	 * XXX: batch / limit 'nr', to avoid large irq off latency
 	 * needs some instrumenting to determine the common sizes used by
@@ -373,6 +377,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	} while (pgdp++, addr = next, addr != end);
 	local_irq_enable();
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	VM_BUG_ON(nr != (end - start) >> PAGE_SHIFT);
 	return nr;
 
-- 
2.0.2


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

* [PATCH v5 4/7] mips: mm/gup: add gup trace points
  2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
                   ` (2 preceding siblings ...)
  2015-12-09 21:22 ` [PATCH v5 3/7] x86: " Yang Shi
@ 2015-12-09 21:22 ` Yang Shi
  2015-12-09 21:22 ` [PATCH v5 5/7] s390: " Yang Shi
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 19+ messages in thread
From: Yang Shi @ 2015-12-09 21:22 UTC (permalink / raw)
  To: akpm, rostedt, mingo
  Cc: linux-kernel, linux-mm, linaro-kernel, yang.shi, linux-mips

Cc: linux-mips@linux-mips.org
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Yang Shi <yang.shi@linaro.org>
---
 arch/mips/mm/gup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/mips/mm/gup.c b/arch/mips/mm/gup.c
index 349995d..7d90883 100644
--- a/arch/mips/mm/gup.c
+++ b/arch/mips/mm/gup.c
@@ -15,6 +15,8 @@
 #include <asm/cpu-features.h>
 #include <asm/pgtable.h>
 
+#include <trace/events/gup.h>
+
 static inline pte_t gup_get_pte(pte_t *ptep)
 {
 #if defined(CONFIG_PHYS_ADDR_T_64BIT) && defined(CONFIG_CPU_MIPS32)
@@ -211,6 +213,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 					(void __user *)start, len)))
 		return 0;
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	/*
 	 * XXX: batch / limit 'nr', to avoid large irq off latency
 	 * needs some instrumenting to determine the common sizes used by
@@ -291,6 +295,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	} while (pgdp++, addr = next, addr != end);
 	local_irq_enable();
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	VM_BUG_ON(nr != (end - start) >> PAGE_SHIFT);
 	return nr;
 slow:
-- 
2.0.2


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

* [PATCH v5 5/7] s390: mm/gup: add gup trace points
  2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
                   ` (3 preceding siblings ...)
  2015-12-09 21:22 ` [PATCH v5 4/7] mips: " Yang Shi
@ 2015-12-09 21:22 ` Yang Shi
  2016-01-13 18:12   ` Shi, Yang
  2015-12-09 21:22 ` [PATCH v5 6/7] sh: " Yang Shi
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 19+ messages in thread
From: Yang Shi @ 2015-12-09 21:22 UTC (permalink / raw)
  To: akpm, rostedt, mingo
  Cc: linux-kernel, linux-mm, linaro-kernel, yang.shi,
	Martin Schwidefsky, Heiko Carstens, linux-s390

Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: linux-s390@vger.kernel.org
Signed-off-by: Yang Shi <yang.shi@linaro.org>
---
 arch/s390/mm/gup.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/s390/mm/gup.c b/arch/s390/mm/gup.c
index 12bbf0e..a1d5db7 100644
--- a/arch/s390/mm/gup.c
+++ b/arch/s390/mm/gup.c
@@ -12,6 +12,8 @@
 #include <linux/rwsem.h>
 #include <asm/pgtable.h>
 
+#include <trace/events/gup.h>
+
 /*
  * The performance critical leaf functions are made noinline otherwise gcc
  * inlines everything into a single function which results in too much
@@ -188,6 +190,9 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	end = start + len;
 	if ((end <= start) || (end > TASK_SIZE))
 		return 0;
+
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	/*
 	 * local_irq_save() doesn't prevent pagetable teardown, but does
 	 * prevent the pagetables from being freed on s390.
-- 
2.0.2


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

* [PATCH v5 6/7] sh: mm/gup: add gup trace points
  2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
                   ` (4 preceding siblings ...)
  2015-12-09 21:22 ` [PATCH v5 5/7] s390: " Yang Shi
@ 2015-12-09 21:22 ` Yang Shi
  2015-12-09 21:22 ` [PATCH v5 7/7] sparc64: " Yang Shi
  2016-01-12 20:00 ` [RFC V5] Add gup trace points support Shi, Yang
  7 siblings, 0 replies; 19+ messages in thread
From: Yang Shi @ 2015-12-09 21:22 UTC (permalink / raw)
  To: akpm, rostedt, mingo
  Cc: linux-kernel, linux-mm, linaro-kernel, yang.shi, linux-sh

Cc: linux-sh@vger.kernel.org
Signed-off-by: Yang Shi <yang.shi@linaro.org>
---
 arch/sh/mm/gup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/sh/mm/gup.c b/arch/sh/mm/gup.c
index e7af6a6..dc80480 100644
--- a/arch/sh/mm/gup.c
+++ b/arch/sh/mm/gup.c
@@ -14,6 +14,8 @@
 #include <linux/highmem.h>
 #include <asm/pgtable.h>
 
+#include <trace/events/gup.h>
+
 static inline pte_t gup_get_pte(pte_t *ptep)
 {
 #ifndef CONFIG_X2TLB
@@ -178,6 +180,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 					(void __user *)start, len)))
 		return 0;
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	/*
 	 * This doesn't prevent pagetable teardown, but does prevent
 	 * the pagetables and pages from being freed.
@@ -244,6 +248,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	} while (pgdp++, addr = next, addr != end);
 	local_irq_enable();
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	VM_BUG_ON(nr != (end - start) >> PAGE_SHIFT);
 	return nr;
 
-- 
2.0.2


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

* [PATCH v5 7/7] sparc64: mm/gup: add gup trace points
  2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
                   ` (5 preceding siblings ...)
  2015-12-09 21:22 ` [PATCH v5 6/7] sh: " Yang Shi
@ 2015-12-09 21:22 ` Yang Shi
  2016-01-13 18:13   ` Shi, Yang
  2016-01-12 20:00 ` [RFC V5] Add gup trace points support Shi, Yang
  7 siblings, 1 reply; 19+ messages in thread
From: Yang Shi @ 2015-12-09 21:22 UTC (permalink / raw)
  To: akpm, rostedt, mingo
  Cc: linux-kernel, linux-mm, linaro-kernel, yang.shi, David S. Miller,
	sparclinux

Cc: "David S. Miller" <davem@davemloft.net>
Cc: sparclinux@vger.kernel.org
Signed-off-by: Yang Shi <yang.shi@linaro.org>
---
 arch/sparc/mm/gup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/sparc/mm/gup.c b/arch/sparc/mm/gup.c
index 2e5c4fc..5a06c34 100644
--- a/arch/sparc/mm/gup.c
+++ b/arch/sparc/mm/gup.c
@@ -12,6 +12,8 @@
 #include <linux/rwsem.h>
 #include <asm/pgtable.h>
 
+#include <trace/events/gup.h>
+
 /*
  * The performance critical leaf functions are made noinline otherwise gcc
  * inlines everything into a single function which results in too much
@@ -174,6 +176,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	end = start + len;
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	local_irq_save(flags);
 	pgdp = pgd_offset(mm, addr);
 	do {
@@ -236,6 +240,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
 
 	local_irq_enable();
 
+	trace_gup_get_user_pages_fast(start, nr_pages);
+
 	VM_BUG_ON(nr != (end - start) >> PAGE_SHIFT);
 	return nr;
 
-- 
2.0.2


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

* Re: [RFC V5] Add gup trace points support
  2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
                   ` (6 preceding siblings ...)
  2015-12-09 21:22 ` [PATCH v5 7/7] sparc64: " Yang Shi
@ 2016-01-12 20:00 ` Shi, Yang
  2016-01-12 20:10   ` Steven Rostedt
  7 siblings, 1 reply; 19+ messages in thread
From: Shi, Yang @ 2016-01-12 20:00 UTC (permalink / raw)
  To: akpm, rostedt, mingo; +Cc: linux-kernel, linux-mm, linaro-kernel

Hi Steven,

Any more comments on this series? How should I proceed it?

Thanks,
Yang


On 12/9/2015 1:22 PM, Yang Shi wrote:
> v5:
> * Fixed a typo introduced by v4 rebase
> * Removed redundant "#define CREATE_TRACE_POINTS" from architecture specifc
>    gup.c
>
> v4:
> * Adopted Steven's suggestion to use "unsigned int" for nr_pages to save
>    space in ring buffer since it is unlikely to have more than 0xffffffff
>    pages are touched by gup in one invoke
> * Remove unnecessray type cast
>
> v3:
> * Adopted suggestion from Dave Hansen to move the gup header include to the last
> * Adopted comments from Steven:
>    - Use DECLARE_EVENT_CLASS and DEFINE_EVENT
>    - Just keep necessary TP_ARGS
> * Moved archtichture specific fall-backable fast version trace point after the
>    do while loop since it may jump to the slow version.
> * Not implement recording return value since Steven plans to have it in generic
>    tracing code
>
> v2:
> * Adopted commetns from Steven
>    - remove all reference to tsk->comm since it is unnecessary for non-sched
>      trace points
>    - reduce arguments for __get_user_pages trace point and update mm/gup.c
>      accordingly
> * Added Ralf's acked-by for patch 4/7.
>
>
> Some background about why I think this might be useful.
>
> When I was profiling some hugetlb related program, I got page-faults event
> doubled when hugetlb is enabled. When I looked into the code, I found page-faults
> come from two places, do_page_fault and gup. So, I tried to figure out which
> play a role (or both) in my use case. But I can't find existing finer tracing
> event for sub page-faults in current mainline kernel.
>
> So, I added the gup trace points support to have finer tracing events for
> page-faults. The below events are added:
>
> __get_user_pages
> __get_user_pages_fast
> fixup_user_fault
>
> Both __get_user_pages and fixup_user_fault call handle_mm_fault.
>
> Just added trace points to raw version __get_user_pages since all variants
> will call it finally to do real work.
>
> Although __get_user_pages_fast doesn't call handle_mm_fault, it might be useful
> to have it to distinguish between slow and fast version.
>

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

* Re: [RFC V5] Add gup trace points support
  2016-01-12 20:00 ` [RFC V5] Add gup trace points support Shi, Yang
@ 2016-01-12 20:10   ` Steven Rostedt
  2016-01-13 18:14     ` Shi, Yang
  0 siblings, 1 reply; 19+ messages in thread
From: Steven Rostedt @ 2016-01-12 20:10 UTC (permalink / raw)
  To: Shi, Yang; +Cc: akpm, mingo, linux-kernel, linux-mm, linaro-kernel

On Tue, 12 Jan 2016 12:00:54 -0800
"Shi, Yang" <yang.shi@linaro.org> wrote:

> Hi Steven,
> 
> Any more comments on this series? How should I proceed it?
> 

The tracing part looks fine to me. Now you just need to get the arch
maintainers to ack each of the arch patches, and I can pull them in for
4.6. Too late for 4.5. Probably need Andrew Morton's ack for the
mm/gup.c patch.

-- Steve

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

* Re: [PATCH v5 3/7] x86: mm/gup: add gup trace points
  2015-12-09 21:22 ` [PATCH v5 3/7] x86: " Yang Shi
@ 2016-01-13 18:11   ` Shi, Yang
  0 siblings, 0 replies; 19+ messages in thread
From: Shi, Yang @ 2016-01-13 18:11 UTC (permalink / raw)
  To: akpm, rostedt, mingo
  Cc: linux-kernel, linux-mm, linaro-kernel, Thomas Gleixner,
	H. Peter Anvin, x86

Hi folks,

Any comment for this one? The tracing part review has been done.

Thanks,
Yang


On 12/9/2015 1:22 PM, Yang Shi wrote:
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: x86@kernel.org
> Signed-off-by: Yang Shi <yang.shi@linaro.org>
> ---
>   arch/x86/mm/gup.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
> index ae9a37b..df5f3ab 100644
> --- a/arch/x86/mm/gup.c
> +++ b/arch/x86/mm/gup.c
> @@ -12,6 +12,8 @@
>
>   #include <asm/pgtable.h>
>
> +#include <trace/events/gup.h>
> +
>   static inline pte_t gup_get_pte(pte_t *ptep)
>   {
>   #ifndef CONFIG_X86_PAE
> @@ -270,6 +272,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
>   					(void __user *)start, len)))
>   		return 0;
>
> +	trace_gup_get_user_pages_fast(start, nr_pages);
> +
>   	/*
>   	 * XXX: batch / limit 'nr', to avoid large irq off latency
>   	 * needs some instrumenting to determine the common sizes used by
> @@ -373,6 +377,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
>   	} while (pgdp++, addr = next, addr != end);
>   	local_irq_enable();
>
> +	trace_gup_get_user_pages_fast(start, nr_pages);
> +
>   	VM_BUG_ON(nr != (end - start) >> PAGE_SHIFT);
>   	return nr;
>
>

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

* Re: [PATCH v5 5/7] s390: mm/gup: add gup trace points
  2015-12-09 21:22 ` [PATCH v5 5/7] s390: " Yang Shi
@ 2016-01-13 18:12   ` Shi, Yang
  2016-01-14  7:45     ` Heiko Carstens
  0 siblings, 1 reply; 19+ messages in thread
From: Shi, Yang @ 2016-01-13 18:12 UTC (permalink / raw)
  To: akpm, rostedt, mingo
  Cc: linux-kernel, linux-mm, linaro-kernel, Martin Schwidefsky,
	Heiko Carstens, linux-s390

Hi folks,

Any comment for this one? The tracing part review has been done.

Thanks,
Yang


On 12/9/2015 1:22 PM, Yang Shi wrote:
> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
> Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
> Cc: linux-s390@vger.kernel.org
> Signed-off-by: Yang Shi <yang.shi@linaro.org>
> ---
>   arch/s390/mm/gup.c | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/arch/s390/mm/gup.c b/arch/s390/mm/gup.c
> index 12bbf0e..a1d5db7 100644
> --- a/arch/s390/mm/gup.c
> +++ b/arch/s390/mm/gup.c
> @@ -12,6 +12,8 @@
>   #include <linux/rwsem.h>
>   #include <asm/pgtable.h>
>
> +#include <trace/events/gup.h>
> +
>   /*
>    * The performance critical leaf functions are made noinline otherwise gcc
>    * inlines everything into a single function which results in too much
> @@ -188,6 +190,9 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
>   	end = start + len;
>   	if ((end <= start) || (end > TASK_SIZE))
>   		return 0;
> +
> +	trace_gup_get_user_pages_fast(start, nr_pages);
> +
>   	/*
>   	 * local_irq_save() doesn't prevent pagetable teardown, but does
>   	 * prevent the pagetables from being freed on s390.
>

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

* Re: [PATCH v5 7/7] sparc64: mm/gup: add gup trace points
  2015-12-09 21:22 ` [PATCH v5 7/7] sparc64: " Yang Shi
@ 2016-01-13 18:13   ` Shi, Yang
  2016-01-13 20:21     ` David Miller
  0 siblings, 1 reply; 19+ messages in thread
From: Shi, Yang @ 2016-01-13 18:13 UTC (permalink / raw)
  To: akpm, rostedt, mingo
  Cc: linux-kernel, linux-mm, linaro-kernel, David S. Miller, sparclinux

Hi David,

Any comment on this one? The tracing part review has been done.

Thanks,
Yang


On 12/9/2015 1:22 PM, Yang Shi wrote:
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: sparclinux@vger.kernel.org
> Signed-off-by: Yang Shi <yang.shi@linaro.org>
> ---
>   arch/sparc/mm/gup.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/arch/sparc/mm/gup.c b/arch/sparc/mm/gup.c
> index 2e5c4fc..5a06c34 100644
> --- a/arch/sparc/mm/gup.c
> +++ b/arch/sparc/mm/gup.c
> @@ -12,6 +12,8 @@
>   #include <linux/rwsem.h>
>   #include <asm/pgtable.h>
>
> +#include <trace/events/gup.h>
> +
>   /*
>    * The performance critical leaf functions are made noinline otherwise gcc
>    * inlines everything into a single function which results in too much
> @@ -174,6 +176,8 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
>   	len = (unsigned long) nr_pages << PAGE_SHIFT;
>   	end = start + len;
>
> +	trace_gup_get_user_pages_fast(start, nr_pages);
> +
>   	local_irq_save(flags);
>   	pgdp = pgd_offset(mm, addr);
>   	do {
> @@ -236,6 +240,8 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
>
>   	local_irq_enable();
>
> +	trace_gup_get_user_pages_fast(start, nr_pages);
> +
>   	VM_BUG_ON(nr != (end - start) >> PAGE_SHIFT);
>   	return nr;
>
>

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

* Re: [RFC V5] Add gup trace points support
  2016-01-12 20:10   ` Steven Rostedt
@ 2016-01-13 18:14     ` Shi, Yang
  2016-01-14 14:40       ` Steven Rostedt
  0 siblings, 1 reply; 19+ messages in thread
From: Shi, Yang @ 2016-01-13 18:14 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: akpm, mingo, linux-kernel, linux-mm, linaro-kernel

On 1/12/2016 12:10 PM, Steven Rostedt wrote:
> On Tue, 12 Jan 2016 12:00:54 -0800
> "Shi, Yang" <yang.shi@linaro.org> wrote:
>
>> Hi Steven,
>>
>> Any more comments on this series? How should I proceed it?
>>
>
> The tracing part looks fine to me. Now you just need to get the arch
> maintainers to ack each of the arch patches, and I can pull them in for
> 4.6. Too late for 4.5. Probably need Andrew Morton's ack for the
> mm/gup.c patch.

Thanks Steven. Already sent email to x86, s390 and sparc maintainers. 
Ralf already acked the MIPS part since v1.

Regards,
Yang

>
> -- Steve
>

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

* Re: [PATCH v5 7/7] sparc64: mm/gup: add gup trace points
  2016-01-13 18:13   ` Shi, Yang
@ 2016-01-13 20:21     ` David Miller
  2016-01-13 20:44       ` Steven Rostedt
  0 siblings, 1 reply; 19+ messages in thread
From: David Miller @ 2016-01-13 20:21 UTC (permalink / raw)
  To: yang.shi
  Cc: akpm, rostedt, mingo, linux-kernel, linux-mm, linaro-kernel, sparclinux

From: "Shi, Yang" <yang.shi@linaro.org>
Date: Wed, 13 Jan 2016 10:13:08 -0800

> Any comment on this one? The tracing part review has been done.

I thought this was going to simply be submitted upstream via
another tree.

If you just want my ack then:

Acked-by: David S. Miller <davem@davemloft.net>

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

* Re: [PATCH v5 7/7] sparc64: mm/gup: add gup trace points
  2016-01-13 20:21     ` David Miller
@ 2016-01-13 20:44       ` Steven Rostedt
  0 siblings, 0 replies; 19+ messages in thread
From: Steven Rostedt @ 2016-01-13 20:44 UTC (permalink / raw)
  To: David Miller
  Cc: yang.shi, akpm, mingo, linux-kernel, linux-mm, linaro-kernel, sparclinux

On Wed, 13 Jan 2016 15:21:38 -0500 (EST)
David Miller <davem@davemloft.net> wrote:

> From: "Shi, Yang" <yang.shi@linaro.org>
> Date: Wed, 13 Jan 2016 10:13:08 -0800
> 
> > Any comment on this one? The tracing part review has been done.  
> 
> I thought this was going to simply be submitted upstream via
> another tree.
> 
> If you just want my ack then:
> 
> Acked-by: David S. Miller <davem@davemloft.net>

Yep, that's what I wanted. Thanks!

-- Steve

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

* Re: [PATCH v5 5/7] s390: mm/gup: add gup trace points
  2016-01-13 18:12   ` Shi, Yang
@ 2016-01-14  7:45     ` Heiko Carstens
  0 siblings, 0 replies; 19+ messages in thread
From: Heiko Carstens @ 2016-01-14  7:45 UTC (permalink / raw)
  To: Shi, Yang
  Cc: akpm, rostedt, mingo, linux-kernel, linux-mm, linaro-kernel,
	Martin Schwidefsky, linux-s390

On Wed, Jan 13, 2016 at 10:12:25AM -0800, Shi, Yang wrote:
> Hi folks,
> 
> Any comment for this one? The tracing part review has been done.
> 
> Thanks,
> Yang

If the rest of this series has been acked by the appropriate maintainers
please feel free to add an

Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>

for this specific patch.

> 
> On 12/9/2015 1:22 PM, Yang Shi wrote:
> >Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
> >Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
> >Cc: linux-s390@vger.kernel.org
> >Signed-off-by: Yang Shi <yang.shi@linaro.org>
> >---
> >  arch/s390/mm/gup.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> >diff --git a/arch/s390/mm/gup.c b/arch/s390/mm/gup.c
> >index 12bbf0e..a1d5db7 100644
> >--- a/arch/s390/mm/gup.c
> >+++ b/arch/s390/mm/gup.c
> >@@ -12,6 +12,8 @@
> >  #include <linux/rwsem.h>
> >  #include <asm/pgtable.h>
> >
> >+#include <trace/events/gup.h>
> >+
> >  /*
> >   * The performance critical leaf functions are made noinline otherwise gcc
> >   * inlines everything into a single function which results in too much
> >@@ -188,6 +190,9 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
> >  	end = start + len;
> >  	if ((end <= start) || (end > TASK_SIZE))
> >  		return 0;
> >+
> >+	trace_gup_get_user_pages_fast(start, nr_pages);
> >+
> >  	/*
> >  	 * local_irq_save() doesn't prevent pagetable teardown, but does
> >  	 * prevent the pagetables from being freed on s390.
> >
> 

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

* Re: [RFC V5] Add gup trace points support
  2016-01-13 18:14     ` Shi, Yang
@ 2016-01-14 14:40       ` Steven Rostedt
  2016-02-08 23:15         ` Shi, Yang
  0 siblings, 1 reply; 19+ messages in thread
From: Steven Rostedt @ 2016-01-14 14:40 UTC (permalink / raw)
  To: akpm; +Cc: Shi, Yang, mingo, linux-kernel, linux-mm, linaro-kernel


Andrew,

Do you want to pull in this series? You can add my Acked-by to the whole
set.

-- Steve


On Wed, 13 Jan 2016 10:14:24 -0800
"Shi, Yang" <yang.shi@linaro.org> wrote:

> On 1/12/2016 12:10 PM, Steven Rostedt wrote:
> > On Tue, 12 Jan 2016 12:00:54 -0800
> > "Shi, Yang" <yang.shi@linaro.org> wrote:
> >  
> >> Hi Steven,
> >>
> >> Any more comments on this series? How should I proceed it?
> >>  
> >
> > The tracing part looks fine to me. Now you just need to get the arch
> > maintainers to ack each of the arch patches, and I can pull them in for
> > 4.6. Too late for 4.5. Probably need Andrew Morton's ack for the
> > mm/gup.c patch.  
> 
> Thanks Steven. Already sent email to x86, s390 and sparc maintainers. 
> Ralf already acked the MIPS part since v1.
> 
> Regards,
> Yang
> 
> >
> > -- Steve
> >  

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

* Re: [RFC V5] Add gup trace points support
  2016-01-14 14:40       ` Steven Rostedt
@ 2016-02-08 23:15         ` Shi, Yang
  0 siblings, 0 replies; 19+ messages in thread
From: Shi, Yang @ 2016-02-08 23:15 UTC (permalink / raw)
  To: Steven Rostedt, akpm; +Cc: mingo, linux-kernel, linux-mm, linaro-kernel

Hi Andrew,

This series already got acked from Steven and arch maintainers except 
for x86. How should I proceed? Any comment is appreciated.

Thanks,
Yang


On 1/14/2016 6:40 AM, Steven Rostedt wrote:
>
> Andrew,
>
> Do you want to pull in this series? You can add my Acked-by to the whole
> set.
>
> -- Steve
>
>
> On Wed, 13 Jan 2016 10:14:24 -0800
> "Shi, Yang" <yang.shi@linaro.org> wrote:
>
>> On 1/12/2016 12:10 PM, Steven Rostedt wrote:
>>> On Tue, 12 Jan 2016 12:00:54 -0800
>>> "Shi, Yang" <yang.shi@linaro.org> wrote:
>>>
>>>> Hi Steven,
>>>>
>>>> Any more comments on this series? How should I proceed it?
>>>>
>>>
>>> The tracing part looks fine to me. Now you just need to get the arch
>>> maintainers to ack each of the arch patches, and I can pull them in for
>>> 4.6. Too late for 4.5. Probably need Andrew Morton's ack for the
>>> mm/gup.c patch.
>>
>> Thanks Steven. Already sent email to x86, s390 and sparc maintainers.
>> Ralf already acked the MIPS part since v1.
>>
>> Regards,
>> Yang
>>
>>>
>>> -- Steve
>>>
>

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

end of thread, other threads:[~2016-02-08 23:15 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-09 21:22 [RFC V5] Add gup trace points support Yang Shi
2015-12-09 21:22 ` [PATCH v5 1/7] trace/events: Add gup trace events Yang Shi
2015-12-09 21:22 ` [PATCH v5 2/7] mm/gup: add gup trace points Yang Shi
2015-12-09 21:22 ` [PATCH v5 3/7] x86: " Yang Shi
2016-01-13 18:11   ` Shi, Yang
2015-12-09 21:22 ` [PATCH v5 4/7] mips: " Yang Shi
2015-12-09 21:22 ` [PATCH v5 5/7] s390: " Yang Shi
2016-01-13 18:12   ` Shi, Yang
2016-01-14  7:45     ` Heiko Carstens
2015-12-09 21:22 ` [PATCH v5 6/7] sh: " Yang Shi
2015-12-09 21:22 ` [PATCH v5 7/7] sparc64: " Yang Shi
2016-01-13 18:13   ` Shi, Yang
2016-01-13 20:21     ` David Miller
2016-01-13 20:44       ` Steven Rostedt
2016-01-12 20:00 ` [RFC V5] Add gup trace points support Shi, Yang
2016-01-12 20:10   ` Steven Rostedt
2016-01-13 18:14     ` Shi, Yang
2016-01-14 14:40       ` Steven Rostedt
2016-02-08 23:15         ` Shi, Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).