static int process_sample_event(struct machine *machine, struct perf_evlist *evlist, union perf_event *event, struct state *state) { struct perf_sample sample; struct thread *thread; u8 cpumode; int ret; if (perf_evlist__parse_sample(evlist, event, &sample)) { pr_debug("perf_evlist__parse_sample failed\n"); return -1; } thread = machine__findnew_thread(machine, sample.pid, sample.tid); if (!thread) { pr_debug("machine__findnew_thread failed\n"); return -1; } cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; ret = read_object_code(sample.ip, READLEN, cpumode, thread, state); thread__put(thread); return ret; }
static int process_sample_event(struct machine *machine, struct perf_evlist *evlist, union perf_event *event, struct state *state) { struct perf_sample sample; struct thread *thread; int ret; if (perf_evlist__parse_sample(evlist, event, &sample)) { pr_debug("perf_evlist__parse_sample failed\n"); return -1; } thread = machine__findnew_thread(machine, sample.pid, sample.tid); if (!thread) { pr_debug("machine__findnew_thread failed\n"); return -1; } ret = read_object_code(sample.ip, READLEN, sample.cpumode, thread, state); thread__put(thread); return ret; }