Lines Matching defs:sample

243 				 struct perf_sample *sample)
249 intel_pt_dump(pt, sample->aux_sample.data, sample->aux_sample.size);
946 struct perf_sample *sample)
949 sample->pid,
950 sample->tid);
952 thread_stack__sample_late(thread, sample->cpu, pt->chain,
953 pt->synth_opts.callchain_sz + 1, sample->ip,
956 sample->callchain = pt->chain;
984 struct perf_sample *sample)
987 sample->pid,
988 sample->tid);
990 thread_stack__br_sample_late(thread, sample->cpu, pt->br_stack,
991 pt->br_stack_sz, sample->ip,
994 sample->branch_stack = pt->br_stack;
1297 struct perf_sample *sample)
1299 event->sample.header.type = PERF_RECORD_SAMPLE;
1300 event->sample.header.size = sizeof(struct perf_event_header);
1302 sample->pid = ptq->pid;
1303 sample->tid = ptq->tid;
1304 sample->cpu = ptq->cpu;
1305 sample->insn_len = ptq->insn_len;
1306 memcpy(sample->insn, ptq->insn, INTEL_PT_INSN_BUF_SZ);
1312 struct perf_sample *sample)
1314 intel_pt_prep_a_sample(ptq, event, sample);
1317 sample->time = tsc_to_perf_time(ptq->timestamp, &pt->tc);
1319 sample->ip = ptq->state->from_ip;
1320 sample->cpumode = intel_pt_cpumode(pt, sample->ip);
1321 sample->addr = ptq->state->to_ip;
1322 sample->period = 1;
1323 sample->flags = ptq->flags;
1325 event->sample.header.misc = sample->cpumode;
1329 struct perf_sample *sample, u64 type)
1331 event->header.size = perf_event__sample_event_size(sample, type, 0);
1332 return perf_event__synthesize_sample(event, type, 0, sample);
1337 struct perf_sample *sample, u64 type)
1342 return intel_pt_inject_event(event, sample, type);
1347 struct perf_sample *sample, u64 type)
1351 ret = intel_pt_opt_inject(pt, event, sample, type);
1355 ret = perf_session__deliver_synth_event(pt->session, event, sample);
1366 struct perf_sample sample = { .ip = 0, };
1379 intel_pt_prep_b_sample(pt, ptq, event, &sample);
1381 sample.id = ptq->pt->branches_id;
1382 sample.stream_id = ptq->pt->branches_id;
1393 .from = sample.ip,
1394 .to = sample.addr,
1397 sample.branch_stack = (struct branch_stack *)&dummy_bs;
1401 sample.cyc_cnt = ptq->ipc_cyc_cnt - ptq->last_br_cyc_cnt;
1402 if (sample.cyc_cnt) {
1403 sample.insn_cnt = ptq->ipc_insn_cnt - ptq->last_br_insn_cnt;
1408 return intel_pt_deliver_synth_event(pt, event, &sample,
1415 struct perf_sample *sample)
1417 intel_pt_prep_b_sample(pt, ptq, event, sample);
1422 sample->ip, pt->kernel_start);
1423 sample->callchain = ptq->chain;
1429 sample->branch_stack = ptq->last_branch;
1437 struct perf_sample sample = { .ip = 0, };
1442 intel_pt_prep_sample(pt, ptq, event, &sample);
1444 sample.id = ptq->pt->instructions_id;
1445 sample.stream_id = ptq->pt->instructions_id;
1447 sample.period = 1;
1449 sample.period = ptq->state->tot_insn_cnt - ptq->last_insn_cnt;
1452 sample.cyc_cnt = ptq->ipc_cyc_cnt - ptq->last_in_cyc_cnt;
1453 if (sample.cyc_cnt) {
1454 sample.insn_cnt = ptq->ipc_insn_cnt - ptq->last_in_insn_cnt;
1461 return intel_pt_deliver_synth_event(pt, event, &sample,
1469 struct perf_sample sample = { .ip = 0, };
1474 intel_pt_prep_sample(pt, ptq, event, &sample);
1476 sample.id = ptq->pt->transactions_id;
1477 sample.stream_id = ptq->pt->transactions_id;
1479 return intel_pt_deliver_synth_event(pt, event, &sample,
1486 struct perf_sample *sample)
1488 intel_pt_prep_sample(pt, ptq, event, sample);
1494 if (!sample->ip)
1495 sample->flags = 0;
1502 struct perf_sample sample = { .ip = 0, };
1508 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1510 sample.id = ptq->pt->ptwrites_id;
1511 sample.stream_id = ptq->pt->ptwrites_id;
1517 sample.raw_size = perf_synth__raw_size(raw);
1518 sample.raw_data = perf_synth__raw_data(&raw);
1520 return intel_pt_deliver_synth_event(pt, event, &sample,
1528 struct perf_sample sample = { .ip = 0, };
1537 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1539 sample.id = ptq->pt->cbr_id;
1540 sample.stream_id = ptq->pt->cbr_id;
1547 sample.raw_size = perf_synth__raw_size(raw);
1548 sample.raw_data = perf_synth__raw_data(&raw);
1550 return intel_pt_deliver_synth_event(pt, event, &sample,
1558 struct perf_sample sample = { .ip = 0, };
1564 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1566 sample.id = ptq->pt->mwait_id;
1567 sample.stream_id = ptq->pt->mwait_id;
1572 sample.raw_size = perf_synth__raw_size(raw);
1573 sample.raw_data = perf_synth__raw_data(&raw);
1575 return intel_pt_deliver_synth_event(pt, event, &sample,
1583 struct perf_sample sample = { .ip = 0, };
1589 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1591 sample.id = ptq->pt->pwre_id;
1592 sample.stream_id = ptq->pt->pwre_id;
1597 sample.raw_size = perf_synth__raw_size(raw);
1598 sample.raw_data = perf_synth__raw_data(&raw);
1600 return intel_pt_deliver_synth_event(pt, event, &sample,
1608 struct perf_sample sample = { .ip = 0, };
1614 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1616 sample.id = ptq->pt->exstop_id;
1617 sample.stream_id = ptq->pt->exstop_id;
1622 sample.raw_size = perf_synth__raw_size(raw);
1623 sample.raw_data = perf_synth__raw_data(&raw);
1625 return intel_pt_deliver_synth_event(pt, event, &sample,
1633 struct perf_sample sample = { .ip = 0, };
1639 intel_pt_prep_p_sample(pt, ptq, event, &sample);
1641 sample.id = ptq->pt->pwrx_id;
1642 sample.stream_id = ptq->pt->pwrx_id;
1647 sample.raw_size = perf_synth__raw_size(raw);
1648 sample.raw_data = perf_synth__raw_data(&raw);
1650 return intel_pt_deliver_synth_event(pt, event, &sample,
1784 struct perf_sample sample = { .ip = 0, };
1791 u64 regs[8 * sizeof(sample.intr_regs.mask)];
1796 intel_pt_prep_a_sample(ptq, event, &sample);
1798 sample.id = id;
1799 sample.stream_id = id;
1802 sample.period = evsel->core.attr.sample_period;
1806 sample.ip = items->ip;
1808 sample.ip = items->rip;
1810 sample.ip = ptq->state->from_ip;
1813 cpumode = sample.ip < ptq->pt->kernel_start ?
1817 event->sample.header.misc = cpumode | PERF_RECORD_MISC_EXACT_IP;
1819 sample.cpumode = cpumode;
1829 sample.time = tsc_to_perf_time(timestamp, &pt->tc);
1835 pt->synth_opts.callchain_sz, sample.ip,
1837 sample.callchain = ptq->chain;
1846 sample.intr_regs.abi = items->is_32_bit ?
1849 sample.intr_regs.regs = regs;
1851 pos = intel_pt_add_gp_regs(&sample.intr_regs, regs, items, regs_mask);
1853 intel_pt_add_xmm(&sample.intr_regs, pos, items, regs_mask);
1868 sample.branch_stack = ptq->last_branch;
1872 sample.addr = items->mem_access_address;
1880 sample.weight = items->mem_access_latency;
1881 if (!sample.weight && items->has_tsx_aux_info) {
1883 sample.weight = (u32)items->tsx_aux_info;
1895 sample.transaction = txn;
1898 return intel_pt_deliver_synth_event(pt, event, &sample, sample_type);
2406 struct perf_sample *sample)
2410 ptq->pid = sample->pid;
2411 ptq->tid = sample->tid;
2433 struct perf_sample *sample)
2439 queue = auxtrace_queues__sample_queue(&pt->queues, sample, pt->session);
2448 ptq->time = sample->time;
2449 intel_pt_sample_set_pid_tid_cpu(ptq, queue, sample);
2454 static int intel_pt_lost(struct intel_pt *pt, struct perf_sample *sample)
2456 return intel_pt_synth_error(pt, INTEL_PT_ERR_LOST, sample->cpu,
2457 sample->pid, sample->tid, 0, sample->time);
2534 struct perf_sample *sample)
2540 evsel = perf_evlist__id2evsel(pt->session->evlist, sample->id);
2544 tid = evsel__intval(evsel, sample, "next_pid");
2545 cpu = sample->cpu;
2548 cpu, tid, sample->time, perf_time_to_tsc(sample->time,
2551 ret = intel_pt_sync_switch(pt, cpu, tid, sample->time);
2559 struct perf_sample *sample)
2561 pid_t pid = sample->pid;
2562 pid_t tid = sample->tid;
2563 int cpu = sample->cpu;
2597 struct perf_sample *sample)
2603 cpu = sample->cpu;
2607 return intel_pt_context_switch_in(pt, sample);
2617 pid = sample->pid;
2618 tid = sample->tid;
2624 ret = intel_pt_sync_switch(pt, cpu, tid, sample->time);
2633 struct perf_sample *sample)
2639 sample->cpu, event->itrace_start.pid,
2640 event->itrace_start.tid, sample->time,
2641 perf_time_to_tsc(sample->time, &pt->tc));
2643 return machine__set_current_tid(pt->machine, sample->cpu,
2711 struct perf_sample *sample,
2727 if (sample->time && sample->time != (u64)-1)
2728 timestamp = perf_time_to_tsc(sample->time, &pt->tc);
2740 if (sample->aux_sample.size)
2742 sample);
2746 sample->time);
2755 if (pt->synth_opts.add_callchain && !sample->callchain)
2756 intel_pt_add_callchain(pt, sample);
2757 if (pt->synth_opts.add_last_branch && !sample->branch_stack)
2758 intel_pt_add_br_stack(pt, sample);
2764 err = intel_pt_lost(pt, sample);
2770 err = intel_pt_process_switch(pt, sample);
2772 err = intel_pt_process_itrace_start(pt, event, sample);
2775 err = intel_pt_context_switch(pt, event, sample);
2780 if (intel_pt_enable_logging && intel_pt_log_events(pt, sample->time)) {
2782 event->header.type, sample->cpu, sample->time, timestamp);
2892 struct perf_sample *sample,
2904 if (sample->time && sample->time != (u64)-1)
2905 timestamp = perf_time_to_tsc(sample->time, &pt->tc);
2909 return auxtrace_queues__add_sample(&pt->queues, session, sample,
2920 struct perf_sample *sample __maybe_unused,
2936 pr_debug("Synthesizing '%s' event with id %" PRIu64 " sample type %#" PRIx64 "\n",
3036 * We don't use the hardware index, but the sample generation
3548 * actual sample ip to where the sample time is recorded.