Lines Matching full:timestamp
155 uint64_t timestamp; member
362 * A TSC packet can slip past MTC packets so that the timestamp appears in intel_pt_decoder_new()
369 intel_pt_log("timestamp: mtc_shift %u\n", decoder->mtc_shift); in intel_pt_decoder_new()
370 intel_pt_log("timestamp: tsc_ctc_ratio_n %u\n", decoder->tsc_ctc_ratio_n); in intel_pt_decoder_new()
371 intel_pt_log("timestamp: tsc_ctc_ratio_d %u\n", decoder->tsc_ctc_ratio_d); in intel_pt_decoder_new()
372 intel_pt_log("timestamp: tsc_ctc_mult %u\n", decoder->tsc_ctc_mult); in intel_pt_decoder_new()
373 intel_pt_log("timestamp: tsc_slip %#x\n", decoder->tsc_slip); in intel_pt_decoder_new()
621 decoder->sample_timestamp = decoder->timestamp; in intel_pt_update_sample_time()
630 decoder->timestamp = 0; in intel_pt_reposition()
657 intel_pt_log("Reference timestamp 0x%" PRIx64 "\n", in intel_pt_get_data()
780 uint64_t timestamp; member
811 uint64_t timestamp; in intel_pt_calc_cyc_cb() local
858 timestamp = data->ctc_timestamp + in intel_pt_calc_cyc_cb()
861 timestamp = data->ctc_timestamp + in intel_pt_calc_cyc_cb()
867 if (timestamp < data->timestamp) in intel_pt_calc_cyc_cb()
871 data->timestamp = timestamp; in intel_pt_calc_cyc_cb()
884 timestamp = pkt_info->packet.payload | in intel_pt_calc_cyc_cb()
885 (data->timestamp & (0xffULL << 56)); in intel_pt_calc_cyc_cb()
886 if (data->from_mtc && timestamp < data->timestamp && in intel_pt_calc_cyc_cb()
887 data->timestamp - timestamp < decoder->tsc_slip) in intel_pt_calc_cyc_cb()
889 if (timestamp < data->timestamp) in intel_pt_calc_cyc_cb()
890 timestamp += (1ULL << 56); in intel_pt_calc_cyc_cb()
894 data->tsc_timestamp = timestamp; in intel_pt_calc_cyc_cb()
895 data->timestamp = timestamp; in intel_pt_calc_cyc_cb()
961 cyc_to_tsc = (double)(timestamp - decoder->timestamp) / data->cycle_cnt; in intel_pt_calc_cyc_cb()
965 …intel_pt_log("Timestamp: calculated %g TSC ticks per cycle too big (c.f. CBR-based value %g), pos … in intel_pt_calc_cyc_cb()
974 …intel_pt_log("Timestamp: calculated %g TSC ticks per cycle c.f. CBR-based value %g, pos " x64_fmt … in intel_pt_calc_cyc_cb()
977 …intel_pt_log("Timestamp: calculated %g TSC ticks per cycle c.f. unknown CBR-based value, pos " x64… in intel_pt_calc_cyc_cb()
994 .timestamp = decoder->timestamp, in intel_pt_calc_cyc_to_tsc()
1051 uint64_t timestamp, masked_timestamp; in intel_pt_next_period() local
1053 timestamp = decoder->timestamp + decoder->timestamp_insn_cnt; in intel_pt_next_period()
1054 masked_timestamp = timestamp & decoder->period_mask; in intel_pt_next_period()
1059 timestamp += 1; in intel_pt_next_period()
1060 masked_timestamp = timestamp & decoder->period_mask; in intel_pt_next_period()
1070 return decoder->period_ticks - (timestamp - masked_timestamp); in intel_pt_next_period()
1089 uint64_t timestamp, masked_timestamp; in intel_pt_sample_insn() local
1096 timestamp = decoder->timestamp + decoder->timestamp_insn_cnt; in intel_pt_sample_insn()
1097 masked_timestamp = timestamp & decoder->period_mask; in intel_pt_sample_insn()
1773 static uint64_t intel_pt_8b_tsc(uint64_t timestamp, uint64_t ref_timestamp) in intel_pt_8b_tsc() argument
1775 timestamp |= (ref_timestamp & (0xffULL << 56)); in intel_pt_8b_tsc()
1777 if (timestamp < ref_timestamp) { in intel_pt_8b_tsc()
1778 if (ref_timestamp - timestamp > (1ULL << 55)) in intel_pt_8b_tsc()
1779 timestamp += (1ULL << 56); in intel_pt_8b_tsc()
1781 if (timestamp - ref_timestamp > (1ULL << 55)) in intel_pt_8b_tsc()
1782 timestamp -= (1ULL << 56); in intel_pt_8b_tsc()
1785 return timestamp; in intel_pt_8b_tsc()
1790 uint64_t timestamp) in intel_pt_time_in_range() argument
1798 return timestamp >= decoder->last_reliable_timestamp && in intel_pt_time_in_range()
1799 timestamp < decoder->buf_timestamp; in intel_pt_time_in_range()
1804 uint64_t timestamp; in intel_pt_calc_tsc_timestamp() local
1810 timestamp = intel_pt_8b_tsc(decoder->packet.payload, in intel_pt_calc_tsc_timestamp()
1812 decoder->tsc_timestamp = timestamp; in intel_pt_calc_tsc_timestamp()
1813 decoder->timestamp = timestamp; in intel_pt_calc_tsc_timestamp()
1816 } else if (decoder->timestamp) { in intel_pt_calc_tsc_timestamp()
1817 timestamp = decoder->packet.payload | in intel_pt_calc_tsc_timestamp()
1818 (decoder->timestamp & (0xffULL << 56)); in intel_pt_calc_tsc_timestamp()
1819 decoder->tsc_timestamp = timestamp; in intel_pt_calc_tsc_timestamp()
1820 if (timestamp < decoder->timestamp && in intel_pt_calc_tsc_timestamp()
1821 decoder->timestamp - timestamp < decoder->tsc_slip) { in intel_pt_calc_tsc_timestamp()
1822 intel_pt_log_to("Suppressing backwards timestamp", in intel_pt_calc_tsc_timestamp()
1823 timestamp); in intel_pt_calc_tsc_timestamp()
1824 timestamp = decoder->timestamp; in intel_pt_calc_tsc_timestamp()
1826 if (timestamp < decoder->timestamp) { in intel_pt_calc_tsc_timestamp()
1828 (timestamp + (1ULL << 56) < decoder->buf_timestamp)) { in intel_pt_calc_tsc_timestamp()
1829 intel_pt_log_to("Wraparound timestamp", timestamp); in intel_pt_calc_tsc_timestamp()
1830 timestamp += (1ULL << 56); in intel_pt_calc_tsc_timestamp()
1831 decoder->tsc_timestamp = timestamp; in intel_pt_calc_tsc_timestamp()
1833 intel_pt_log_to("Suppressing bad timestamp", timestamp); in intel_pt_calc_tsc_timestamp()
1834 timestamp = decoder->timestamp; in intel_pt_calc_tsc_timestamp()
1839 (bad || !intel_pt_time_in_range(decoder, timestamp)) && in intel_pt_calc_tsc_timestamp()
1841 p_log("Timestamp out of range"); in intel_pt_calc_tsc_timestamp()
1842 decoder->timestamp = timestamp; in intel_pt_calc_tsc_timestamp()
1847 decoder->cyc_ref_timestamp = decoder->timestamp; in intel_pt_calc_tsc_timestamp()
1853 intel_pt_log_to("Setting timestamp", decoder->timestamp); in intel_pt_calc_tsc_timestamp()
1876 decoder->cyc_cnt_timestamp = decoder->timestamp; in intel_pt_mtc_cyc_cnt_pge()
1897 if (!decoder->pge || decoder->timestamp <= decoder->cyc_cnt_timestamp) in intel_pt_mtc_cyc_cnt_upd()
1900 tsc_delta = decoder->timestamp - decoder->cyc_cnt_timestamp; in intel_pt_mtc_cyc_cnt_upd()
1934 intel_pt_log("CTC timestamp " x64_fmt " last MTC %#x CTC rem %#x\n", in intel_pt_calc_tma()
1940 uint64_t timestamp; in intel_pt_calc_mtc_timestamp() local
1962 timestamp = decoder->ctc_timestamp + in intel_pt_calc_mtc_timestamp()
1965 timestamp = decoder->ctc_timestamp + in intel_pt_calc_mtc_timestamp()
1971 if (timestamp < decoder->timestamp) in intel_pt_calc_mtc_timestamp()
1972 intel_pt_log("Suppressing MTC timestamp " x64_fmt " less than current timestamp " x64_fmt "\n", in intel_pt_calc_mtc_timestamp()
1973 timestamp, decoder->timestamp); in intel_pt_calc_mtc_timestamp()
1975 decoder->timestamp = timestamp; in intel_pt_calc_mtc_timestamp()
1983 decoder->cyc_ref_timestamp = decoder->timestamp; in intel_pt_calc_mtc_timestamp()
1989 intel_pt_log_to("Setting timestamp", decoder->timestamp); in intel_pt_calc_mtc_timestamp()
2003 decoder->cyc_ref_timestamp = decoder->timestamp; in intel_pt_calc_cbr()
2011 uint64_t timestamp = decoder->cyc_ref_timestamp; in intel_pt_calc_cyc_timestamp() local
2024 timestamp += decoder->cycle_cnt * decoder->calc_cyc_to_tsc; in intel_pt_calc_cyc_timestamp()
2026 timestamp += decoder->cycle_cnt * decoder->cbr_cyc_to_tsc; in intel_pt_calc_cyc_timestamp()
2030 if (timestamp < decoder->timestamp) in intel_pt_calc_cyc_timestamp()
2031 intel_pt_log("Suppressing CYC timestamp " x64_fmt " less than current timestamp " x64_fmt "\n", in intel_pt_calc_cyc_timestamp()
2032 timestamp, decoder->timestamp); in intel_pt_calc_cyc_timestamp()
2034 decoder->timestamp = timestamp; in intel_pt_calc_cyc_timestamp()
2038 intel_pt_log_to("Setting timestamp", decoder->timestamp); in intel_pt_calc_cyc_timestamp()
2635 ref_timestamp = decoder->timestamp ? decoder->timestamp : decoder->buf_timestamp; in intel_pt_vm_tm_corr_tsc()
2781 host_tsc = intel_pt_8b_tsc(host_tsc, decoder->timestamp); in intel_pt_vm_tm_corr_pebs_tsc()
2788 p_log("Timestamp out of range"); in intel_pt_vm_tm_corr_pebs_tsc()
2792 host_tsc = decoder->timestamp; in intel_pt_vm_tm_corr_pebs_tsc()
3342 /* Ensure that there is a timestamp */ in intel_pt_walk_trace()
3343 if (!decoder->timestamp) in intel_pt_walk_trace()
3924 if (!decoder->timestamp) in intel_pt_sync()
3925 decoder->timestamp = 1; in intel_pt_sync()
4062 /* Let PSB event always have TSC timestamp */ in intel_pt_decode()
4070 decoder->state.timestamp = decoder->sample_timestamp; in intel_pt_decode()
4391 * @timestamp: timestamp to fast forward towards
4392 * @buf_timestamp: buffer timestamp of last buffer with trace data earlier than
4393 * the fast forward timestamp.
4396 uint64_t timestamp; member
4405 * Determine if @buffer trace is past the fast forward timestamp.
4408 * timestamp, and 0 otherwise.
4427 intel_pt_log("Buffer 1st timestamp " x64_fmt " ref timestamp " x64_fmt "\n", in intel_pt_ff_cb()
4431 * If the buffer contains a timestamp earlier that the fast forward in intel_pt_ff_cb()
4432 * timestamp, then record it, else stop. in intel_pt_ff_cb()
4434 if (tsc < d->timestamp) in intel_pt_ff_cb()
4445 * @timestamp: timestamp to fast forward towards
4447 * Reposition decoder at the last PSB with a timestamp earlier than @timestamp.
4451 int intel_pt_fast_forward(struct intel_pt_decoder *decoder, uint64_t timestamp) in intel_pt_fast_forward() argument
4453 struct fast_forward_data d = { .timestamp = timestamp }; in intel_pt_fast_forward()
4458 intel_pt_log("Fast forward towards timestamp " x64_fmt "\n", timestamp); in intel_pt_fast_forward()
4460 /* Find buffer timestamp of buffer to fast forward to */ in intel_pt_fast_forward()
4465 /* Walk to buffer with same buffer timestamp */ in intel_pt_fast_forward()
4487 * Walk PSBs while the PSB timestamp is less than the fast forward in intel_pt_fast_forward()
4488 * timestamp. in intel_pt_fast_forward()
4499 * forward, decoding starts at the TSC timestamp. That means in intel_pt_fast_forward()
4503 if (tsc < timestamp) { in intel_pt_fast_forward()
4504 intel_pt_log("Fast forward to next PSB timestamp " x64_fmt "\n", tsc); in intel_pt_fast_forward()