Lines Matching refs:event
21 #include "event.h"
232 static void intel_pt_log_event(union perf_event *event)
239 perf_event__fprintf(event, NULL, f);
1286 * Also ensure CBR is first non-skipped event by allowing for 4 more samples
1296 union perf_event *event,
1299 event->sample.header.type = PERF_RECORD_SAMPLE;
1300 event->sample.header.size = sizeof(struct perf_event_header);
1311 union perf_event *event,
1314 intel_pt_prep_a_sample(ptq, event, sample);
1325 event->sample.header.misc = sample->cpumode;
1328 static int intel_pt_inject_event(union perf_event *event,
1331 event->header.size = perf_event__sample_event_size(sample, type, 0);
1332 return perf_event__synthesize_sample(event, type, 0, sample);
1336 union perf_event *event,
1342 return intel_pt_inject_event(event, sample, type);
1346 union perf_event *event,
1351 ret = intel_pt_opt_inject(pt, event, sample, type);
1355 ret = perf_session__deliver_synth_event(pt->session, event, sample);
1357 pr_err("Intel PT: failed to deliver event, error %d\n", ret);
1365 union perf_event *event = ptq->event_buf;
1379 intel_pt_prep_b_sample(pt, ptq, event, &sample);
1408 return intel_pt_deliver_synth_event(pt, event, &sample,
1414 union perf_event *event,
1417 intel_pt_prep_b_sample(pt, ptq, event, sample);
1436 union perf_event *event = ptq->event_buf;
1442 intel_pt_prep_sample(pt, ptq, event, &sample);
1461 return intel_pt_deliver_synth_event(pt, event, &sample,
1468 union perf_event *event = ptq->event_buf;
1474 intel_pt_prep_sample(pt, ptq, event, &sample);
1479 return intel_pt_deliver_synth_event(pt, event, &sample,
1485 union perf_event *event,
1488 intel_pt_prep_sample(pt, ptq, event, sample);
1501 union perf_event *event = ptq->event_buf;
1508 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1520 return intel_pt_deliver_synth_event(pt, event, &sample,
1527 union perf_event *event = ptq->event_buf;
1537 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1550 return intel_pt_deliver_synth_event(pt, event, &sample,
1557 union perf_event *event = ptq->event_buf;
1564 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1575 return intel_pt_deliver_synth_event(pt, event, &sample,
1582 union perf_event *event = ptq->event_buf;
1589 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1600 return intel_pt_deliver_synth_event(pt, event, &sample,
1607 union perf_event *event = ptq->event_buf;
1614 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1625 return intel_pt_deliver_synth_event(pt, event, &sample,
1632 union perf_event *event = ptq->event_buf;
1639 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1650 return intel_pt_deliver_synth_event(pt, event, &sample,
1785 union perf_event *event = ptq->event_buf;
1796 intel_pt_prep_a_sample(ptq, event, &sample);
1817 event->sample.header.misc = cpumode | PERF_RECORD_MISC_EXACT_IP;
1898 return intel_pt_deliver_synth_event(pt, event, &sample, sample_type);
1904 union perf_event event;
1919 auxtrace_synth_error(&event.auxtrace_error, PERF_AUXTRACE_ERROR_ITRACE,
1922 err = perf_session__deliver_synth_event(pt->session, &event, NULL);
1924 pr_err("Intel Processor Trace: failed to deliver error event, error %d\n",
2588 * a "switch in" event has occurred.
2596 static int intel_pt_context_switch(struct intel_pt *pt, union perf_event *event,
2599 bool out = event->header.misc & PERF_RECORD_MISC_SWITCH_OUT;
2608 if (event->header.type != PERF_RECORD_SWITCH_CPU_WIDE) {
2609 pr_err("Expecting CPU-wide context switch event\n");
2612 pid = event->context_switch.next_prev_pid;
2613 tid = event->context_switch.next_prev_tid;
2622 intel_pt_log("context_switch event has no tid\n");
2632 union perf_event *event,
2639 sample->cpu, event->itrace_start.pid,
2640 event->itrace_start.tid, sample->time,
2644 event->itrace_start.pid,
2645 event->itrace_start.tid);
2660 static int intel_pt_text_poke(struct intel_pt *pt, union perf_event *event)
2662 u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK;
2663 u64 addr = event->text_poke.addr + event->text_poke.new_len - 1;
2665 int cnt = 4096 + event->text_poke.new_len;
2672 if (!event->text_poke.new_len)
2677 if (addr < event->text_poke.addr)
2691 if (addr + e->byte_cnt + e->length <= event->text_poke.addr) {
2710 union perf_event *event,
2743 } else if (event->header.type == PERF_RECORD_EXIT) {
2745 event->fork.tid,
2754 if (event->header.type == PERF_RECORD_SAMPLE) {
2761 if (event->header.type == PERF_RECORD_AUX &&
2762 (event->aux.flags & PERF_AUX_FLAG_TRUNCATED) &&
2769 if (pt->switch_evsel && event->header.type == PERF_RECORD_SAMPLE)
2771 else if (event->header.type == PERF_RECORD_ITRACE_START)
2772 err = intel_pt_process_itrace_start(pt, event, sample);
2773 else if (event->header.type == PERF_RECORD_SWITCH ||
2774 event->header.type == PERF_RECORD_SWITCH_CPU_WIDE)
2775 err = intel_pt_context_switch(pt, event, sample);
2777 if (!err && event->header.type == PERF_RECORD_TEXT_POKE)
2778 err = intel_pt_text_poke(pt, event);
2781 intel_pt_log("event %u: cpu %d time %"PRIu64" tsc %#"PRIx64" ",
2782 event->header.type, sample->cpu, sample->time, timestamp);
2783 intel_pt_log_event(event);
2853 union perf_event *event,
2873 err = auxtrace_queues__add_event(&pt->queues, session, event,
2893 union perf_event *event, u64 data_offset)
2899 if (event) {
2900 return auxtrace_queues__add_event(&pt->queues, session, event,
2919 union perf_event *event,
2926 return perf_session__deliver_synth_event(intel_pt_synth->session, event,
2936 pr_debug("Synthesizing '%s' event with id %" PRIu64 " sample type %#" PRIx64 "\n",
2945 pr_err("%s: failed to synthesize '%s' event type\n",
3038 * so the event attributes must indicate that it's present.
3319 int intel_pt_process_auxtrace_info(union perf_event *event,
3322 struct perf_record_auxtrace_info *auxtrace_info = &event->auxtrace_info;
3468 pr_err("%s: missing sched_switch event\n", __func__);