On Tue, Jul 14, 2015 at 12:06:46AM +0300, Kirill A. Shutemov wrote: > On Mon, Jul 13, 2015 at 11:28:02PM +0300, Ebru Akagunduz wrote: > > Using static tracepoints, data of functions is recorded. > > It is good to automatize debugging without doing a lot > > of changes in the source code. > > > > This patch adds tracepoint for khugepaged_scan_pmd, > > collapse_huge_page and __collapse_huge_page_isolate. > > > > Signed-off-by: Ebru Akagunduz <ebru.akagun...@gmail.com> > > Acked-by: Kirill A. Shutemov <kirill.shute...@linux.intel.com> > > Acked-by: Rik van Riel <r...@redhat.com> > > --- > > Changes in v2: > > - Nothing changed > > > > Changes in v3: > > - Print page address instead of vm_start (Vlastimil Babka) > > - Define constants to specify exact tracepoint result (Vlastimil Babka) > > > > > > include/linux/mm.h | 18 ++++++ > > include/trace/events/huge_memory.h | 100 ++++++++++++++++++++++++++++++++ > > mm/huge_memory.c | 114 > > +++++++++++++++++++++++++++---------- > > 3 files changed, 203 insertions(+), 29 deletions(-) > > create mode 100644 include/trace/events/huge_memory.h > > > > diff --git a/include/linux/mm.h b/include/linux/mm.h > > index 7f47178..bf341c0 100644 > > --- a/include/linux/mm.h > > +++ b/include/linux/mm.h > > @@ -21,6 +21,24 @@ > > #include <linux/resource.h> > > #include <linux/page_ext.h> > > > > +#define MM_PMD_NULL 0 > > +#define MM_EXCEED_NONE_PTE 3 > > +#define MM_PTE_NON_PRESENT 4 > > +#define MM_PAGE_NULL 5 > > +#define MM_SCAN_ABORT 6 > > +#define MM_PAGE_COUNT 7 > > +#define MM_PAGE_LRU 8 > > +#define MM_ANY_PROCESS 0 > > +#define MM_VMA_NULL 2 > > +#define MM_VMA_CHECK 3 > > +#define MM_ADDRESS_RANGE 4 > > +#define MM_PAGE_LOCK 2 > > +#define MM_SWAP_CACHE_PAGE 6 > > +#define MM_ISOLATE_LRU_PAGE 7 > > +#define MM_ALLOC_HUGE_PAGE_FAIL 6 > > +#define MM_CGROUP_CHARGE_FAIL 7 > > +#define MM_COLLAPSE_ISOLATE_FAIL 5 > > + > > These magic numbers looks very random. What's logic behind? > I defined them to specify reason of all success and failure cases of the functions with tracepoint. Only 1 means success case.
All other values mean failure, I give consecutive numbers as far as possible, and tried to avoid conflicts of different functions those can be fail for same reason. kind regards, Ebru -- 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/