perf hists: Stop using 'self' for struct hists
Stop using this python/OOP convention, doesn't really helps. Will do more from time to time till we get it cleaned up in all of /perf. Suggested-by: Thomas Gleixner <tglx@linutronix.de> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-91i56jwnzq9edhsj9y2y9l3b@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
9d01402023
commit
42b28ac071
1 changed files with 78 additions and 78 deletions
|
@ -18,56 +18,56 @@ struct callchain_param callchain_param = {
|
||||||
.order = ORDER_CALLEE
|
.order = ORDER_CALLEE
|
||||||
};
|
};
|
||||||
|
|
||||||
u16 hists__col_len(struct hists *self, enum hist_column col)
|
u16 hists__col_len(struct hists *hists, enum hist_column col)
|
||||||
{
|
{
|
||||||
return self->col_len[col];
|
return hists->col_len[col];
|
||||||
}
|
}
|
||||||
|
|
||||||
void hists__set_col_len(struct hists *self, enum hist_column col, u16 len)
|
void hists__set_col_len(struct hists *hists, enum hist_column col, u16 len)
|
||||||
{
|
{
|
||||||
self->col_len[col] = len;
|
hists->col_len[col] = len;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hists__new_col_len(struct hists *self, enum hist_column col, u16 len)
|
bool hists__new_col_len(struct hists *hists, enum hist_column col, u16 len)
|
||||||
{
|
{
|
||||||
if (len > hists__col_len(self, col)) {
|
if (len > hists__col_len(hists, col)) {
|
||||||
hists__set_col_len(self, col, len);
|
hists__set_col_len(hists, col, len);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hists__reset_col_len(struct hists *self)
|
static void hists__reset_col_len(struct hists *hists)
|
||||||
{
|
{
|
||||||
enum hist_column col;
|
enum hist_column col;
|
||||||
|
|
||||||
for (col = 0; col < HISTC_NR_COLS; ++col)
|
for (col = 0; col < HISTC_NR_COLS; ++col)
|
||||||
hists__set_col_len(self, col, 0);
|
hists__set_col_len(hists, col, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hists__calc_col_len(struct hists *self, struct hist_entry *h)
|
static void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
|
||||||
{
|
{
|
||||||
u16 len;
|
u16 len;
|
||||||
|
|
||||||
if (h->ms.sym)
|
if (h->ms.sym)
|
||||||
hists__new_col_len(self, HISTC_SYMBOL, h->ms.sym->namelen);
|
hists__new_col_len(hists, HISTC_SYMBOL, h->ms.sym->namelen);
|
||||||
else {
|
else {
|
||||||
const unsigned int unresolved_col_width = BITS_PER_LONG / 4;
|
const unsigned int unresolved_col_width = BITS_PER_LONG / 4;
|
||||||
|
|
||||||
if (hists__col_len(self, HISTC_DSO) < unresolved_col_width &&
|
if (hists__col_len(hists, HISTC_DSO) < unresolved_col_width &&
|
||||||
!symbol_conf.col_width_list_str && !symbol_conf.field_sep &&
|
!symbol_conf.col_width_list_str && !symbol_conf.field_sep &&
|
||||||
!symbol_conf.dso_list)
|
!symbol_conf.dso_list)
|
||||||
hists__set_col_len(self, HISTC_DSO,
|
hists__set_col_len(hists, HISTC_DSO,
|
||||||
unresolved_col_width);
|
unresolved_col_width);
|
||||||
}
|
}
|
||||||
|
|
||||||
len = thread__comm_len(h->thread);
|
len = thread__comm_len(h->thread);
|
||||||
if (hists__new_col_len(self, HISTC_COMM, len))
|
if (hists__new_col_len(hists, HISTC_COMM, len))
|
||||||
hists__set_col_len(self, HISTC_THREAD, len + 6);
|
hists__set_col_len(hists, HISTC_THREAD, len + 6);
|
||||||
|
|
||||||
if (h->ms.map) {
|
if (h->ms.map) {
|
||||||
len = dso__name_len(h->ms.map->dso);
|
len = dso__name_len(h->ms.map->dso);
|
||||||
hists__new_col_len(self, HISTC_DSO, len);
|
hists__new_col_len(hists, HISTC_DSO, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,11 +113,11 @@ static struct hist_entry *hist_entry__new(struct hist_entry *template)
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hists__inc_nr_entries(struct hists *self, struct hist_entry *h)
|
static void hists__inc_nr_entries(struct hists *hists, struct hist_entry *h)
|
||||||
{
|
{
|
||||||
if (!h->filtered) {
|
if (!h->filtered) {
|
||||||
hists__calc_col_len(self, h);
|
hists__calc_col_len(hists, h);
|
||||||
++self->nr_entries;
|
++hists->nr_entries;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,11 +128,11 @@ static u8 symbol__parent_filter(const struct symbol *parent)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct hist_entry *__hists__add_entry(struct hists *self,
|
struct hist_entry *__hists__add_entry(struct hists *hists,
|
||||||
struct addr_location *al,
|
struct addr_location *al,
|
||||||
struct symbol *sym_parent, u64 period)
|
struct symbol *sym_parent, u64 period)
|
||||||
{
|
{
|
||||||
struct rb_node **p = &self->entries.rb_node;
|
struct rb_node **p = &hists->entries.rb_node;
|
||||||
struct rb_node *parent = NULL;
|
struct rb_node *parent = NULL;
|
||||||
struct hist_entry *he;
|
struct hist_entry *he;
|
||||||
struct hist_entry entry = {
|
struct hist_entry entry = {
|
||||||
|
@ -172,8 +172,8 @@ struct hist_entry *__hists__add_entry(struct hists *self,
|
||||||
if (!he)
|
if (!he)
|
||||||
return NULL;
|
return NULL;
|
||||||
rb_link_node(&he->rb_node, parent, p);
|
rb_link_node(&he->rb_node, parent, p);
|
||||||
rb_insert_color(&he->rb_node, &self->entries);
|
rb_insert_color(&he->rb_node, &hists->entries);
|
||||||
hists__inc_nr_entries(self, he);
|
hists__inc_nr_entries(hists, he);
|
||||||
out:
|
out:
|
||||||
hist_entry__add_cpumode_period(he, al->cpumode, period);
|
hist_entry__add_cpumode_period(he, al->cpumode, period);
|
||||||
return he;
|
return he;
|
||||||
|
@ -222,7 +222,7 @@ void hist_entry__free(struct hist_entry *he)
|
||||||
* collapse the histogram
|
* collapse the histogram
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static bool hists__collapse_insert_entry(struct hists *self,
|
static bool hists__collapse_insert_entry(struct hists *hists,
|
||||||
struct rb_root *root,
|
struct rb_root *root,
|
||||||
struct hist_entry *he)
|
struct hist_entry *he)
|
||||||
{
|
{
|
||||||
|
@ -240,8 +240,8 @@ static bool hists__collapse_insert_entry(struct hists *self,
|
||||||
if (!cmp) {
|
if (!cmp) {
|
||||||
iter->period += he->period;
|
iter->period += he->period;
|
||||||
if (symbol_conf.use_callchain) {
|
if (symbol_conf.use_callchain) {
|
||||||
callchain_cursor_reset(&self->callchain_cursor);
|
callchain_cursor_reset(&hists->callchain_cursor);
|
||||||
callchain_merge(&self->callchain_cursor, iter->callchain,
|
callchain_merge(&hists->callchain_cursor, iter->callchain,
|
||||||
he->callchain);
|
he->callchain);
|
||||||
}
|
}
|
||||||
hist_entry__free(he);
|
hist_entry__free(he);
|
||||||
|
@ -259,7 +259,7 @@ static bool hists__collapse_insert_entry(struct hists *self,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void hists__collapse_resort(struct hists *self)
|
void hists__collapse_resort(struct hists *hists)
|
||||||
{
|
{
|
||||||
struct rb_root tmp;
|
struct rb_root tmp;
|
||||||
struct rb_node *next;
|
struct rb_node *next;
|
||||||
|
@ -269,20 +269,20 @@ void hists__collapse_resort(struct hists *self)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
tmp = RB_ROOT;
|
tmp = RB_ROOT;
|
||||||
next = rb_first(&self->entries);
|
next = rb_first(&hists->entries);
|
||||||
self->nr_entries = 0;
|
hists->nr_entries = 0;
|
||||||
hists__reset_col_len(self);
|
hists__reset_col_len(hists);
|
||||||
|
|
||||||
while (next) {
|
while (next) {
|
||||||
n = rb_entry(next, struct hist_entry, rb_node);
|
n = rb_entry(next, struct hist_entry, rb_node);
|
||||||
next = rb_next(&n->rb_node);
|
next = rb_next(&n->rb_node);
|
||||||
|
|
||||||
rb_erase(&n->rb_node, &self->entries);
|
rb_erase(&n->rb_node, &hists->entries);
|
||||||
if (hists__collapse_insert_entry(self, &tmp, n))
|
if (hists__collapse_insert_entry(hists, &tmp, n))
|
||||||
hists__inc_nr_entries(self, n);
|
hists__inc_nr_entries(hists, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
self->entries = tmp;
|
hists->entries = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -315,31 +315,31 @@ static void __hists__insert_output_entry(struct rb_root *entries,
|
||||||
rb_insert_color(&he->rb_node, entries);
|
rb_insert_color(&he->rb_node, entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hists__output_resort(struct hists *self)
|
void hists__output_resort(struct hists *hists)
|
||||||
{
|
{
|
||||||
struct rb_root tmp;
|
struct rb_root tmp;
|
||||||
struct rb_node *next;
|
struct rb_node *next;
|
||||||
struct hist_entry *n;
|
struct hist_entry *n;
|
||||||
u64 min_callchain_hits;
|
u64 min_callchain_hits;
|
||||||
|
|
||||||
min_callchain_hits = self->stats.total_period * (callchain_param.min_percent / 100);
|
min_callchain_hits = hists->stats.total_period * (callchain_param.min_percent / 100);
|
||||||
|
|
||||||
tmp = RB_ROOT;
|
tmp = RB_ROOT;
|
||||||
next = rb_first(&self->entries);
|
next = rb_first(&hists->entries);
|
||||||
|
|
||||||
self->nr_entries = 0;
|
hists->nr_entries = 0;
|
||||||
hists__reset_col_len(self);
|
hists__reset_col_len(hists);
|
||||||
|
|
||||||
while (next) {
|
while (next) {
|
||||||
n = rb_entry(next, struct hist_entry, rb_node);
|
n = rb_entry(next, struct hist_entry, rb_node);
|
||||||
next = rb_next(&n->rb_node);
|
next = rb_next(&n->rb_node);
|
||||||
|
|
||||||
rb_erase(&n->rb_node, &self->entries);
|
rb_erase(&n->rb_node, &hists->entries);
|
||||||
__hists__insert_output_entry(&tmp, n, min_callchain_hits);
|
__hists__insert_output_entry(&tmp, n, min_callchain_hits);
|
||||||
hists__inc_nr_entries(self, n);
|
hists__inc_nr_entries(hists, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
self->entries = tmp;
|
hists->entries = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t callchain__fprintf_left_margin(FILE *fp, int left_margin)
|
static size_t callchain__fprintf_left_margin(FILE *fp, int left_margin)
|
||||||
|
@ -738,7 +738,7 @@ static size_t hist_entry__fprintf_callchain(struct hist_entry *self,
|
||||||
left_margin);
|
left_margin);
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t hists__fprintf(struct hists *self, struct hists *pair,
|
size_t hists__fprintf(struct hists *hists, struct hists *pair,
|
||||||
bool show_displacement, FILE *fp)
|
bool show_displacement, FILE *fp)
|
||||||
{
|
{
|
||||||
struct sort_entry *se;
|
struct sort_entry *se;
|
||||||
|
@ -803,15 +803,15 @@ size_t hists__fprintf(struct hists *self, struct hists *pair,
|
||||||
width = strlen(se->se_header);
|
width = strlen(se->se_header);
|
||||||
if (symbol_conf.col_width_list_str) {
|
if (symbol_conf.col_width_list_str) {
|
||||||
if (col_width) {
|
if (col_width) {
|
||||||
hists__set_col_len(self, se->se_width_idx,
|
hists__set_col_len(hists, se->se_width_idx,
|
||||||
atoi(col_width));
|
atoi(col_width));
|
||||||
col_width = strchr(col_width, ',');
|
col_width = strchr(col_width, ',');
|
||||||
if (col_width)
|
if (col_width)
|
||||||
++col_width;
|
++col_width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!hists__new_col_len(self, se->se_width_idx, width))
|
if (!hists__new_col_len(hists, se->se_width_idx, width))
|
||||||
width = hists__col_len(self, se->se_width_idx);
|
width = hists__col_len(hists, se->se_width_idx);
|
||||||
fprintf(fp, " %*s", width, se->se_header);
|
fprintf(fp, " %*s", width, se->se_header);
|
||||||
}
|
}
|
||||||
fprintf(fp, "\n");
|
fprintf(fp, "\n");
|
||||||
|
@ -834,7 +834,7 @@ size_t hists__fprintf(struct hists *self, struct hists *pair,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
fprintf(fp, " ");
|
fprintf(fp, " ");
|
||||||
width = hists__col_len(self, se->se_width_idx);
|
width = hists__col_len(hists, se->se_width_idx);
|
||||||
if (width == 0)
|
if (width == 0)
|
||||||
width = strlen(se->se_header);
|
width = strlen(se->se_header);
|
||||||
for (i = 0; i < width; i++)
|
for (i = 0; i < width; i++)
|
||||||
|
@ -844,7 +844,7 @@ size_t hists__fprintf(struct hists *self, struct hists *pair,
|
||||||
fprintf(fp, "\n#\n");
|
fprintf(fp, "\n#\n");
|
||||||
|
|
||||||
print_entries:
|
print_entries:
|
||||||
for (nd = rb_first(&self->entries); nd; nd = rb_next(nd)) {
|
for (nd = rb_first(&hists->entries); nd; nd = rb_next(nd)) {
|
||||||
struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
|
struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
|
||||||
|
|
||||||
if (h->filtered)
|
if (h->filtered)
|
||||||
|
@ -858,12 +858,12 @@ print_entries:
|
||||||
displacement = 0;
|
displacement = 0;
|
||||||
++position;
|
++position;
|
||||||
}
|
}
|
||||||
ret += hist_entry__fprintf(h, self, pair, show_displacement,
|
ret += hist_entry__fprintf(h, hists, pair, show_displacement,
|
||||||
displacement, fp, self->stats.total_period);
|
displacement, fp, hists->stats.total_period);
|
||||||
|
|
||||||
if (symbol_conf.use_callchain)
|
if (symbol_conf.use_callchain)
|
||||||
ret += hist_entry__fprintf_callchain(h, self, fp,
|
ret += hist_entry__fprintf_callchain(h, hists, fp,
|
||||||
self->stats.total_period);
|
hists->stats.total_period);
|
||||||
if (h->ms.map == NULL && verbose > 1) {
|
if (h->ms.map == NULL && verbose > 1) {
|
||||||
__map_groups__fprintf_maps(&h->thread->mg,
|
__map_groups__fprintf_maps(&h->thread->mg,
|
||||||
MAP__FUNCTION, verbose, fp);
|
MAP__FUNCTION, verbose, fp);
|
||||||
|
@ -879,7 +879,7 @@ print_entries:
|
||||||
/*
|
/*
|
||||||
* See hists__fprintf to match the column widths
|
* See hists__fprintf to match the column widths
|
||||||
*/
|
*/
|
||||||
unsigned int hists__sort_list_width(struct hists *self)
|
unsigned int hists__sort_list_width(struct hists *hists)
|
||||||
{
|
{
|
||||||
struct sort_entry *se;
|
struct sort_entry *se;
|
||||||
int ret = 9; /* total % */
|
int ret = 9; /* total % */
|
||||||
|
@ -898,7 +898,7 @@ unsigned int hists__sort_list_width(struct hists *self)
|
||||||
|
|
||||||
list_for_each_entry(se, &hist_entry__sort_list, list)
|
list_for_each_entry(se, &hist_entry__sort_list, list)
|
||||||
if (!se->elide)
|
if (!se->elide)
|
||||||
ret += 2 + hists__col_len(self, se->se_width_idx);
|
ret += 2 + hists__col_len(hists, se->se_width_idx);
|
||||||
|
|
||||||
if (verbose) /* Addr + origin */
|
if (verbose) /* Addr + origin */
|
||||||
ret += 3 + BITS_PER_LONG / 4;
|
ret += 3 + BITS_PER_LONG / 4;
|
||||||
|
@ -906,32 +906,32 @@ unsigned int hists__sort_list_width(struct hists *self)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hists__remove_entry_filter(struct hists *self, struct hist_entry *h,
|
static void hists__remove_entry_filter(struct hists *hists, struct hist_entry *h,
|
||||||
enum hist_filter filter)
|
enum hist_filter filter)
|
||||||
{
|
{
|
||||||
h->filtered &= ~(1 << filter);
|
h->filtered &= ~(1 << filter);
|
||||||
if (h->filtered)
|
if (h->filtered)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
++self->nr_entries;
|
++hists->nr_entries;
|
||||||
if (h->ms.unfolded)
|
if (h->ms.unfolded)
|
||||||
self->nr_entries += h->nr_rows;
|
hists->nr_entries += h->nr_rows;
|
||||||
h->row_offset = 0;
|
h->row_offset = 0;
|
||||||
self->stats.total_period += h->period;
|
hists->stats.total_period += h->period;
|
||||||
self->stats.nr_events[PERF_RECORD_SAMPLE] += h->nr_events;
|
hists->stats.nr_events[PERF_RECORD_SAMPLE] += h->nr_events;
|
||||||
|
|
||||||
hists__calc_col_len(self, h);
|
hists__calc_col_len(hists, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hists__filter_by_dso(struct hists *self, const struct dso *dso)
|
void hists__filter_by_dso(struct hists *hists, const struct dso *dso)
|
||||||
{
|
{
|
||||||
struct rb_node *nd;
|
struct rb_node *nd;
|
||||||
|
|
||||||
self->nr_entries = self->stats.total_period = 0;
|
hists->nr_entries = hists->stats.total_period = 0;
|
||||||
self->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
|
hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
|
||||||
hists__reset_col_len(self);
|
hists__reset_col_len(hists);
|
||||||
|
|
||||||
for (nd = rb_first(&self->entries); nd; nd = rb_next(nd)) {
|
for (nd = rb_first(&hists->entries); nd; nd = rb_next(nd)) {
|
||||||
struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
|
struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
|
||||||
|
|
||||||
if (symbol_conf.exclude_other && !h->parent)
|
if (symbol_conf.exclude_other && !h->parent)
|
||||||
|
@ -942,19 +942,19 @@ void hists__filter_by_dso(struct hists *self, const struct dso *dso)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
hists__remove_entry_filter(self, h, HIST_FILTER__DSO);
|
hists__remove_entry_filter(hists, h, HIST_FILTER__DSO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void hists__filter_by_thread(struct hists *self, const struct thread *thread)
|
void hists__filter_by_thread(struct hists *hists, const struct thread *thread)
|
||||||
{
|
{
|
||||||
struct rb_node *nd;
|
struct rb_node *nd;
|
||||||
|
|
||||||
self->nr_entries = self->stats.total_period = 0;
|
hists->nr_entries = hists->stats.total_period = 0;
|
||||||
self->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
|
hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
|
||||||
hists__reset_col_len(self);
|
hists__reset_col_len(hists);
|
||||||
|
|
||||||
for (nd = rb_first(&self->entries); nd; nd = rb_next(nd)) {
|
for (nd = rb_first(&hists->entries); nd; nd = rb_next(nd)) {
|
||||||
struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
|
struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
|
||||||
|
|
||||||
if (thread != NULL && h->thread != thread) {
|
if (thread != NULL && h->thread != thread) {
|
||||||
|
@ -962,7 +962,7 @@ void hists__filter_by_thread(struct hists *self, const struct thread *thread)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
hists__remove_entry_filter(self, h, HIST_FILTER__THREAD);
|
hists__remove_entry_filter(hists, h, HIST_FILTER__THREAD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -976,13 +976,13 @@ int hist_entry__annotate(struct hist_entry *he, size_t privsize)
|
||||||
return symbol__annotate(he->ms.sym, he->ms.map, privsize);
|
return symbol__annotate(he->ms.sym, he->ms.map, privsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hists__inc_nr_events(struct hists *self, u32 type)
|
void hists__inc_nr_events(struct hists *hists, u32 type)
|
||||||
{
|
{
|
||||||
++self->stats.nr_events[0];
|
++hists->stats.nr_events[0];
|
||||||
++self->stats.nr_events[type];
|
++hists->stats.nr_events[type];
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t hists__fprintf_nr_events(struct hists *self, FILE *fp)
|
size_t hists__fprintf_nr_events(struct hists *hists, FILE *fp)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
size_t ret = 0;
|
size_t ret = 0;
|
||||||
|
@ -990,7 +990,7 @@ size_t hists__fprintf_nr_events(struct hists *self, FILE *fp)
|
||||||
for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) {
|
for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) {
|
||||||
const char *name;
|
const char *name;
|
||||||
|
|
||||||
if (self->stats.nr_events[i] == 0)
|
if (hists->stats.nr_events[i] == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
name = perf_event__name(i);
|
name = perf_event__name(i);
|
||||||
|
@ -998,7 +998,7 @@ size_t hists__fprintf_nr_events(struct hists *self, FILE *fp)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ret += fprintf(fp, "%16s events: %10d\n", name,
|
ret += fprintf(fp, "%16s events: %10d\n", name,
|
||||||
self->stats.nr_events[i]);
|
hists->stats.nr_events[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Reference in a new issue