Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750874AbbHQEbf (ORCPT ); Mon, 17 Aug 2015 00:31:35 -0400 Received: from one.firstfloor.org ([193.170.194.197]:48298 "EHLO one.firstfloor.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750747AbbHQEbd (ORCPT ); Mon, 17 Aug 2015 00:31:33 -0400 Date: Mon, 17 Aug 2015 06:31:30 +0200 From: Andi Kleen To: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: Announcing simple-pt -- a simple Processor Trace implementation for Linux Message-ID: <20150817043130.GI1747@two.firstfloor.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2349 Lines: 58 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 -- ak@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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/