lkml.org 
[lkml]   [2019]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH] trace/page_ref: print out the page migratetype name
    On Wed, 27 Mar 2019 13:09:37 +0800
    Huang Shijie <sjhuang@iluvatar.ai> wrote:

    > Print out the page migratetype name which is more readable.

    Except that it breaks perf and trace-cmd, as they wont know what a
    migratetype_names array contains.

    See how writeback does it. Which would be something like this for you.

    /* enums need to be exported to user space */
    #undef EM
    #undef EMe
    #undef EM_CMA
    #undef EM_ISOLATE
    #define EM(a) TRACE_DEFINE_ENUM(MIGRATE_##a);
    #define EMe(a) TRACE_DEFINE_ENUM(MIGRATE_##a);

    #ifdef CONFIG_CMA
    # define EM_CMA TRACE_DEFINE_ENUM(MIGRATE_CMA);
    #else
    # define EM_CMA
    #endif

    #ifdef CONFIG_MEMORY_ISOLATION
    # define EM_ISOLATE TRACE_DEFINE_ENUM(MIGRATE_ISOLATION);
    #else
    # define EM_ISOLATE
    #endif

    #define MIGRATE_ENUM_TYPES \
    EM(UNMOVABLE) \
    EM(MOVABLE) \
    EM(RECLAIMABLE) \
    EM(PCPTYPES) \
    EM(HIGHATOMIC) \
    EM_CMA \
    EM_ISOLATE \
    EMe(TYPES)

    MIGRATE_ENUM_TYPES

    #undef EM
    #undef EMe
    #undef EM_CMA
    #undef EM_ISOLATE
    #define EM(a) { MIGRATE_##a, #a },
    #define EMe(a) { MIGRATE_##a, #a }

    #ifdef CONFIG_CMA
    # define EM_CMA { MIGRATE_CMA, "CMA" },
    #else
    # define EM_CMA
    #endif

    #ifdef CONFIG_MEMORY_ISOLATION
    # define EM_ISOLATE { MIGRATE_ISOLATION, "ISOLATION" }
    #else
    # define EM_ISOLATE
    #endif

    >
    > Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
    > ---
    > include/trace/events/page_ref.h | 10 ++++++----
    > 1 file changed, 6 insertions(+), 4 deletions(-)
    >
    > diff --git a/include/trace/events/page_ref.h b/include/trace/events/page_ref.h
    > index 5d2ea93956ce..94df979c2d6b 100644
    > --- a/include/trace/events/page_ref.h
    > +++ b/include/trace/events/page_ref.h
    > @@ -36,11 +36,12 @@ DECLARE_EVENT_CLASS(page_ref_mod_template,
    > __entry->val = v;
    > ),
    >
    > - TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d",
    > + TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%s val=%d",
    > __entry->pfn,
    > show_page_flags(__entry->flags & ((1UL << NR_PAGEFLAGS) - 1)),
    > __entry->count,
    > - __entry->mapcount, __entry->mapping, __entry->mt,
    > + __entry->mapcount, __entry->mapping,
    > + migratetype_names[__entry->mt],

    Then here you add:

    print_symbolic(__entry->mt, MIGRATE_ENUM_TYPES),

    > __entry->val)
    > );
    >
    > @@ -86,11 +87,12 @@ DECLARE_EVENT_CLASS(page_ref_mod_and_test_template,
    > __entry->ret = ret;
    > ),
    >
    > - TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d ret=%d",
    > + TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%s val=%d ret=%d",
    > __entry->pfn,
    > show_page_flags(__entry->flags & ((1UL << NR_PAGEFLAGS) - 1)),
    > __entry->count,
    > - __entry->mapcount, __entry->mapping, __entry->mt,
    > + __entry->mapcount, __entry->mapping,
    > + migratetype_names[__entry->mt],
    > __entry->val, __entry->ret)
    > );
    >

    \
     
     \ /
      Last update: 2019-03-27 14:24    [W:2.509 / U:0.632 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site