lkml.org 
[lkml]   [2019]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.3 060/140] tracing: Fix "gfp_t" format for synthetic events
    Date
    From: Zhengjun Xing <zhengjun.xing@linux.intel.com>

    [ Upstream commit 9fa8c9c647be624e91b09ecffa7cd97ee0600b40 ]

    In the format of synthetic events, the "gfp_t" is shown as "signed:1",
    but in fact the "gfp_t" is "unsigned", should be shown as "signed:0".

    The issue can be reproduced by the following commands:

    echo 'memlatency u64 lat; unsigned int order; gfp_t gfp_flags; int migratetype' > /sys/kernel/debug/tracing/synthetic_events
    cat /sys/kernel/debug/tracing/events/synthetic/memlatency/format

    name: memlatency
    ID: 2233
    format:
    field:unsigned short common_type; offset:0; size:2; signed:0;
    field:unsigned char common_flags; offset:2; size:1; signed:0;
    field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
    field:int common_pid; offset:4; size:4; signed:1;

    field:u64 lat; offset:8; size:8; signed:0;
    field:unsigned int order; offset:16; size:4; signed:0;
    field:gfp_t gfp_flags; offset:24; size:4; signed:1;
    field:int migratetype; offset:32; size:4; signed:1;

    print fmt: "lat=%llu, order=%u, gfp_flags=%x, migratetype=%d", REC->lat, REC->order, REC->gfp_flags, REC->migratetype

    Link: http://lkml.kernel.org/r/20191018012034.6404-1-zhengjun.xing@linux.intel.com

    Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Zhengjun Xing <zhengjun.xing@linux.intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    kernel/trace/trace_events_hist.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
    index dd310d3b58431..725b9b35f933c 100644
    --- a/kernel/trace/trace_events_hist.c
    +++ b/kernel/trace/trace_events_hist.c
    @@ -674,6 +674,8 @@ static bool synth_field_signed(char *type)
    {
    if (str_has_prefix(type, "u"))
    return false;
    + if (strcmp(type, "gfp_t") == 0)
    + return false;

    return true;
    }
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-11-08 20:07    [W:3.383 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site