Lines Matching full:tsc

292 	 * A TSC packet can slip past MTC packets so that the timestamp appears  in intel_pt_decoder_new()
294 * cycles, which is certainly less than 0x1000 TSC ticks, but accept in intel_pt_decoder_new()
773 * For now, do not support using TSC packets - refer in intel_pt_calc_cyc_cb()
859 …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()
868 …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()
871 …intel_pt_log("Timestamp: calculated %g TSC ticks per cycle c.f. unknown CBR-based value, pos " x64… in intel_pt_calc_cyc_cb()
896 * For now, do not support using TSC packets for at least the reasons: in intel_pt_calc_cyc_to_tsc()
898 * 2) TSC packets within PSB+ can slip against CYC packets in intel_pt_calc_cyc_to_tsc()
2880 * When using only TSC/MTC to compute cycles, IPC can be in intel_pt_decode()
2980 * intel_pt_next_tsc - find and return next TSC.
2983 * @tsc: TSC value returned
2984 * @rem: returns remaining size when TSC is found
2986 * Find a TSC packet in @buf and return the TSC value. This function assumes
2987 * that @buf starts at a PSB and that PSB+ will contain TSC and so stops if a
2990 * Return: %true if TSC is found, false otherwise.
2992 static bool intel_pt_next_tsc(unsigned char *buf, size_t len, uint64_t *tsc, in intel_pt_next_tsc() argument
3004 *tsc = packet.payload; in intel_pt_next_tsc()
3018 * @tsc1: first TSC to compare
3019 * @tsc2: second TSC to compare
3021 * This function compares 7-byte TSC values allowing for the possibility that
3022 * TSC wrapped around. Generally it is not possible to know if TSC has wrapped
3079 * using TSC.
3087 * If the trace contains TSC we can look at the last TSC of @buf_a and the
3088 * first TSC of @buf_b in order to determine if the buffers overlap, and then
3089 * walk forward in @buf_b until a later TSC is found. A precondition is that
3117 return buf_b; /* No TSC in buf_a => assume no overlap */ in intel_pt_find_overlap_tsc()
3121 /* Ignore PSB+ with no TSC */ in intel_pt_find_overlap_tsc()
3125 /* Same TSC, so buffers are consecutive */ in intel_pt_find_overlap_tsc()
3148 * @have_tsc: can use TSC packets to detect overlap
3228 uint64_t tsc; in intel_pt_ff_cb() local
3236 !intel_pt_next_tsc(buf, len, &tsc, &rem)) in intel_pt_ff_cb()
3239 tsc = intel_pt_8b_tsc(tsc, buffer->ref_timestamp); in intel_pt_ff_cb()
3242 tsc, buffer->ref_timestamp); in intel_pt_ff_cb()
3248 if (tsc < d->timestamp) in intel_pt_ff_cb()
3305 uint64_t tsc; in intel_pt_fast_forward() local
3308 if (!intel_pt_next_tsc(buf, len, &tsc, &rem)) in intel_pt_fast_forward()
3310 tsc = intel_pt_8b_tsc(tsc, decoder->buf_timestamp); in intel_pt_fast_forward()
3312 * A TSC packet can slip past MTC packets but, after fast in intel_pt_fast_forward()
3313 * forward, decoding starts at the TSC timestamp. That means in intel_pt_fast_forward()
3317 if (tsc < timestamp) { in intel_pt_fast_forward()
3318 intel_pt_log("Fast forward to next PSB timestamp " x64_fmt "\n", tsc); in intel_pt_fast_forward()