perf tools: Introduce hists__inc_nr_samples()
There're some duplicate code for counting number of samples. Add hists__inc_nr_samples() and reuse it. Suggested-by: Jiri Olsa <jolsa@kernel.org> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Link: http://lkml.kernel.org/r/1401335910-16832-2-git-send-email-namhyung@kernel.org Signed-off-by: Jiri Olsa <jolsa@kernel.org>
This commit is contained in:
parent
e450f90e8c
commit
1844dbcbe7
@ -70,7 +70,7 @@ static int perf_evsel__add_sample(struct perf_evsel *evsel,
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
ret = hist_entry__inc_addr_samples(he, evsel->idx, al->addr);
|
ret = hist_entry__inc_addr_samples(he, evsel->idx, al->addr);
|
||||||
hists__inc_nr_events(&evsel->hists, PERF_RECORD_SAMPLE);
|
hists__inc_nr_samples(&evsel->hists, true);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,9 +92,7 @@ static void report__inc_stats(struct report *rep, struct hist_entry *he)
|
|||||||
* counted in perf_session_deliver_event(). The dump_trace
|
* counted in perf_session_deliver_event(). The dump_trace
|
||||||
* requires this info is ready before going to the output tree.
|
* requires this info is ready before going to the output tree.
|
||||||
*/
|
*/
|
||||||
hists__inc_nr_events(he->hists, PERF_RECORD_SAMPLE);
|
hists__inc_nr_samples(he->hists, he->filtered);
|
||||||
if (!he->filtered)
|
|
||||||
he->hists->stats.nr_non_filtered_samples++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int report__add_mem_hist_entry(struct report *rep, struct addr_location *al,
|
static int report__add_mem_hist_entry(struct report *rep, struct addr_location *al,
|
||||||
|
@ -1428,7 +1428,7 @@ static int perf_sched__process_tracepoint_sample(struct perf_tool *tool __maybe_
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
evsel->hists.stats.total_period += sample->period;
|
evsel->hists.stats.total_period += sample->period;
|
||||||
hists__inc_nr_events(&evsel->hists, PERF_RECORD_SAMPLE);
|
hists__inc_nr_samples(&evsel->hists, true);
|
||||||
|
|
||||||
if (evsel->handler != NULL) {
|
if (evsel->handler != NULL) {
|
||||||
tracepoint_handler f = evsel->handler;
|
tracepoint_handler f = evsel->handler;
|
||||||
|
@ -252,10 +252,7 @@ static struct hist_entry *perf_evsel__add_hist_entry(struct perf_evsel *evsel,
|
|||||||
if (he == NULL)
|
if (he == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
hists__inc_nr_events(&evsel->hists, PERF_RECORD_SAMPLE);
|
hists__inc_nr_samples(&evsel->hists, he->filtered);
|
||||||
if (!he->filtered)
|
|
||||||
evsel->hists.stats.nr_non_filtered_samples++;
|
|
||||||
|
|
||||||
return he;
|
return he;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,9 +85,7 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
|
|||||||
fake_samples[i].map = al.map;
|
fake_samples[i].map = al.map;
|
||||||
fake_samples[i].sym = al.sym;
|
fake_samples[i].sym = al.sym;
|
||||||
|
|
||||||
hists__inc_nr_events(he->hists, PERF_RECORD_SAMPLE);
|
hists__inc_nr_samples(he->hists, he->filtered);
|
||||||
if (!he->filtered)
|
|
||||||
he->hists->stats.nr_non_filtered_samples++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -800,6 +800,13 @@ void hists__inc_nr_events(struct hists *hists, u32 type)
|
|||||||
events_stats__inc(&hists->stats, type);
|
events_stats__inc(&hists->stats, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hists__inc_nr_samples(struct hists *hists, bool filtered)
|
||||||
|
{
|
||||||
|
events_stats__inc(&hists->stats, PERF_RECORD_SAMPLE);
|
||||||
|
if (!filtered)
|
||||||
|
hists->stats.nr_non_filtered_samples++;
|
||||||
|
}
|
||||||
|
|
||||||
static struct hist_entry *hists__add_dummy_entry(struct hists *hists,
|
static struct hist_entry *hists__add_dummy_entry(struct hists *hists,
|
||||||
struct hist_entry *pair)
|
struct hist_entry *pair)
|
||||||
{
|
{
|
||||||
|
@ -119,6 +119,7 @@ u64 hists__total_period(struct hists *hists);
|
|||||||
void hists__reset_stats(struct hists *hists);
|
void hists__reset_stats(struct hists *hists);
|
||||||
void hists__inc_stats(struct hists *hists, struct hist_entry *h);
|
void hists__inc_stats(struct hists *hists, struct hist_entry *h);
|
||||||
void hists__inc_nr_events(struct hists *hists, u32 type);
|
void hists__inc_nr_events(struct hists *hists, u32 type);
|
||||||
|
void hists__inc_nr_samples(struct hists *hists, bool filtered);
|
||||||
void events_stats__inc(struct events_stats *stats, u32 type);
|
void events_stats__inc(struct events_stats *stats, u32 type);
|
||||||
size_t events_stats__fprintf(struct events_stats *stats, FILE *fp);
|
size_t events_stats__fprintf(struct events_stats *stats, FILE *fp);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user