Lines Matching full:sample
291 struct perf_sample *sample) in intel_pt_dump_sample() argument
297 intel_pt_dump(pt, sample->aux_sample.data, sample->aux_sample.size); in intel_pt_dump_sample()
1238 struct perf_sample *sample) in intel_pt_add_callchain() argument
1241 sample->pid, in intel_pt_add_callchain()
1242 sample->tid); in intel_pt_add_callchain()
1244 thread_stack__sample_late(thread, sample->cpu, pt->chain, in intel_pt_add_callchain()
1245 pt->synth_opts.callchain_sz + 1, sample->ip, in intel_pt_add_callchain()
1248 sample->callchain = pt->chain; in intel_pt_add_callchain()
1276 struct perf_sample *sample) in intel_pt_add_br_stack() argument
1279 sample->pid, in intel_pt_add_br_stack()
1280 sample->tid); in intel_pt_add_br_stack()
1282 thread_stack__br_sample_late(thread, sample->cpu, pt->br_stack, in intel_pt_add_br_stack()
1283 pt->br_stack_sz, sample->ip, in intel_pt_add_br_stack()
1286 sample->branch_stack = pt->br_stack; in intel_pt_add_br_stack()
1689 struct perf_sample *sample) in intel_pt_prep_a_sample() argument
1691 event->sample.header.type = PERF_RECORD_SAMPLE; in intel_pt_prep_a_sample()
1692 event->sample.header.size = sizeof(struct perf_event_header); in intel_pt_prep_a_sample()
1694 sample->pid = ptq->pid; in intel_pt_prep_a_sample()
1695 sample->tid = ptq->tid; in intel_pt_prep_a_sample()
1700 sample->pid = ptq->guest_pid; in intel_pt_prep_a_sample()
1701 sample->tid = ptq->guest_tid; in intel_pt_prep_a_sample()
1702 sample->machine_pid = ptq->guest_machine_pid; in intel_pt_prep_a_sample()
1703 sample->vcpu = ptq->vcpu; in intel_pt_prep_a_sample()
1707 sample->cpu = ptq->cpu; in intel_pt_prep_a_sample()
1708 sample->insn_len = ptq->insn_len; in intel_pt_prep_a_sample()
1709 memcpy(sample->insn, ptq->insn, INTEL_PT_INSN_BUF_SZ); in intel_pt_prep_a_sample()
1715 struct perf_sample *sample) in intel_pt_prep_b_sample() argument
1717 intel_pt_prep_a_sample(ptq, event, sample); in intel_pt_prep_b_sample()
1720 sample->time = tsc_to_perf_time(ptq->timestamp, &pt->tc); in intel_pt_prep_b_sample()
1722 sample->ip = ptq->state->from_ip; in intel_pt_prep_b_sample()
1723 sample->addr = ptq->state->to_ip; in intel_pt_prep_b_sample()
1724 sample->cpumode = intel_pt_cpumode(ptq, sample->ip, sample->addr); in intel_pt_prep_b_sample()
1725 sample->period = 1; in intel_pt_prep_b_sample()
1726 sample->flags = ptq->flags; in intel_pt_prep_b_sample()
1728 event->sample.header.misc = sample->cpumode; in intel_pt_prep_b_sample()
1732 struct perf_sample *sample, u64 type) in intel_pt_inject_event() argument
1734 event->header.size = perf_event__sample_event_size(sample, type, 0); in intel_pt_inject_event()
1735 return perf_event__synthesize_sample(event, type, 0, sample); in intel_pt_inject_event()
1740 struct perf_sample *sample, u64 type) in intel_pt_opt_inject() argument
1745 return intel_pt_inject_event(event, sample, type); in intel_pt_opt_inject()
1750 struct perf_sample *sample, u64 type) in intel_pt_deliver_synth_event() argument
1754 ret = intel_pt_opt_inject(pt, event, sample, type); in intel_pt_deliver_synth_event()
1758 ret = perf_session__deliver_synth_event(pt->session, event, sample); in intel_pt_deliver_synth_event()
1769 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_branch_sample() local
1782 intel_pt_prep_b_sample(pt, ptq, event, &sample); in intel_pt_synth_branch_sample()
1784 sample.id = ptq->pt->branches_id; in intel_pt_synth_branch_sample()
1785 sample.stream_id = ptq->pt->branches_id; in intel_pt_synth_branch_sample()
1796 .from = sample.ip, in intel_pt_synth_branch_sample()
1797 .to = sample.addr, in intel_pt_synth_branch_sample()
1800 sample.branch_stack = (struct branch_stack *)&dummy_bs; in intel_pt_synth_branch_sample()
1804 sample.cyc_cnt = ptq->ipc_cyc_cnt - ptq->last_br_cyc_cnt; in intel_pt_synth_branch_sample()
1805 if (sample.cyc_cnt) { in intel_pt_synth_branch_sample()
1806 sample.insn_cnt = ptq->ipc_insn_cnt - ptq->last_br_insn_cnt; in intel_pt_synth_branch_sample()
1811 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_branch_sample()
1818 struct perf_sample *sample) in intel_pt_prep_sample() argument
1820 intel_pt_prep_b_sample(pt, ptq, event, sample); in intel_pt_prep_sample()
1825 sample->ip, pt->kernel_start); in intel_pt_prep_sample()
1826 sample->callchain = ptq->chain; in intel_pt_prep_sample()
1832 sample->branch_stack = ptq->last_branch; in intel_pt_prep_sample()
1840 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_instruction_sample() local
1845 intel_pt_prep_sample(pt, ptq, event, &sample); in intel_pt_synth_instruction_sample()
1847 sample.id = ptq->pt->instructions_id; in intel_pt_synth_instruction_sample()
1848 sample.stream_id = ptq->pt->instructions_id; in intel_pt_synth_instruction_sample()
1850 sample.period = 1; in intel_pt_synth_instruction_sample()
1852 sample.period = ptq->state->tot_insn_cnt - ptq->last_insn_cnt; in intel_pt_synth_instruction_sample()
1855 sample.cyc_cnt = ptq->ipc_cyc_cnt - ptq->last_in_cyc_cnt; in intel_pt_synth_instruction_sample()
1856 if (sample.cyc_cnt) { in intel_pt_synth_instruction_sample()
1857 sample.insn_cnt = ptq->ipc_insn_cnt - ptq->last_in_insn_cnt; in intel_pt_synth_instruction_sample()
1864 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_instruction_sample()
1872 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_cycle_sample() local
1881 intel_pt_prep_sample(pt, ptq, event, &sample); in intel_pt_synth_cycle_sample()
1883 sample.id = ptq->pt->cycles_id; in intel_pt_synth_cycle_sample()
1884 sample.stream_id = ptq->pt->cycles_id; in intel_pt_synth_cycle_sample()
1885 sample.period = period; in intel_pt_synth_cycle_sample()
1887 sample.cyc_cnt = period; in intel_pt_synth_cycle_sample()
1888 sample.insn_cnt = ptq->ipc_insn_cnt - ptq->last_cy_insn_cnt; in intel_pt_synth_cycle_sample()
1892 return intel_pt_deliver_synth_event(pt, event, &sample, pt->cycles_sample_type); in intel_pt_synth_cycle_sample()
1899 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_transaction_sample() local
1904 intel_pt_prep_sample(pt, ptq, event, &sample); in intel_pt_synth_transaction_sample()
1906 sample.id = ptq->pt->transactions_id; in intel_pt_synth_transaction_sample()
1907 sample.stream_id = ptq->pt->transactions_id; in intel_pt_synth_transaction_sample()
1909 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_transaction_sample()
1916 struct perf_sample *sample) in intel_pt_prep_p_sample() argument
1918 intel_pt_prep_sample(pt, ptq, event, sample); in intel_pt_prep_p_sample()
1924 if (!sample->ip) in intel_pt_prep_p_sample()
1925 sample->flags = 0; in intel_pt_prep_p_sample()
1932 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_ptwrite_sample() local
1938 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_ptwrite_sample()
1940 sample.id = ptq->pt->ptwrites_id; in intel_pt_synth_ptwrite_sample()
1941 sample.stream_id = ptq->pt->ptwrites_id; in intel_pt_synth_ptwrite_sample()
1947 sample.raw_size = perf_synth__raw_size(raw); in intel_pt_synth_ptwrite_sample()
1948 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_ptwrite_sample()
1950 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_ptwrite_sample()
1958 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_cbr_sample() local
1967 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_cbr_sample()
1969 sample.id = ptq->pt->cbr_id; in intel_pt_synth_cbr_sample()
1970 sample.stream_id = ptq->pt->cbr_id; in intel_pt_synth_cbr_sample()
1977 sample.raw_size = perf_synth__raw_size(raw); in intel_pt_synth_cbr_sample()
1978 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_cbr_sample()
1980 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_cbr_sample()
1988 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_psb_sample() local
1994 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_psb_sample()
1996 sample.id = ptq->pt->psb_id; in intel_pt_synth_psb_sample()
1997 sample.stream_id = ptq->pt->psb_id; in intel_pt_synth_psb_sample()
1998 sample.flags = 0; in intel_pt_synth_psb_sample()
2003 sample.raw_size = perf_synth__raw_size(raw); in intel_pt_synth_psb_sample()
2004 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_psb_sample()
2006 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_psb_sample()
2014 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_mwait_sample() local
2020 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_mwait_sample()
2022 sample.id = ptq->pt->mwait_id; in intel_pt_synth_mwait_sample()
2023 sample.stream_id = ptq->pt->mwait_id; in intel_pt_synth_mwait_sample()
2028 sample.raw_size = perf_synth__raw_size(raw); in intel_pt_synth_mwait_sample()
2029 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_mwait_sample()
2031 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_mwait_sample()
2039 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_pwre_sample() local
2045 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_pwre_sample()
2047 sample.id = ptq->pt->pwre_id; in intel_pt_synth_pwre_sample()
2048 sample.stream_id = ptq->pt->pwre_id; in intel_pt_synth_pwre_sample()
2053 sample.raw_size = perf_synth__raw_size(raw); in intel_pt_synth_pwre_sample()
2054 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_pwre_sample()
2056 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_pwre_sample()
2064 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_exstop_sample() local
2070 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_exstop_sample()
2072 sample.id = ptq->pt->exstop_id; in intel_pt_synth_exstop_sample()
2073 sample.stream_id = ptq->pt->exstop_id; in intel_pt_synth_exstop_sample()
2078 sample.raw_size = perf_synth__raw_size(raw); in intel_pt_synth_exstop_sample()
2079 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_exstop_sample()
2081 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_exstop_sample()
2089 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_pwrx_sample() local
2095 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_pwrx_sample()
2097 sample.id = ptq->pt->pwrx_id; in intel_pt_synth_pwrx_sample()
2098 sample.stream_id = ptq->pt->pwrx_id; in intel_pt_synth_pwrx_sample()
2103 sample.raw_size = perf_synth__raw_size(raw); in intel_pt_synth_pwrx_sample()
2104 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_pwrx_sample()
2106 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_pwrx_sample()
2379 struct perf_sample sample = { .ip = 0, }; in intel_pt_do_synth_pebs_sample() local
2384 u64 regs[8 * sizeof(sample.intr_regs.mask)]; in intel_pt_do_synth_pebs_sample()
2389 intel_pt_prep_a_sample(ptq, event, &sample); in intel_pt_do_synth_pebs_sample()
2391 sample.id = id; in intel_pt_do_synth_pebs_sample()
2392 sample.stream_id = id; in intel_pt_do_synth_pebs_sample()
2395 sample.period = evsel->core.attr.sample_period; in intel_pt_do_synth_pebs_sample()
2399 sample.ip = items->ip; in intel_pt_do_synth_pebs_sample()
2401 sample.ip = items->rip; in intel_pt_do_synth_pebs_sample()
2403 sample.ip = ptq->state->from_ip; in intel_pt_do_synth_pebs_sample()
2405 cpumode = intel_pt_cpumode(ptq, sample.ip, 0); in intel_pt_do_synth_pebs_sample()
2407 event->sample.header.misc = cpumode | PERF_RECORD_MISC_EXACT_IP; in intel_pt_do_synth_pebs_sample()
2409 sample.cpumode = cpumode; in intel_pt_do_synth_pebs_sample()
2419 sample.time = tsc_to_perf_time(timestamp, &pt->tc); in intel_pt_do_synth_pebs_sample()
2425 pt->synth_opts.callchain_sz, sample.ip, in intel_pt_do_synth_pebs_sample()
2427 sample.callchain = ptq->chain; in intel_pt_do_synth_pebs_sample()
2436 sample.intr_regs.abi = items->is_32_bit ? in intel_pt_do_synth_pebs_sample()
2439 sample.intr_regs.regs = regs; in intel_pt_do_synth_pebs_sample()
2441 pos = intel_pt_add_gp_regs(&sample.intr_regs, regs, items, regs_mask); in intel_pt_do_synth_pebs_sample()
2443 intel_pt_add_xmm(&sample.intr_regs, pos, items, regs_mask); in intel_pt_do_synth_pebs_sample()
2458 sample.branch_stack = ptq->last_branch; in intel_pt_do_synth_pebs_sample()
2462 sample.addr = items->mem_access_address; in intel_pt_do_synth_pebs_sample()
2483 sample.weight = weight & 0xffff; in intel_pt_do_synth_pebs_sample()
2484 sample.ins_lat = items->mem_access_latency & 0xffff; in intel_pt_do_synth_pebs_sample()
2486 sample.weight = items->mem_access_latency; in intel_pt_do_synth_pebs_sample()
2488 if (!sample.weight && items->has_tsx_aux_info) { in intel_pt_do_synth_pebs_sample()
2490 sample.weight = (u32)items->tsx_aux_info; in intel_pt_do_synth_pebs_sample()
2500 sample.data_src = intel_pt_get_data_src(items->mem_aux_info, data_src_fmt); in intel_pt_do_synth_pebs_sample()
2502 sample.data_src = PERF_MEM_NA; in intel_pt_do_synth_pebs_sample()
2514 sample.transaction = txn; in intel_pt_do_synth_pebs_sample()
2517 return intel_pt_deliver_synth_event(pt, event, &sample, sample_type); in intel_pt_do_synth_pebs_sample()
2564 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_events_sample() local
2574 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_events_sample()
2576 sample.id = ptq->pt->evt_id; in intel_pt_synth_events_sample()
2577 sample.stream_id = ptq->pt->evt_id; in intel_pt_synth_events_sample()
2591 sample.raw_size = perf_synth__raw_size(raw) + in intel_pt_synth_events_sample()
2593 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_events_sample()
2595 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_events_sample()
2603 struct perf_sample sample = { .ip = 0, }; in intel_pt_synth_iflag_chg_sample() local
2609 intel_pt_prep_p_sample(pt, ptq, event, &sample); in intel_pt_synth_iflag_chg_sample()
2611 sample.id = ptq->pt->iflag_chg_id; in intel_pt_synth_iflag_chg_sample()
2612 sample.stream_id = ptq->pt->iflag_chg_id; in intel_pt_synth_iflag_chg_sample()
2621 sample.addr = 0; in intel_pt_synth_iflag_chg_sample()
2623 sample.flags = ptq->flags; in intel_pt_synth_iflag_chg_sample()
2625 sample.raw_size = perf_synth__raw_size(raw); in intel_pt_synth_iflag_chg_sample()
2626 sample.raw_data = perf_synth__raw_data(&raw); in intel_pt_synth_iflag_chg_sample()
2628 return intel_pt_deliver_synth_event(pt, event, &sample, in intel_pt_synth_iflag_chg_sample()
3238 struct perf_sample *sample) in intel_pt_sample_set_pid_tid_cpu() argument
3242 ptq->pid = sample->pid; in intel_pt_sample_set_pid_tid_cpu()
3243 ptq->tid = sample->tid; in intel_pt_sample_set_pid_tid_cpu()
3265 struct perf_sample *sample) in intel_pt_process_timeless_sample() argument
3271 queue = auxtrace_queues__sample_queue(&pt->queues, sample, pt->session); in intel_pt_process_timeless_sample()
3280 ptq->time = sample->time; in intel_pt_process_timeless_sample()
3281 intel_pt_sample_set_pid_tid_cpu(ptq, queue, sample); in intel_pt_process_timeless_sample()
3286 static int intel_pt_lost(struct intel_pt *pt, struct perf_sample *sample) in intel_pt_lost() argument
3288 return intel_pt_synth_error(pt, INTEL_PT_ERR_LOST, sample->cpu, in intel_pt_lost()
3289 sample->pid, sample->tid, 0, sample->time, in intel_pt_lost()
3290 sample->machine_pid, sample->vcpu); in intel_pt_lost()
3368 struct perf_sample *sample) in intel_pt_process_switch() argument
3372 struct evsel *evsel = evlist__id2evsel(pt->session->evlist, sample->id); in intel_pt_process_switch()
3377 tid = evsel__intval(evsel, sample, "next_pid"); in intel_pt_process_switch()
3378 cpu = sample->cpu; in intel_pt_process_switch()
3381 cpu, tid, sample->time, perf_time_to_tsc(sample->time, in intel_pt_process_switch()
3384 ret = intel_pt_sync_switch(pt, cpu, tid, sample->time); in intel_pt_process_switch()
3393 struct perf_sample *sample) in intel_pt_context_switch_in() argument
3395 pid_t pid = sample->pid; in intel_pt_context_switch_in()
3396 pid_t tid = sample->tid; in intel_pt_context_switch_in()
3397 int cpu = sample->cpu; in intel_pt_context_switch_in()
3432 struct perf_sample *sample) in intel_pt_guest_context_switch() argument
3436 struct machine *machine = machines__find(machines, sample->machine_pid); in intel_pt_guest_context_switch()
3454 return machine__set_current_tid(machine, sample->vcpu, sample->pid, sample->tid); in intel_pt_guest_context_switch()
3458 struct perf_sample *sample) in intel_pt_context_switch() argument
3465 return intel_pt_guest_context_switch(pt, event, sample); in intel_pt_context_switch()
3467 cpu = sample->cpu; in intel_pt_context_switch()
3471 return intel_pt_context_switch_in(pt, sample); in intel_pt_context_switch()
3481 pid = sample->pid; in intel_pt_context_switch()
3482 tid = sample->tid; in intel_pt_context_switch()
3488 ret = intel_pt_sync_switch(pt, cpu, tid, sample->time); in intel_pt_context_switch()
3497 struct perf_sample *sample) in intel_pt_process_itrace_start() argument
3503 sample->cpu, event->itrace_start.pid, in intel_pt_process_itrace_start()
3504 event->itrace_start.tid, sample->time, in intel_pt_process_itrace_start()
3505 perf_time_to_tsc(sample->time, &pt->tc)); in intel_pt_process_itrace_start()
3507 return machine__set_current_tid(pt->machine, sample->cpu, in intel_pt_process_itrace_start()
3557 struct perf_sample *sample) in intel_pt_process_aux_output_hw_id() argument
3564 queue = auxtrace_queues__sample_queue(&pt->queues, sample, pt->session); in intel_pt_process_aux_output_hw_id()
3565 evsel = evlist__id2evsel_strict(pt->session->evlist, sample->id); in intel_pt_process_aux_output_hw_id()
3574 ptq->pebs[hw_id].id = sample->id; in intel_pt_process_aux_output_hw_id()
3649 struct perf_sample *sample, in intel_pt_process_event() argument
3665 if (sample->time && sample->time != (u64)-1) in intel_pt_process_event()
3666 timestamp = perf_time_to_tsc(sample->time, &pt->tc); in intel_pt_process_event()
3678 if (sample->aux_sample.size) in intel_pt_process_event()
3680 sample); in intel_pt_process_event()
3684 sample->time); in intel_pt_process_event()
3695 if (pt->synth_opts.add_callchain && !sample->callchain) in intel_pt_process_event()
3696 intel_pt_add_callchain(pt, sample); in intel_pt_process_event()
3697 if (pt->synth_opts.add_last_branch && !sample->branch_stack) in intel_pt_process_event()
3698 intel_pt_add_br_stack(pt, sample); in intel_pt_process_event()
3704 err = intel_pt_lost(pt, sample); in intel_pt_process_event()
3711 err = intel_pt_process_switch(pt, sample); in intel_pt_process_event()
3715 err = intel_pt_process_itrace_start(pt, event, sample); in intel_pt_process_event()
3717 err = intel_pt_process_aux_output_hw_id(pt, event, sample); in intel_pt_process_event()
3720 err = intel_pt_context_switch(pt, event, sample); in intel_pt_process_event()
3725 if (intel_pt_enable_logging && intel_pt_log_events(pt, sample->time)) { in intel_pt_process_event()
3727 event->header.type, sample->cpu, sample->time, timestamp); in intel_pt_process_event()
3839 struct perf_sample *sample, in intel_pt_queue_data() argument
3851 if (sample->time && sample->time != (u64)-1) in intel_pt_queue_data()
3852 timestamp = perf_time_to_tsc(sample->time, &pt->tc); in intel_pt_queue_data()
3856 return auxtrace_queues__add_sample(&pt->queues, session, sample, in intel_pt_queue_data()
3867 struct perf_sample *sample __maybe_unused, in intel_pt_event_synth()
3883 pr_debug("Synthesizing '%s' event with id %" PRIu64 " sample type %#" PRIx64 "\n", in intel_pt_synth_event()
3983 * We don't use the hardware index, but the sample generation in intel_pt_synth_events()
4636 * actual sample ip to where the sample time is recorded. in intel_pt_process_auxtrace_info()