diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2025-02-13 10:08:16 +0100 |
---|---|---|
committer | Namhyung Kim <namhyung@kernel.org> | 2025-02-18 14:04:31 -0800 |
commit | 216f8a970ca4a0369fd0ac707b1c405dec9512a8 (patch) | |
tree | 3d9cbbc324611f48475cbf6d256f570c613f9ac2 | |
parent | 7ae1972e748863b0aa04983caf847d4dd5b7e136 (diff) |
perf report: Switch filtered from u8 to u16
We already have all u8 bits taken, adding one more filter leads to unpleasant
failure mode, where code compiles w/o warnings, but the last filters silently
don't work. Add a typedef and switch to u16.
Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Link: https://lore.kernel.org/r/32b4ce1731126c88a2d9e191dc87e39ae4651cb7.1739437531.git.dvyukov@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
-rw-r--r-- | tools/perf/util/addr_location.h | 2 | ||||
-rw-r--r-- | tools/perf/util/hist.c | 2 | ||||
-rw-r--r-- | tools/perf/util/hist.h | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/tools/perf/util/addr_location.h b/tools/perf/util/addr_location.h index 36aaa45445f2..5cc1ba6c0523 100644 --- a/tools/perf/util/addr_location.h +++ b/tools/perf/util/addr_location.h @@ -17,8 +17,8 @@ struct addr_location { const char *srcline; u64 addr; char level; - u8 filtered; u8 cpumode; + u16 filtered; s32 cpu; s32 socket; /* Same as machine.parallelism but within [1, nr_cpus]. */ diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index cafd69356818..6b8f8da8d3b6 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -585,7 +585,7 @@ static struct hist_entry *hist_entry__new(struct hist_entry *template, return he; } -static u8 symbol__parent_filter(const struct symbol *parent) +static filter_mask_t symbol__parent_filter(const struct symbol *parent) { if (symbol_conf.exclude_other && parent == NULL) return 1 << HIST_FILTER__PARENT; diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h index a6e662d77dc2..4035106a7408 100644 --- a/tools/perf/util/hist.h +++ b/tools/perf/util/hist.h @@ -33,6 +33,8 @@ enum hist_filter { HIST_FILTER__C2C, }; +typedef u16 filter_mask_t; + enum hist_column { HISTC_SYMBOL, HISTC_TIME, @@ -244,7 +246,7 @@ struct hist_entry { bool leaf; char level; - u8 filtered; + filter_mask_t filtered; u16 callchain_size; union { |