Lines Matching defs:data

118 	int (*get_trace)(struct intel_pt_buffer *buffer, void *data);
121 uint64_t max_insn_cnt, void *data);
122 bool (*pgd_ip)(uint64_t ip, void *data);
123 int (*lookahead)(void *data, intel_pt_lookahead_cb_t cb, void *cb_data);
124 struct intel_pt_vmcs_info *(*findnew_vmcs_info)(void *data, uint64_t vmcs);
125 void *data;
322 decoder->data = params->data;
496 [INTEL_PT_ERR_NODATA] = "No more data",
500 [INTEL_PT_ERR_LOST] = "Lost trace data",
641 intel_pt_log("Getting more data\n");
642 ret = decoder->get_trace(&buffer, decoder->data);
648 intel_pt_log("No more data\n");
725 void *data;
732 intel_pt_pkt_cb_t cb, void *data)
744 pkt_info.data = data;
810 struct intel_pt_calc_cyc_to_tsc_info *data = pkt_info->data;
841 if (!data->have_tma)
845 if (decoder->mtc_shift > 8 && data->fixup_last_mtc) {
846 data->fixup_last_mtc = false;
848 &data->last_mtc);
850 if (mtc > data->last_mtc)
851 mtc_delta = mtc - data->last_mtc;
853 mtc_delta = mtc + 256 - data->last_mtc;
854 data->ctc_delta += mtc_delta << decoder->mtc_shift;
855 data->last_mtc = mtc;
858 timestamp = data->ctc_timestamp +
859 data->ctc_delta * decoder->tsc_ctc_mult;
861 timestamp = data->ctc_timestamp +
862 multdiv(data->ctc_delta,
867 if (timestamp < data->timestamp)
871 data->timestamp = timestamp;
882 if (data->from_mtc)
885 (data->timestamp & (0xffULL << 56));
886 if (data->from_mtc && timestamp < data->timestamp &&
887 data->timestamp - timestamp < decoder->tsc_slip)
889 if (timestamp < data->timestamp)
892 if (data->from_mtc)
894 data->tsc_timestamp = timestamp;
895 data->timestamp = timestamp;
901 if (data->from_mtc)
911 data->last_mtc = (ctc >> decoder->mtc_shift) & 0xff;
913 data->ctc_timestamp = data->tsc_timestamp - fc;
915 data->ctc_timestamp -= ctc_rem * decoder->tsc_ctc_mult;
917 data->ctc_timestamp -=
922 data->ctc_delta = 0;
923 data->have_tma = true;
924 data->fixup_last_mtc = true;
929 data->cycle_cnt += pkt_info->packet.payload;
934 if (data->cbr && data->cbr != cbr)
936 data->cbr = cbr;
937 data->cbr_cyc_to_tsc = decoder->max_non_turbo_ratio_fp / cbr;
953 if (!data->cbr && decoder->cbr) {
954 data->cbr = decoder->cbr;
955 data->cbr_cyc_to_tsc = decoder->cbr_cyc_to_tsc;
958 if (!data->cycle_cnt)
961 cyc_to_tsc = (double)(timestamp - decoder->timestamp) / data->cycle_cnt;
963 if (data->cbr && cyc_to_tsc > data->cbr_cyc_to_tsc &&
964 cyc_to_tsc / data->cbr_cyc_to_tsc > 1.25) {
966 cyc_to_tsc, data->cbr_cyc_to_tsc, pkt_info->pos);
973 if (data->cbr) {
975 cyc_to_tsc, data->cbr_cyc_to_tsc, pkt_info->pos);
987 struct intel_pt_calc_cyc_to_tsc_info data = {
1009 intel_pt_pkt_lookahead(decoder, intel_pt_calc_cyc_cb, &data);
1137 0, max_insn_cnt, decoder->data);
1170 max_insn_cnt, decoder->data);
1474 decoder->pgd_ip(decoder->state.to_ip, decoder->data)) {
1524 decoder->pgd_ip(to_ip, decoder->data)) {
1551 struct eptw_data *data = pkt_info->data;
1586 nr_bits = data->bit_countdown;
1589 data->payload <<= nr_bits;
1590 data->payload |= pkt_info->packet.payload >> (64 - nr_bits);
1591 data->bit_countdown -= nr_bits;
1592 return !data->bit_countdown;
1610 struct eptw_data data = {
1618 intel_pt_pkt_lookahead(decoder, intel_pt_eptw_lookahead_cb, &data);
1619 if (data.bit_countdown)
1625 decoder->state.ptw_payload = data.payload;
2329 struct intel_pt_vm_tsc_info *data = pkt_info->data;
2343 data->tsc = true;
2347 data->tma_packet = pkt_info->packet;
2348 data->tma = true;
2352 data->pip_packet = pkt_info->packet;
2353 data->pip = true;
2357 data->vmcs_packet = pkt_info->packet;
2358 data->vmcs = true;
2362 data->psbend = true;
2402 struct intel_pt_ovf_fup_info *data = pkt_info->data;
2407 return !--(data->max_lookahead);
2408 data->found = pkt_info->packet.type == INTEL_PT_FUP;
2414 struct intel_pt_ovf_fup_info data = {
2419 intel_pt_pkt_lookahead(decoder, intel_pt_ovf_fup_lookahead_cb, &data);
2420 return data.found;
2426 struct intel_pt_vm_tsc_info *data = pkt_info->data;
2430 return !--(data->max_lookahead);
2433 data->tma_packet = pkt_info->packet;
2434 data->tma = true;
2489 struct intel_pt_vm_tsc_info *data)
2491 uint32_t ctc = data->tma_packet.payload;
2492 uint32_t fc = data->tma_packet.count;
2496 data->ctc_delta, data->last_ctc);
2510 * The buffer is mmapped from the data file, so this also updates the
2511 * data file.
2550 struct intel_pt_vm_tsc_info *data)
2552 memset(data, 0, sizeof(*data));
2553 data->ctc_delta = decoder->ctc_delta;
2554 data->last_ctc = decoder->last_ctc;
2555 intel_pt_pkt_lookahead(decoder, intel_pt_vm_psb_lookahead_cb, data);
2556 if (data->tsc && !data->psbend)
2558 decoder->in_psb = data->psbend;
2562 struct intel_pt_vm_tsc_info *data,
2571 if (data->pip) {
2572 if (pip_in_vm(&data->pip_packet)) { /* Guest */
2597 struct intel_pt_vm_tsc_info *data)
2610 /* Already have 'data' for the in_psb case */
2612 memset(data, 0, sizeof(*data));
2613 data->ctc_delta = decoder->ctc_delta;
2614 data->last_ctc = decoder->last_ctc;
2615 data->max_lookahead = 16;
2616 intel_pt_pkt_lookahead(decoder, intel_pt_tma_lookahead_cb, data);
2618 data->pip = true;
2619 data->pip_packet.payload = decoder->pip_payload;
2624 if (!data->tma) {
2629 vmcs = data->vmcs ? data->vmcs_packet.payload : decoder->vmcs;
2633 vmcs_info = decoder->findnew_vmcs_info(decoder->data, vmcs);
2639 intel_pt_vm_tm_corr_first_tsc(decoder, data, vmcs_info, host_tsc);
2643 expected_tsc = intel_pt_expected_tsc(decoder, data);
2648 if (data->pip) {
2649 if (pip_in_vm(&data->pip_packet)) { /* Guest */
2700 } else if (decoder->in_psb && data->pip && decoder->vm_tm_corr_reliable &&
2705 } else if (decoder->in_psb && data->pip && decoder->vm_tm_corr_same_buf) {
2760 vmcs_info = decoder->findnew_vmcs_info(decoder->data, vmcs);
2803 struct intel_pt_vm_tsc_info data = { .psbend = false };
2808 intel_pt_vm_tm_corr_psb(decoder, &data);
2851 intel_pt_vm_tm_corr_psb(decoder, &data);
2863 intel_pt_vm_tm_corr_tsc(decoder, &data);
2883 data.psbend = false;
3063 struct intel_pt_psb_info *data = pkt_info->data;
3077 if (data->after_psbend) {
3078 data->after_psbend -= 1;
3079 if (!data->after_psbend)
3085 if (data->after_psbend)
3087 if (data->fup || pkt_info->packet.count == 0)
3089 data->fup_packet = pkt_info->packet;
3090 data->fup = true;
3094 if (!data->fup)
3097 data->after_psbend = 6;
3102 if (data->after_psbend)
3103 data->fup = false;
3120 if (data->after_psbend) {
3121 data->after_psbend -= 1;
3122 if (!data->after_psbend)
3181 struct intel_pt_psb_info data = { .fup = false };
3186 intel_pt_pkt_lookahead(decoder, intel_pt_psb_lookahead_cb, &data);
3187 if (!data.fup)
3190 decoder->packet = data.fup_packet;
4242 * Return: A pointer into @buf_b from where non-overlapped data starts
4260 * intel_pt_find_overlap_tsc - determine start of non-overlapped trace data
4266 * @consecutive: returns true if there is data in buf_b that is consecutive
4275 * Return: A pointer into @buf_b from where non-overlapped data starts, or
4276 * @buf_b + @len_b if there is no non-overlapped data.
4322 return buf_b + len_b; /* No PSB in buf_b => no data */
4327 * intel_pt_find_overlap - determine start of non-overlapped trace data.
4333 * @consecutive: returns true if there is data in buf_b that is consecutive
4338 * the data overlaps. Note that, for the purposes of decoding, data is only
4341 * Return: A pointer into @buf_b from where non-overlapped data starts, or
4342 * @buf_b + @len_b if there is no non-overlapped data.
4390 * struct fast_forward_data - data used by intel_pt_ff_cb().
4392 * @buf_timestamp: buffer timestamp of last buffer with trace data earlier than
4403 * @data: opaque pointer to fast forward data (struct fast_forward_data)
4410 static int intel_pt_ff_cb(struct intel_pt_buffer *buffer, void *data)
4412 struct fast_forward_data *d = data;
4461 err = decoder->lookahead(decoder->data, intel_pt_ff_cb, &d);