Modern Intel Core CPUs (5th and 6th generation) have a Intel Processor Trace (PT) feature to trace branch execution with low overhead. This is useful for performance analysis and debugging.
simple-pt is a simple standalone driver and decoder tool to implement PT on Linux. Starting with Linux 4.1 Linux has an integrated PT implementation in perf (see https://lwn.net/Articles/648154/). simple-pt is an alternative implementation. It has many disadvantages over the perf PT implementation, such as: - needs to run as root - no long term tracing or sampling with interrupts - no support for interactive debugging (use gdb 7.10 on perf for that) - no support for histograms - somewhat experimental - not as well supported as perf On the positive side simple-pt is: - simple - standalone. No kernel changes needed. Could be ported to older kernels or other operating systems - easy to modify and experiment with - more ftrace like decoding tool - support for kprobes based triggers - modular “unix style” design with simple tools that do only one thing each - BSD licensed Example output: % sptcmd -c tcall taskset -c 0 ./tcall cpu 0 offset 1027688, 1003 KB, writing to ptout.0 ... Wrote sideband to ptout.sideband % sptdecode --sideband ptout.sideband --pt ptout.0 | less TIME DELTA INSNs OPERATION frequency 32 0 [+0] [+ 1] _dl_aux_init+436 [+ 6] __libc_start_main+455 -> _dl_discover_osversion ... [+ 13] __libc_start_main+446 -> main [+ 9] main+22 -> f1 [+ 4] f1+9 -> f2 [+ 2] f1+19 -> f2 [+ 5] main+22 -> f1 [+ 4] f1+9 -> f2 [+ 2] f1+19 -> f2 [+ 5] main+22 -> f1 ... Available from https://github.com/andikleen/simple-pt -- a...@linux.intel.com -- Speaking for myself only. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/