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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>