perf machine: Rename perf_event__preprocess_sample to machine__resolve

Since we only deal with fields in the passed struct perf_sample move
this method to struct machine, that is where the perf_sample fields
will be resolved to a struct addr_location, i.e. thread, map, symbol,
etc.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Hemant Kumar <hemant@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-a1ww2lbm2vbuqsv4p7ilubu9@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2016-03-22 18:39:09 -03:00
parent 473398a21d
commit bb3eb56622
13 changed files with 17 additions and 52 deletions

View File

@ -94,7 +94,7 @@ static int process_sample_event(struct perf_tool *tool,
struct addr_location al; struct addr_location al;
int ret = 0; int ret = 0;
if (perf_event__preprocess_sample(event, machine, &al, sample) < 0) { if (machine__resolve(machine, &al, sample) < 0) {
pr_warning("problem processing %d event, skipping it.\n", pr_warning("problem processing %d event, skipping it.\n",
event->header.type); event->header.type);
return -1; return -1;

View File

@ -330,7 +330,7 @@ static int diff__process_sample_event(struct perf_tool *tool __maybe_unused,
struct hists *hists = evsel__hists(evsel); struct hists *hists = evsel__hists(evsel);
int ret = -1; int ret = -1;
if (perf_event__preprocess_sample(event, machine, &al, sample) < 0) { if (machine__resolve(machine, &al, sample) < 0) {
pr_warning("problem processing %d event, skipping it.\n", pr_warning("problem processing %d event, skipping it.\n",
event->header.type); event->header.type);
return -1; return -1;

View File

@ -131,7 +131,7 @@ dump_raw_samples(struct perf_tool *tool,
struct addr_location al; struct addr_location al;
const char *fmt; const char *fmt;
if (perf_event__preprocess_sample(event, machine, &al, sample) < 0) { if (machine__resolve(machine, &al, sample) < 0) {
fprintf(stderr, "problem processing %d event, skipping it.\n", fprintf(stderr, "problem processing %d event, skipping it.\n",
event->header.type); event->header.type);
return -1; return -1;

View File

@ -154,7 +154,7 @@ static int process_sample_event(struct perf_tool *tool,
}; };
int ret = 0; int ret = 0;
if (perf_event__preprocess_sample(event, machine, &al, sample) < 0) { if (machine__resolve(machine, &al, sample) < 0) {
pr_debug("problem processing %d event, skipping it.\n", pr_debug("problem processing %d event, skipping it.\n",
event->header.type); event->header.type);
return -1; return -1;

View File

@ -904,7 +904,7 @@ static int process_sample_event(struct perf_tool *tool,
return 0; return 0;
} }
if (perf_event__preprocess_sample(event, machine, &al, sample) < 0) { if (machine__resolve(machine, &al, sample) < 0) {
pr_err("problem processing %d event, skipping it.\n", pr_err("problem processing %d event, skipping it.\n",
event->header.type); event->header.type);
return -1; return -1;

View File

@ -489,7 +489,7 @@ static const char *cat_backtrace(union perf_event *event,
if (!chain) if (!chain)
goto exit; goto exit;
if (perf_event__preprocess_sample(event, machine, &al, sample) < 0) { if (machine__resolve(machine, &al, sample) < 0) {
fprintf(stderr, "problem processing %d event, skipping it.\n", fprintf(stderr, "problem processing %d event, skipping it.\n",
event->header.type); event->header.type);
goto exit; goto exit;

View File

@ -728,7 +728,7 @@ static void perf_event__process_sample(struct perf_tool *tool,
if (event->header.misc & PERF_RECORD_MISC_EXACT_IP) if (event->header.misc & PERF_RECORD_MISC_EXACT_IP)
top->exact_samples++; top->exact_samples++;
if (perf_event__preprocess_sample(event, machine, &al, sample) < 0) if (machine__resolve(machine, &al, sample) < 0)
return; return;
if (!top->kptr_restrict_warned && if (!top->kptr_restrict_warned &&

View File

@ -81,11 +81,6 @@ static int add_hist_entries(struct hists *hists, struct machine *machine)
size_t i; size_t i;
for (i = 0; i < ARRAY_SIZE(fake_samples); i++) { for (i = 0; i < ARRAY_SIZE(fake_samples); i++) {
const union perf_event event = {
.header = {
.misc = PERF_RECORD_MISC_USER,
},
};
struct hist_entry_iter iter = { struct hist_entry_iter iter = {
.evsel = evsel, .evsel = evsel,
.sample = &sample, .sample = &sample,
@ -103,8 +98,7 @@ static int add_hist_entries(struct hists *hists, struct machine *machine)
sample.ip = fake_samples[i].ip; sample.ip = fake_samples[i].ip;
sample.callchain = (struct ip_callchain *)fake_callchains[i]; sample.callchain = (struct ip_callchain *)fake_callchains[i];
if (perf_event__preprocess_sample(&event, machine, &al, if (machine__resolve(machine, &al, &sample) < 0)
&sample) < 0)
goto out; goto out;
if (hist_entry_iter__add(&iter, &al, PERF_MAX_STACK_DEPTH, if (hist_entry_iter__add(&iter, &al, PERF_MAX_STACK_DEPTH,

View File

@ -58,11 +58,6 @@ static int add_hist_entries(struct perf_evlist *evlist,
*/ */
evlist__for_each(evlist, evsel) { evlist__for_each(evlist, evsel) {
for (i = 0; i < ARRAY_SIZE(fake_samples); i++) { for (i = 0; i < ARRAY_SIZE(fake_samples); i++) {
const union perf_event event = {
.header = {
.misc = PERF_RECORD_MISC_USER,
},
};
struct hist_entry_iter iter = { struct hist_entry_iter iter = {
.evsel = evsel, .evsel = evsel,
.sample = &sample, .sample = &sample,
@ -81,8 +76,7 @@ static int add_hist_entries(struct perf_evlist *evlist,
sample.tid = fake_samples[i].pid; sample.tid = fake_samples[i].pid;
sample.ip = fake_samples[i].ip; sample.ip = fake_samples[i].ip;
if (perf_event__preprocess_sample(&event, machine, &al, if (machine__resolve(machine, &al, &sample) < 0)
&sample) < 0)
goto out; goto out;
al.socket = fake_samples[i].socket; al.socket = fake_samples[i].socket;

View File

@ -76,18 +76,12 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
struct hists *hists = evsel__hists(evsel); struct hists *hists = evsel__hists(evsel);
for (k = 0; k < ARRAY_SIZE(fake_common_samples); k++) { for (k = 0; k < ARRAY_SIZE(fake_common_samples); k++) {
const union perf_event event = {
.header = {
.misc = PERF_RECORD_MISC_USER,
},
};
sample.cpumode = PERF_RECORD_MISC_USER; sample.cpumode = PERF_RECORD_MISC_USER;
sample.pid = fake_common_samples[k].pid; sample.pid = fake_common_samples[k].pid;
sample.tid = fake_common_samples[k].pid; sample.tid = fake_common_samples[k].pid;
sample.ip = fake_common_samples[k].ip; sample.ip = fake_common_samples[k].ip;
if (perf_event__preprocess_sample(&event, machine, &al,
&sample) < 0) if (machine__resolve(machine, &al, &sample) < 0)
goto out; goto out;
he = __hists__add_entry(hists, &al, NULL, he = __hists__add_entry(hists, &al, NULL,
@ -103,17 +97,10 @@ static int add_hist_entries(struct perf_evlist *evlist, struct machine *machine)
} }
for (k = 0; k < ARRAY_SIZE(fake_samples[i]); k++) { for (k = 0; k < ARRAY_SIZE(fake_samples[i]); k++) {
const union perf_event event = {
.header = {
.misc = PERF_RECORD_MISC_USER,
},
};
sample.pid = fake_samples[i][k].pid; sample.pid = fake_samples[i][k].pid;
sample.tid = fake_samples[i][k].pid; sample.tid = fake_samples[i][k].pid;
sample.ip = fake_samples[i][k].ip; sample.ip = fake_samples[i][k].ip;
if (perf_event__preprocess_sample(&event, machine, &al, if (machine__resolve(machine, &al, &sample) < 0)
&sample) < 0)
goto out; goto out;
he = __hists__add_entry(hists, &al, NULL, he = __hists__add_entry(hists, &al, NULL,

View File

@ -51,11 +51,6 @@ static int add_hist_entries(struct hists *hists, struct machine *machine)
size_t i; size_t i;
for (i = 0; i < ARRAY_SIZE(fake_samples); i++) { for (i = 0; i < ARRAY_SIZE(fake_samples); i++) {
const union perf_event event = {
.header = {
.misc = PERF_RECORD_MISC_USER,
},
};
struct hist_entry_iter iter = { struct hist_entry_iter iter = {
.evsel = evsel, .evsel = evsel,
.sample = &sample, .sample = &sample,
@ -69,8 +64,7 @@ static int add_hist_entries(struct hists *hists, struct machine *machine)
sample.tid = fake_samples[i].pid; sample.tid = fake_samples[i].pid;
sample.ip = fake_samples[i].ip; sample.ip = fake_samples[i].ip;
if (perf_event__preprocess_sample(&event, machine, &al, if (machine__resolve(machine, &al, &sample) < 0)
&sample) < 0)
goto out; goto out;
if (hist_entry_iter__add(&iter, &al, PERF_MAX_STACK_DEPTH, if (hist_entry_iter__add(&iter, &al, PERF_MAX_STACK_DEPTH,

View File

@ -1295,10 +1295,8 @@ void thread__find_addr_location(struct thread *thread,
* Callers need to drop the reference to al->thread, obtained in * Callers need to drop the reference to al->thread, obtained in
* machine__findnew_thread() * machine__findnew_thread()
*/ */
int perf_event__preprocess_sample(const union perf_event *event __maybe_unused, int machine__resolve(struct machine *machine, struct addr_location *al,
struct machine *machine, struct perf_sample *sample)
struct addr_location *al,
struct perf_sample *sample)
{ {
struct thread *thread = machine__findnew_thread(machine, sample->pid, struct thread *thread = machine__findnew_thread(machine, sample->pid,
sample->tid); sample->tid);

View File

@ -598,10 +598,8 @@ int perf_event__process(struct perf_tool *tool,
struct addr_location; struct addr_location;
int perf_event__preprocess_sample(const union perf_event *event, int machine__resolve(struct machine *machine, struct addr_location *al,
struct machine *machine, struct perf_sample *sample);
struct addr_location *al,
struct perf_sample *sample);
void addr_location__put(struct addr_location *al); void addr_location__put(struct addr_location *al);