Re: [PATCH 2/3] mm/cma: add new tracepoint, test_pages_isolated

From: Joonsoo Kim
Date: Mon Nov 09 2015 - 19:21:58 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/