forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1019 B
44 lines
1019 B
// SPDX-License-Identifier: GPL-2.0 |
|
#include "util/pmu.h" |
|
#include "map_symbol.h" |
|
#include "mem-events.h" |
|
|
|
static char mem_loads_name[100]; |
|
static bool mem_loads_name__init; |
|
|
|
#define MEM_LOADS_AUX 0x8203 |
|
#define MEM_LOADS_AUX_NAME "{cpu/mem-loads-aux/,cpu/mem-loads,ldlat=%u/pp}:S" |
|
|
|
bool is_mem_loads_aux_event(struct evsel *leader) |
|
{ |
|
if (!pmu_have_event("cpu", "mem-loads-aux")) |
|
return false; |
|
|
|
return leader->core.attr.config == MEM_LOADS_AUX; |
|
} |
|
|
|
char *perf_mem_events__name(int i) |
|
{ |
|
struct perf_mem_event *e = perf_mem_events__ptr(i); |
|
|
|
if (!e) |
|
return NULL; |
|
|
|
if (i == PERF_MEM_EVENTS__LOAD) { |
|
if (mem_loads_name__init) |
|
return mem_loads_name; |
|
|
|
mem_loads_name__init = true; |
|
|
|
if (pmu_have_event("cpu", "mem-loads-aux")) { |
|
scnprintf(mem_loads_name, sizeof(mem_loads_name), |
|
MEM_LOADS_AUX_NAME, perf_mem_events__loads_ldlat); |
|
} else { |
|
scnprintf(mem_loads_name, sizeof(mem_loads_name), |
|
e->name, perf_mem_events__loads_ldlat); |
|
} |
|
return mem_loads_name; |
|
} |
|
|
|
return (char *)e->name; |
|
}
|
|
|