mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-14 10:36:49 +07:00
perf hists: Save the callchain_size in struct hist_entry
So that we can figure out the real size of the struct and also be able to tell if callchains may be present in this histogram entry. Since we can't always guarantee that from hist_entry->hists we can use hists_to_evsel, to then look at evsel->attr.sample_type for PERF_SAMPLE_CALLCHAIN, like with the 'perf c2c' tool, that uses plain 'struct hists' instances, we need another way of deciding if a specific hist_entry instance has callchains associated with it, i.e. if its hist_entry->callchain[0] has space allocated for. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jin Yao <yao.jin@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: https://lkml.kernel.org/n/tip-ptvndealxs1k7myluvu9flnq@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
2696ec4566
commit
41477acf09
@ -370,9 +370,11 @@ void hists__delete_entries(struct hists *hists)
|
||||
|
||||
static int hist_entry__init(struct hist_entry *he,
|
||||
struct hist_entry *template,
|
||||
bool sample_self)
|
||||
bool sample_self,
|
||||
size_t callchain_size)
|
||||
{
|
||||
*he = *template;
|
||||
he->callchain_size = callchain_size;
|
||||
|
||||
if (symbol_conf.cumulate_callchain) {
|
||||
he->stat_acc = malloc(sizeof(he->stat));
|
||||
@ -473,7 +475,7 @@ static struct hist_entry *hist_entry__new(struct hist_entry *template,
|
||||
|
||||
he = ops->new(callchain_size);
|
||||
if (he) {
|
||||
err = hist_entry__init(he, template, sample_self);
|
||||
err = hist_entry__init(he, template, sample_self, callchain_size);
|
||||
if (err) {
|
||||
ops->free(he);
|
||||
he = NULL;
|
||||
|
@ -112,6 +112,8 @@ struct hist_entry {
|
||||
|
||||
char level;
|
||||
u8 filtered;
|
||||
|
||||
u16 callchain_size;
|
||||
union {
|
||||
/*
|
||||
* Since perf diff only supports the stdio output, TUI
|
||||
|
Loading…
Reference in New Issue
Block a user