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