Tags: seth1002/processor-trace
Tags
version: bump major version number
Changes:
- add pt_insn_asid() and pt_blk_asid()
- add event system
- add resumed to struct pt_event.variant.enabled
- add pt_insn_event() and pt_blk_event()
- remove struct pt_insn flags
- add tick events
- add cbr events
- add mnt events
- indicate enabled state in pts_status bit-vector returned by most functions
- indicate overflows while tracing is disabled
- support power event tracing packets
- support ptwrite
- renumber enum pt_packet_type
- move packet decode enums to internal header
- reorder iclass and isid in struct pt_insn
- add errors pte_overflow and pte_bad_file
- add sideband correlation library
- support decoding Linux perf_event records
- support correlating Linux perf_event sideband
- add scripts to post-process perf's perf.data file
- support running PTT tests via ctest
- address new gcc and clang warnings
- work around skl014, apl11, apl12
- support cpu 6/142, 6/158, 6/85, 6/122
- add contribution guidelines
- add an image section cache
- add end_on_jump block decoder option
- diagnose unknown cpus with -pte_bad_error
- synchronized at partially consumed PSB
- bug-fixes
- ptunit:
- destroy only initialized test fixtures
- remove temporary files after closing them
- test programs return the number of fails
- ptxed:
- print events
- change relative order of [interrupt] and [aborted]
- add --event:tick request tick events.
- add --sb:compact print sideband records in compact form
- add --sb:verbose print sideband records in verbose form
- add --sb:time print the sideband record's timestamp
- add --sb:filename print the sideband filename
- add --sb:offset print the offset into the sideband file
- add --sb:warn print warnings for all kinds of losses
- add --pevent:primary/secondary <file>[:<from>[-<to>]]
load a perf_event sideband stream from <file>.
an optional offset or range can be given.
- add --pevent:sample-type <val> set perf_event_attr.sample_type
- add --pevent:time-zero <val> set perf_event_mmap_page.time_zero
- add --pevent:time-shift <val> set perf_event_mmap_page.time_shift
- add --pevent:time-mult <val> set perf_event_mmap_page.time_mult
- add --pevent:tsc-offset <val> show perf events <val> ticks earlier.
- add --pevent:kernel-start <val> the start address of the kernel.
- add --pevent:sysroot <path> prepend <path> to sideband filenames.
- add --pevent:kcore <file> load the kernel from a core dump.
- add --pevent:vdso-x64 <file> use <file> as 64-bit vdso.
- add --pevent:vdso-x32 <file> use <file> as x32 vdso.
- add --pevent:vdso-ia32 <file> use <file> as 32-bit vdso.
- reformat output of --verbose
- add --iscache-limit <limit> set the image section cache limit
- ptdump:
- add --sb:compact print sideband records in compact form
- add --sb:verbose print sideband records in verbose form
- add --sb:time print the sideband record's timestamp
- add --sb:filename print the sideband filename
- add --sb:offset print the offset into the sideband file
- add --pevent:primary/secondary <file>[:<from>[-<to>]]
load a perf_event sideband stream from <file>.
an optional offset or range can be given.
- add --pevent:sample-type <val> set perf_event_attr.sample_type
- add --pevent:time-zero <val> set perf_event_mmap_page.time_zero
- add --pevent:time-shift <val> set perf_event_mmap_page.time_shift
- add --pevent:time-mult <val> set perf_event_mmap_page.time_mult
- add --pevent:tsc-offset <val> show perf events <val> ticks earlier.
- add --pevent:kernel-start <val> the start address of the kernel.
- add --pevent:sysroot <path> ignored.
- add --pevent:kcore <file> ignored.
- add --pevent:vdso-x64 <file> ignored.
- add --pevent:vdso-x32 <file> ignored.
- add --pevent:vdso-ia32 <file> ignored.
- pttc:
- add new @sb directives:
primary open a primary sideband file and set as current
secondary open a secondary sideband file and set as current
raw-8 write 8 bit into the current trace/sideband file
raw-16 write 16 bit into the current trace/sideband file
raw-32 write 32 bit into the current trace/sideband file
raw-64 write 64 bit into the current trace/sideband file
pevent-sample_type specify the samples associated with subsequent
pevent directives
pevent-mmap-section describe memory mapping of a yasm section
pevent-lost describe loss of pevent records
pevent-comm describe command being traced
pevent-exit describe thread exit
pevent-fork describe thread create
pevent-aux describe new data in aux buffer
pevent-itrace-start describe that tracing started
pevent-lost-samples describe the loss of sample records
pevent-switch describe a context switch
pevent-switch-cpu-wide describe a context switch
- print name of sideband files
Change-Id: I911466fc953c8cec3bee74ad6811de11ea5777a6
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
version: bump minor version number
Changes:
- add a new block decoder layer
- add a new image section cache and image section identifiers
- add version macros to intel-pt.h
- shrink or split existing image sections on overlap
- add decoder-specific configuration flags
- classify INT, INT1, INT3, and INTO as far calls
- classify VMLAUNCH/VMRESUME as far call and VMCALL as far return
- improve instruction length decode performance
- fix an issue with instructions overlapping image section boundaries
- fix an off-by-one end of trace indication
- fix a bug with TMA for low MTC frequencies
- ptunit:
- avoid using mktempname
- fix leaking of temporary files
- ptdump:
- fix an issue with ':' in filenames
- ptxed:
- allow an offset or range for raw binary files (--raw)
- add --stat:insn and --stat:block to count instructions and blocks
- add --block:show-blocks to print blocks
- add --time to print the estimated TSC at each instruction
- add --check to check instruction decode and classification against XED
- fix an issue with ':' in filenames
- fix a bug with --stat without --quiet
- pttc:
- fix a few memory leaks
Change-Id: Ie810479b6a73fb8743efec56b686a53d8b4bec7d
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
version: bump minor version number
Changes:
- add workarounds for SKD007, SKD010 (SKD014), SKD022, SKD024 (BDM70)
- detect errata for 6/71, 6/78, 6/79, 6/86
- document how to decode trace recorded by the Linux perf tool
- add scripts to support perf-recorded trace decode
- add man pages for API functions
- add install support
- fix instruction decode bugs
- add support for decoding EVEX instructions
- improve instruction decode performance
- image performance improvements
- add separate cmake enables for each component
- add cmake testing support
- fix binding of TIP.PGD with suppressed IP
- fix return compression for zero-displacement calls
- wrap API in extern "C" for improved C++ support
- improve error reporting
- allow the instruction decoder to be resumed after an error
- enable FEATURE_THREADS by default
- ptdump:
- add --no-timingn to skip timing packets
- add --no-cyc to skip CYC packets
- fix a crash when an option argument is omitted
- ptxed:
- support 32-bit ELF
- add timing related options
- add --raw-insn to print the raw instruction bytes
- fix a crash when an option argument is omitted
Change-Id: I8f81249caeb96a76e346b678a66138802f49f9e8
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
libipt: check section boundaries in pt_section_read() When reading from a mapped section, we perform all kinds of overflow checks in the various read functions. And we still missed an overflow on systems with 32-bit pointers. Move the check to pt_section_read() where we check the requested offset against the section size. Also truncate the read request there, if necessary. This fixes the overflow on systems with 32-bit pointers. Change-Id: I3c4591dcde113e2696347298af5ad3671ef0e41c Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
libipt: skd010/skd014
SKD010: Intel(R) PT FUP May be Dropped After OVF.
Some Intel PT (Intel Processor Trace) OVF (Overflow) packets may not
be followed by a FUP (Flow Update Packet) or TIP.PGE (Target IP
Packet, Packet Generation Enable).
Same as SKD014.
Change-Id: I2ce3d7c705b20697898d444e96d430fe61f5ad3f
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
version: bump minor version number
Changes:
- support the new SDM version
- cycle-accurate timing
- trace stop
- vmm tracing support
- new IP compression variants
- add workarounds for BDM70 and BDM64
- improve backwards compatibility
- pt_qry_event() now takes a size argument
- pt_insn_next() now takes a size argument
- pt_pkt_next() now takes a size argument
- libipt now accepts older (i.e. smaller) configurations
- allow sharing image sections between decoders
- use pt_image_copy() to share the underlying sections
- image sections are mapped lazily and unmapped automatically
using a LRU cache
- image sections are use-counted and automatically deleted
- add a new cmake option FEATURE_THREADS
When ON, section use counting and map/unmap are thread-safe
- remove the FEATURE_MMAP cmake option
- image sections are mmapped by default
- image sections are now mmapped also on Windows
- fall back to fread() if mmap fails
- remove pt_configure()
Use pt_config_init() to zero-initialize the configuration, fill in the
required fields, and call pt_cpu_errata()
- indicate the upcoming end of the trace
- pt_insn_*() functions now return a status bit-vector similar to
pt_qry_*() functions.
- events now have timing information
- return -pte_internal for NULL pointers in internal interfaces
- fix overflow handling
- replace check with ptunit
- ignore whitespace when comparing pttc test outputs
- instruction decode now fails reliably when the execution mode is not known
- fix missing doxygen escapes in intel-pt.h
- add new errors pte_bad_image and pte_not_supported
- add pt_*_get_config() for querying the decoder's configuration
- add pt_insn_get_sync_offset()
- fix a bug where two back-to-back paging events were bound to the
same instruction
- ptdump and ptxed now print all integers as hex without 0x prefix
- ptdump:
- change the output format
- add a new option --exec-mode to show the resulting execution mode
for mode.exec packets
- pttc:
- fix a memory leak where an encoder was leaked for each directive
- allow tools options to be specified in the test
- fix a bug where --no-sync wouldn't correctly sync at the beginning
of the trace file
- ptxed:
- libxed is now linked statically
- continue decoding after a synchronization error
- add a new option --offset to print the offset into the trace file
at the beginning of each line
Change-Id: I8bb8cf3340ce431d2a82c4386612a138f3ab9934
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>