Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750916AbdHRFRV (ORCPT ); Fri, 18 Aug 2017 01:17:21 -0400 Received: from mga04.intel.com ([192.55.52.120]:53719 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750709AbdHRFRU (ORCPT ); Fri, 18 Aug 2017 01:17:20 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,391,1498546800"; d="scan'208";a="301681439" Subject: [PATCH v7 0/2] perf/core: addressing 4x slowdown during per-process profiling of STREAM benchmark on Intel Xeon Phi From: Alexey Budankov To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Alexander Shishkin Cc: Andi Kleen , Kan Liang , Dmitri Prokhorov , Valery Cherepennikov , Mark Rutland , Stephane Eranian , David Carrillo-Cisneros , linux-kernel References: <96c7776f-1f17-a39e-23e9-658596216d6b@linux.intel.com> Organization: Intel Corp. Message-ID: Date: Fri, 18 Aug 2017 08:17:15 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <96c7776f-1f17-a39e-23e9-658596216d6b@linux.intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1205 Lines: 33 Hi, This patch set v7 moves event groups into rb trees and implements skipping to the current CPU's list on hrtimer interrupt. Events allocated for the same CPU are still kept in a linked list of the event directly attached to the tree because it is unclear how to implement fast iteration thru events allocated for the same CPU when they are all attached to a tree employing additional 64bit index as a secondary treee key. The patch set addresses feeback captured previously. Specifically API with a callback in signature is replaced by a macro what reduced the size of adapting changes. Patches in the set are expected to be applied one after another in the mentioned order and they are logically split into two parts to simplify the review process. For more background details and feedback of the patch set please refer to v6 and older. Thanks, Alexey --- Alexey Budankov (2): perf/core: use rb trees for pinned/flexible groups perf/core: add mux switch to skip to the current CPU's events list on mux interrupt include/linux/perf_event.h | 19 +- kernel/events/core.c | 463 ++++++++++++++++++++++++++++++++++----------- 2 files changed, 364 insertions(+), 118 deletions(-)