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.akagunduz@xxxxxxxxx> > > Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> > > Acked-by: Rik van Riel <riel@xxxxxxxxxx> > > --- > > 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, 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>