Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1265403 > unrolled thread
| Started by | Joonsoo Kim <js1304@gmail.com> |
|---|---|
| First post | 2015-11-09 08:30 +0100 |
| Last post | 2015-11-10 17:10 +0100 |
| Articles | 4 — 4 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 2/3] mm/cma: add new tracepoint, test_pages_isolated Joonsoo Kim <js1304@gmail.com> - 2015-11-09 08:30 +0100
Re: [PATCH 2/3] mm/cma: add new tracepoint, test_pages_isolated David Rientjes <rientjes@google.com> - 2015-11-10 00:00 +0100
Re: [PATCH 2/3] mm/cma: add new tracepoint, test_pages_isolated Joonsoo Kim <iamjoonsoo.kim@lge.com> - 2015-11-10 01:30 +0100
Re: [PATCH 2/3] mm/cma: add new tracepoint, test_pages_isolated Michal Nazarewicz <mina86@mina86.com> - 2015-11-10 17:10 +0100
| From | Joonsoo Kim <js1304@gmail.com> |
|---|---|
| Date | 2015-11-09 08:30 +0100 |
| Subject | [PATCH 2/3] mm/cma: add new tracepoint, test_pages_isolated |
| Message-ID | <qsP3Q-3kT-9@gated-at.bofh.it> |
cma allocation should be guranteeded to succeed, but, sometimes,
it could be failed in current implementation. To track down
the problem, we need to know which page is problematic and
this new tracepoint will report it.
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
---
include/trace/events/cma.h | 26 ++++++++++++++++++++++++++
mm/page_isolation.c | 5 +++++
2 files changed, 31 insertions(+)
diff --git a/include/trace/events/cma.h b/include/trace/events/cma.h
index d7cd961..82281b0 100644
--- a/include/trace/events/cma.h
+++ b/include/trace/events/cma.h
@@ -60,6 +60,32 @@ TRACE_EVENT(cma_release,
__entry->count)
);
+TRACE_EVENT(test_pages_isolated,
+
+ TP_PROTO(
+ unsigned long start_pfn,
+ unsigned long end_pfn,
+ unsigned long fin_pfn),
+
+ TP_ARGS(start_pfn, end_pfn, fin_pfn),
+
+ TP_STRUCT__entry(
+ __field(unsigned long, start_pfn)
+ __field(unsigned long, end_pfn)
+ __field(unsigned long, fin_pfn)
+ ),
+
+ TP_fast_assign(
+ __entry->start_pfn = start_pfn;
+ __entry->end_pfn = end_pfn;
+ __entry->fin_pfn = fin_pfn;
+ ),
+
+ TP_printk("start_pfn=0x%lx end_pfn=0x%lx fin_pfn=0x%lx ret=%s",
+ __entry->start_pfn, __entry->end_pfn, __entry->fin_pfn,
+ __entry->end_pfn == __entry->fin_pfn ? "success" : "fail")
+);
+
#endif /* _TRACE_CMA_H */
/* This part must be outside protection */
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index 6f5ae96..bda0fea 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -7,6 +7,8 @@
#include <linux/pageblock-flags.h>
#include <linux/memory.h>
#include <linux/hugetlb.h>
+#include <trace/events/cma.h>
+
#include "internal.h"
static int set_migratetype_isolate(struct page *page,
@@ -268,6 +270,9 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
skip_hwpoisoned_pages);
spin_unlock_irqrestore(&zone->lock, flags);
+#ifdef CONFIG_CMA
+ trace_test_pages_isolated(start_pfn, end_pfn, pfn);
+#endif
return (pfn < end_pfn) ? -EBUSY : 0;
}
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | David Rientjes <rientjes@google.com> |
|---|---|
| Date | 2015-11-10 00:00 +0100 |
| Message-ID | <qt3zQ-4U7-9@gated-at.bofh.it> |
| In reply to | #1265403 |
On Mon, 9 Nov 2015, Joonsoo Kim wrote:
> diff --git a/include/trace/events/cma.h b/include/trace/events/cma.h
> index d7cd961..82281b0 100644
> --- a/include/trace/events/cma.h
> +++ b/include/trace/events/cma.h
> @@ -60,6 +60,32 @@ TRACE_EVENT(cma_release,
> __entry->count)
> );
>
> +TRACE_EVENT(test_pages_isolated,
> +
> + TP_PROTO(
> + unsigned long start_pfn,
> + unsigned long end_pfn,
> + unsigned long fin_pfn),
> +
> + TP_ARGS(start_pfn, end_pfn, fin_pfn),
> +
> + TP_STRUCT__entry(
> + __field(unsigned long, start_pfn)
> + __field(unsigned long, end_pfn)
> + __field(unsigned long, fin_pfn)
> + ),
> +
> + TP_fast_assign(
> + __entry->start_pfn = start_pfn;
> + __entry->end_pfn = end_pfn;
> + __entry->fin_pfn = fin_pfn;
> + ),
> +
> + TP_printk("start_pfn=0x%lx end_pfn=0x%lx fin_pfn=0x%lx ret=%s",
> + __entry->start_pfn, __entry->end_pfn, __entry->fin_pfn,
> + __entry->end_pfn == __entry->fin_pfn ? "success" : "fail")
> +);
> +
> #endif /* _TRACE_CMA_H */
>
> /* This part must be outside protection */
> diff --git a/mm/page_isolation.c b/mm/page_isolation.c
> index 6f5ae96..bda0fea 100644
> --- a/mm/page_isolation.c
> +++ b/mm/page_isolation.c
> @@ -7,6 +7,8 @@
> #include <linux/pageblock-flags.h>
> #include <linux/memory.h>
> #include <linux/hugetlb.h>
> +#include <trace/events/cma.h>
> +
> #include "internal.h"
>
> static int set_migratetype_isolate(struct page *page,
> @@ -268,6 +270,9 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
> skip_hwpoisoned_pages);
> spin_unlock_irqrestore(&zone->lock, flags);
>
> +#ifdef CONFIG_CMA
> + trace_test_pages_isolated(start_pfn, end_pfn, pfn);
> +#endif
> return (pfn < end_pfn) ? -EBUSY : 0;
> }
>
This is also used for memory offlining, so could we generalize the
tracepoint to CONFIG_CMA || CONFIG_MEMORY_HOTREMOVE?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Joonsoo Kim <iamjoonsoo.kim@lge.com> |
|---|---|
| Date | 2015-11-10 01:30 +0100 |
| Message-ID | <qt4YX-65g-31@gated-at.bofh.it> |
| In reply to | #1266063 |
On Mon, Nov 09, 2015 at 02:59:39PM -0800, David Rientjes wrote:
> On Mon, 9 Nov 2015, Joonsoo Kim wrote:
>
> > diff --git a/include/trace/events/cma.h b/include/trace/events/cma.h
> > index d7cd961..82281b0 100644
> > --- a/include/trace/events/cma.h
> > +++ b/include/trace/events/cma.h
> > @@ -60,6 +60,32 @@ TRACE_EVENT(cma_release,
> > __entry->count)
> > );
> >
> > +TRACE_EVENT(test_pages_isolated,
> > +
> > + TP_PROTO(
> > + unsigned long start_pfn,
> > + unsigned long end_pfn,
> > + unsigned long fin_pfn),
> > +
> > + TP_ARGS(start_pfn, end_pfn, fin_pfn),
> > +
> > + TP_STRUCT__entry(
> > + __field(unsigned long, start_pfn)
> > + __field(unsigned long, end_pfn)
> > + __field(unsigned long, fin_pfn)
> > + ),
> > +
> > + TP_fast_assign(
> > + __entry->start_pfn = start_pfn;
> > + __entry->end_pfn = end_pfn;
> > + __entry->fin_pfn = fin_pfn;
> > + ),
> > +
> > + TP_printk("start_pfn=0x%lx end_pfn=0x%lx fin_pfn=0x%lx ret=%s",
> > + __entry->start_pfn, __entry->end_pfn, __entry->fin_pfn,
> > + __entry->end_pfn == __entry->fin_pfn ? "success" : "fail")
> > +);
> > +
> > #endif /* _TRACE_CMA_H */
> >
> > /* This part must be outside protection */
> > diff --git a/mm/page_isolation.c b/mm/page_isolation.c
> > index 6f5ae96..bda0fea 100644
> > --- a/mm/page_isolation.c
> > +++ b/mm/page_isolation.c
> > @@ -7,6 +7,8 @@
> > #include <linux/pageblock-flags.h>
> > #include <linux/memory.h>
> > #include <linux/hugetlb.h>
> > +#include <trace/events/cma.h>
> > +
> > #include "internal.h"
> >
> > static int set_migratetype_isolate(struct page *page,
> > @@ -268,6 +270,9 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
> > skip_hwpoisoned_pages);
> > spin_unlock_irqrestore(&zone->lock, flags);
> >
> > +#ifdef CONFIG_CMA
> > + trace_test_pages_isolated(start_pfn, end_pfn, pfn);
> > +#endif
> > return (pfn < end_pfn) ? -EBUSY : 0;
> > }
> >
>
> This is also used for memory offlining, so could we generalize the
> tracepoint to CONFIG_CMA || CONFIG_MEMORY_HOTREMOVE?
Okay. I will make it enabled on CONFIG_MEMORY_ISOLATION so that
CONFIG_CMA || CONFIG_MEMORY_HOTREMOVE || CONFIG_MEMORY_FAILURE can
get benefit from it.
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Michal Nazarewicz <mina86@mina86.com> |
|---|---|
| Date | 2015-11-10 17:10 +0100 |
| Message-ID | <qtjEE-7hv-39@gated-at.bofh.it> |
| In reply to | #1265403 |
On Mon, Nov 09 2015, Joonsoo Kim wrote: > cma allocation should be guranteeded to succeed, but, sometimes, > it could be failed in current implementation. To track down > the problem, we need to know which page is problematic and > this new tracepoint will report it. > > Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> I’m not really familiar with tracing framework but other then that: Acked-by: Michal Nazarewicz <mina86@mina86.com> > --- > include/trace/events/cma.h | 26 ++++++++++++++++++++++++++ > mm/page_isolation.c | 5 +++++ > 2 files changed, 31 insertions(+) -- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, ミハウ “mina86” ナザレヴイツ (o o) ooo +--<mpn@google.com>--<xmpp:mina86@jabber.org>-----ooO--(_)--Ooo-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web