diff options
author | Zhengjun Xing <zhengjun.xing@linux.intel.com> | 2019-10-18 09:20:34 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-11-10 11:27:28 +0100 |
commit | fa18f803d1f73851f89586a1b2e6469d6d7adbc1 (patch) | |
tree | 3b18971d2f1a62628e0cbd3e6a95a132b12d0664 /kernel | |
parent | 63571a1f375e2b45abfc104b5bea32f05fb35075 (diff) | |
download | linux-stable-fa18f803d1f73851f89586a1b2e6469d6d7adbc1.tar.gz linux-stable-fa18f803d1f73851f89586a1b2e6469d6d7adbc1.tar.bz2 linux-stable-fa18f803d1f73851f89586a1b2e6469d6d7adbc1.zip |
tracing: Fix "gfp_t" format for synthetic events
[ 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>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/trace/trace_events_hist.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c index bdf104596d12..dac518977e7d 100644 --- a/kernel/trace/trace_events_hist.c +++ b/kernel/trace/trace_events_hist.c @@ -448,6 +448,8 @@ static bool synth_field_signed(char *type) { if (strncmp(type, "u", 1) == 0) return false; + if (strcmp(type, "gfp_t") == 0) + return false; return true; } |