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>
This commit is contained in:
Dmitry Vyukov 2025-02-13 10:08:16 +01:00 committed by Namhyung Kim
parent 7ae1972e74
commit 216f8a970c
3 changed files with 5 additions and 3 deletions

View File

@ -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]. */

View File

@ -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;

View File

@ -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 {