Lines Matching +full:no +full:- +full:sync +full:- +full:mode
2 * Copyright (c) 2013-2019, Intel Corporation
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
44 * - Version
45 * - Errors
46 * - Configuration
47 * - Packet encoder / decoder
48 * - Query decoder
49 * - Traced image
50 * - Instruction flow decoder
51 * - Block decoder
118 /* No error. Everything is OK. */
127 /* Decoder out of sync. */
142 /* No packet matching the query to be found. */
151 /* There is no IP. */
157 /* There is no memory mapped at the requested address. */
163 /* No wall-clock time is available. */
166 /* No core:bus ratio available. */
207 return (status >= 0) ? pte_ok : (enum pt_error_code) -status;
250 * includes FUP and MODE.Exec packets.
270 * Under complex micro-architectural conditions, an Intel PT (Processor
272 * multi-byte CYC (Cycle Count) packet, instead of any remaining bytes
285 * VM-entry MSR-load area includes an entry for the IA32_RTIT_CTL MSR.
315 * Packet - Packet Generaton Enable) and TIP.PGD (Target IP Packet -
329 * OVF may be followed by a TIP.PGD (Target Instruction Pointer - Packet
348 /** A collection of decoder-specific configuration flags. */
452 /** The user-defined context for this configuration. */
489 /** A collection of decoder-specific flags. */
497 /** Zero-initialize an Intel PT configuration. */
502 config->size = sizeof(*config);
510 * Returns -pte_invalid if \@errata or \@cpu is NULL.
511 * Returns -pte_bad_cpu if \@cpu is not known.
562 * No payload. The IP has been suppressed.
582 /** An execution mode. */
590 /** Mode packet leaves. */
596 /** A TNT-8 or TNT-64 packet. */
610 /** Zero-extended payload ip. */
614 /** A mode.exec packet. */
616 /** The mode.exec csl bit. */
619 /** The mode.exec csd bit. */
626 if (packet->csl)
627 return packet->csd ? ptem_unknown : ptem_64bit;
629 return packet->csd ? ptem_32bit : ptem_16bit;
633 pt_set_exec_mode(enum pt_exec_mode mode) argument
637 switch (mode) {
662 /** A mode.tsx packet. */
664 /** The mode.tsx intx bit. */
667 /** The mode.tsx abrt bit. */
671 /** A mode packet. */
673 /** Mode leaf. */
676 /** Mode bits. */
678 /** Packet: mode.exec. */
681 /** Packet: mode.tsx. */
691 /** The non-root bit. */
761 /** The resolved thread C-state. */
764 /** The resolved thread sub C-state. */
767 /** A flag indicating whether the C-state entry was initiated by h/w. */
773 /** The core C-state at the time of the wake. */
776 /** The deepest core C-state achieved during sleep. */
781 * - due to external interrupt received.
785 /** - due to store to monitored address. */
788 /** - due to h/w autonomous condition such as HDC. */
817 return -pte_bad_packet;
820 return -pte_internal;
828 /** Optional pointer to a user-defined structure. */
845 /** Packets: pad, ovf, psb, psbend, stop - no payload. */
847 /** Packet: tnt-8, tnt-64. */
853 /** Packet: mode. */
854 struct pt_packet_mode mode; member
928 * Returns -pte_eos if the given offset is behind the end of the trace buffer.
929 * Returns -pte_invalid if \@encoder is NULL.
942 * Returns -pte_invalid if \@encoder or \@offset is NULL.
949 * Returns a non-null pointer on success, NULL if \@encoder is NULL.
967 * Returns -pte_bad_opc if \@packet.type is not known.
968 * Returns -pte_bad_packet if \@packet's payload is invalid.
969 * Returns -pte_eos if \@encoder reached the end of the Intel PT buffer.
970 * Returns -pte_invalid if \@encoder or \@packet is NULL.
1007 * Returns -pte_eos if no further synchronization point is found.
1008 * Returns -pte_invalid if \@decoder is NULL.
1019 * Returns -pte_eos if the given offset is behind the end of the trace buffer.
1020 * Returns -pte_invalid if \@decoder is NULL.
1033 * Returns -pte_invalid if \@decoder or \@offset is NULL.
1034 * Returns -pte_nosync if \@decoder is out of sync.
1047 * Returns -pte_invalid if \@decoder or \@offset is NULL.
1048 * Returns -pte_nosync if \@decoder is out of sync.
1056 * Returns a non-null pointer on success, NULL if \@decoder is NULL.
1072 * Returns -pte_bad_opc if the packet is unknown.
1073 * Returns -pte_bad_packet if an unknown packet payload is encountered.
1074 * Returns -pte_eos if \@decoder reached the end of the Intel PT buffer.
1075 * Returns -pte_invalid if \@decoder or \@packet is NULL.
1076 * Returns -pte_nosync if \@decoder is out of sync.
1095 /** There is no more trace data available. */
1120 /* An execution mode change. */
1256 * vmx non-root (guest) mode.
1276 * vmx non-root (guest) mode.
1295 /** Event: exec mode. */
1297 /** The execution mode. */
1298 enum pt_exec_mode mode; member
1312 /** A flag indicating speculative execution mode. */
1323 * The address is zero-extended with the lower 12 bits
1337 * The address is zero-extended with the lower 12 bits
1383 /** The resolved thread C-state. */
1386 /** The resolved thread sub C-state. */
1389 /** A flag indicating whether the C-state entry was
1397 /** The core C-state at the time of the wake. */
1400 /** The deepest core C-state achieved during sleep. */
1405 * - due to external interrupt received.
1409 /** - due to store to monitored address. */
1412 /** - due to h/w autonomous condition such as HDC. */
1488 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
1491 * Returns -pte_bad_opc if an unknown packet is encountered.
1492 * Returns -pte_bad_packet if an unknown packet payload is encountered.
1493 * Returns -pte_eos if no further synchronization point is found.
1494 * Returns -pte_invalid if \@decoder is NULL.
1508 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
1511 * Returns -pte_bad_opc if an unknown packet is encountered.
1512 * Returns -pte_bad_packet if an unknown packet payload is encountered.
1513 * Returns -pte_eos if \@offset lies outside of \@decoder's trace buffer.
1514 * Returns -pte_eos if \@decoder reaches the end of its trace buffer.
1515 * Returns -pte_invalid if \@decoder is NULL.
1516 * Returns -pte_nosync if there is no syncpoint at \@offset.
1529 * Returns -pte_invalid if \@decoder or \@offset is NULL.
1530 * Returns -pte_nosync if \@decoder is out of sync.
1543 * Returns -pte_invalid if \@decoder or \@offset is NULL.
1544 * Returns -pte_nosync if \@decoder is out of sync.
1552 * Returns a non-null pointer on success, NULL if \@decoder is NULL.
1562 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
1565 * Returns -pte_bad_opc if an unknown packet is encountered.
1566 * Returns -pte_bad_packet if an unknown packet payload is encountered.
1567 * Returns -pte_bad_query if no conditional branch is found.
1568 * Returns -pte_eos if decoding reached the end of the Intel PT buffer.
1569 * Returns -pte_invalid if \@decoder or \@taken is NULL.
1570 * Returns -pte_nosync if \@decoder is out of sync.
1580 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
1583 * Returns -pte_bad_opc if an unknown packet is encountered.
1584 * Returns -pte_bad_packet if an unknown packet payload is encountered.
1585 * Returns -pte_bad_query if no indirect branch is found.
1586 * Returns -pte_eos if decoding reached the end of the Intel PT buffer.
1587 * Returns -pte_invalid if \@decoder or \@ip is NULL.
1588 * Returns -pte_nosync if \@decoder is out of sync.
1599 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
1602 * Returns -pte_bad_opc if an unknown packet is encountered.
1603 * Returns -pte_bad_packet if an unknown packet payload is encountered.
1604 * Returns -pte_bad_query if no event is found.
1605 * Returns -pte_eos if decoding reached the end of the Intel PT buffer.
1606 * Returns -pte_invalid if \@decoder or \@event is NULL.
1607 * Returns -pte_invalid if \@size is too small.
1608 * Returns -pte_nosync if \@decoder is out of sync.
1620 * to correlate with other TSC-based time sources. In this case, -pte_no_time
1623 * Some timing-related packets may need to be dropped (mostly due to missing
1632 * Returns -pte_invalid if \@decoder or \@time is NULL.
1633 * Returns -pte_no_time if there has not been a TSC packet.
1646 * Returns -pte_invalid if \@decoder or \@cbr is NULL.
1647 * Returns -pte_no_cbr if there has not been a CBR packet.
1664 /** The size of this object - set to sizeof(struct pt_asid). */
1683 asid->size = sizeof(*asid);
1684 asid->cr3 = pt_asid_no_cr3;
1685 asid->vmcs = pt_asid_no_vmcs;
1710 * Set the limit for a section cache in bytes. A non-zero limit will keep the
1715 * Returns -pte_invalid if \@iscache is NULL.
1722 * Returns a pointer to \@iscache's name or NULL if there is no name.
1740 * Returns -pte_invalid if \@iscache or \@filename is NULL.
1741 * Returns -pte_invalid if \@offset is too big.
1760 * Returns -pte_invalid if \@iscache or \@buffer is NULL.
1761 * Returns -pte_invalid if \@size is zero.
1762 * Returns -pte_nomap if \@vaddr is not contained in section \@isid.
1763 * Returns -pte_bad_image if \@iscache does not contain \@isid.
1790 * Returns a pointer to \@image's name or NULL if there is no name.
1800 * fields are considered when comparing with other address-spaces. Use this
1810 * Returns -pte_invalid if \@image or \@filename is NULL.
1811 * Returns -pte_invalid if \@offset is too big.
1827 * Returns -pte_invalid if \@image or \@iscache is NULL.
1828 * Returns -pte_bad_image if \@iscache does not contain \@isid.
1842 * Returns -pte_invalid if \@image or \@src is NULL.
1855 * Returns -pte_invalid if \@image or \@filename is NULL.
1869 * Returns -pte_invalid if \@image is NULL.
1895 * Returns -pte_invalid if \@image is NULL.
1931 /* The instruction is a call-like far transfer.
1936 /* The instruction is a return-like far transfer.
1941 /* The instruction is a jump-like far transfer.
1969 /** The execution mode. */
1970 enum pt_exec_mode mode; member
1983 * - the instruction was executed speculatively.
1987 /** - this instruction is truncated in its image section.
2024 * Returns -pte_bad_opc if an unknown packet is encountered.
2025 * Returns -pte_bad_packet if an unknown packet payload is encountered.
2026 * Returns -pte_eos if no further synchronization point is found.
2027 * Returns -pte_invalid if \@decoder is NULL.
2039 * Returns -pte_bad_opc if an unknown packet is encountered.
2040 * Returns -pte_bad_packet if an unknown packet payload is encountered.
2041 * Returns -pte_eos if \@offset lies outside of \@decoder's trace buffer.
2042 * Returns -pte_eos if \@decoder reaches the end of its trace buffer.
2043 * Returns -pte_invalid if \@decoder is NULL.
2044 * Returns -pte_nosync if there is no syncpoint at \@offset.
2057 * Returns -pte_invalid if \@decoder or \@offset is NULL.
2058 * Returns -pte_nosync if \@decoder is out of sync.
2069 * Returns -pte_invalid if \@decoder or \@offset is NULL.
2070 * Returns -pte_nosync if \@decoder is out of sync.
2078 * The returned image may be modified as long as no decoder that uses this
2095 * Return -pte_invalid if \@decoder is NULL.
2102 * Returns a non-null pointer on success, NULL if \@decoder is NULL.
2114 * to correlate with other TSC-based time sources. In this case, -pte_no_time
2117 * Some timing-related packets may need to be dropped (mostly due to missing
2126 * Returns -pte_invalid if \@decoder or \@time is NULL.
2127 * Returns -pte_no_time if there has not been a TSC packet.
2140 * Returns -pte_invalid if \@decoder or \@cbr is NULL.
2141 * Returns -pte_no_cbr if there has not been a CBR packet.
2151 * bytes will be copied and \@asid->size will be set to the actual size of the
2156 * Returns -pte_invalid if \@decoder or \@asid is NULL.
2167 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
2174 * Returns -pte_bad_context if the decoder encountered an unexpected packet.
2175 * Returns -pte_bad_opc if the decoder encountered unknown packets.
2176 * Returns -pte_bad_packet if the decoder encountered unknown packet payloads.
2177 * Returns -pte_bad_query if the decoder got out of sync.
2178 * Returns -pte_eos if decoding reached the end of the Intel PT buffer.
2179 * Returns -pte_invalid if \@decoder or \@insn is NULL.
2180 * Returns -pte_nomap if the memory at the instruction address can't be read.
2181 * Returns -pte_nosync if \@decoder is out of sync.
2192 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
2195 * Returns -pte_bad_query if there is no event.
2196 * Returns -pte_invalid if \@decoder or \@event is NULL.
2197 * Returns -pte_invalid if \@size is too small.
2219 * This can be used for error-detection.
2231 /** The execution mode for all instructions in this block. */
2232 enum pt_exec_mode mode; member
2261 * - all instructions in this block were executed speculatively.
2265 /** - the last instruction in this block is truncated.
2304 * Returns -pte_bad_opc if an unknown packet is encountered.
2305 * Returns -pte_bad_packet if an unknown packet payload is encountered.
2306 * Returns -pte_eos if no further synchronization point is found.
2307 * Returns -pte_invalid if \@decoder is NULL.
2319 * Returns -pte_bad_opc if an unknown packet is encountered.
2320 * Returns -pte_bad_packet if an unknown packet payload is encountered.
2321 * Returns -pte_eos if \@offset lies outside of \@decoder's trace buffer.
2322 * Returns -pte_eos if \@decoder reaches the end of its trace buffer.
2323 * Returns -pte_invalid if \@decoder is NULL.
2324 * Returns -pte_nosync if there is no syncpoint at \@offset.
2337 * Returns -pte_invalid if \@decoder or \@offset is NULL.
2338 * Returns -pte_nosync if \@decoder is out of sync.
2349 * Returns -pte_invalid if \@decoder or \@offset is NULL.
2350 * Returns -pte_nosync if \@decoder is out of sync.
2374 * Return -pte_invalid if \@decoder is NULL.
2381 * Returns a non-null pointer on success, NULL if \@decoder is NULL.
2393 * to correlate with other TSC-based time sources. In this case, -pte_no_time
2396 * Some timing-related packets may need to be dropped (mostly due to missing
2405 * Returns -pte_invalid if \@decoder or \@time is NULL.
2406 * Returns -pte_no_time if there has not been a TSC packet.
2419 * Returns -pte_invalid if \@decoder or \@cbr is NULL.
2420 * Returns -pte_no_cbr if there has not been a CBR packet.
2430 * bytes will be copied and \@asid->size will be set to the actual size of the
2435 * Returns -pte_invalid if \@decoder or \@asid is NULL.
2447 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
2454 * Returns -pte_bad_context if the decoder encountered an unexpected packet.
2455 * Returns -pte_bad_opc if the decoder encountered unknown packets.
2456 * Returns -pte_bad_packet if the decoder encountered unknown packet payloads.
2457 * Returns -pte_bad_query if the decoder got out of sync.
2458 * Returns -pte_eos if decoding reached the end of the Intel PT buffer.
2459 * Returns -pte_invalid if \@decoder or \@block is NULL.
2460 * Returns -pte_nomap if the memory at the instruction address can't be read.
2461 * Returns -pte_nosync if \@decoder is out of sync.
2472 * Returns a non-negative pt_status_flag bit-vector on success, a negative error
2475 * Returns -pte_bad_query if there is no event.
2476 * Returns -pte_invalid if \@decoder or \@event is NULL.
2477 * Returns -pte_invalid if \@size is too small.