From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965848AbcIWL1n (ORCPT ); Fri, 23 Sep 2016 07:27:43 -0400 Received: from mga05.intel.com ([192.55.52.43]:28996 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965661AbcIWL1l (ORCPT ); Fri, 23 Sep 2016 07:27:41 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,381,1470726000"; d="scan'208";a="1055295470" From: Alexander Shishkin To: Peter Zijlstra Cc: Ingo Molnar , linux-kernel@vger.kernel.org, vince@deater.net, eranian@google.com, Arnaldo Carvalho de Melo , tglx@linutronix.de, ak@linux.intel.com, Alexander Shishkin Subject: [RFC PATCH 0/6] perf: Add AUX data sampling Date: Fri, 23 Sep 2016 14:27:20 +0300 Message-Id: <20160923112726.5890-1-alexander.shishkin@linux.intel.com> X-Mailer: git-send-email 2.9.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Peter, This is an RFC, I'm not sending the tooling bits in this series, although they can be found here [1]. This series introduces AUX data sampling for perf events, which in case of our instruction/branch tracing PMUs like Intel PT, BTS, CS ETM means execution flow history leading up to a perf event's overflow. The bulk of code is in 4/6, which adds attribute fields, creates kernel events to generate the AUX data, takes samples and takes care of all the tricky. 1/6 and 6/6 may also be considered separately from this series. In particular, I suspect that 6/6 applies today to the architectures that deliver PMIs as IRQs. Mathieu? [1] https://git.kernel.org/cgit/linux/kernel/git/ash/linux.git/log/?h=perf-aux-sampling Alexander Shishkin (6): perf: Move mlock accounting to ring buffer allocation perf: Add api to (de-)allocate AUX buffers for kernel counters perf: Add a helper for looking up pmus by type perf: Add infrastructure for using AUX data in perf samples perf: Disable PMU around address filter adjustment perf: Disable IRQs in address filter sync path include/linux/perf_event.h | 12 ++ include/uapi/linux/perf_event.h | 16 +- kernel/events/core.c | 419 +++++++++++++++++++++++++++++++++------- kernel/events/internal.h | 24 ++- kernel/events/ring_buffer.c | 210 ++++++++++++++++++-- 5 files changed, 598 insertions(+), 83 deletions(-) -- 2.9.3