From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753391AbcD2Etc (ORCPT ); Fri, 29 Apr 2016 00:49:32 -0400 Received: from mail-pf0-f181.google.com ([209.85.192.181]:36320 "EHLO mail-pf0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752992AbcD2Eqk (ORCPT ); Fri, 29 Apr 2016 00:46:40 -0400 From: David Carrillo-Cisneros To: Peter Zijlstra , Alexander Shishkin , Arnaldo Carvalho de Melo , Ingo Molnar Cc: Vikas Shivappa , Matt Fleming , Tony Luck , Stephane Eranian , Paul Turner , David Carrillo-Cisneros , x86@kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 20/32] x86/intel/cqm: use PERF_CGROUP_NO_RECURSION in CQM Date: Thu, 28 Apr 2016 21:43:26 -0700 Message-Id: <1461905018-86355-21-git-send-email-davidcc@google.com> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 In-Reply-To: <1461905018-86355-1-git-send-email-davidcc@google.com> References: <1461905018-86355-1-git-send-email-davidcc@google.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The CQM hardware is not compatible with the way generic code handles cgroup hierarchies (simultaneously adding the events of for all ancestors of the current cgroup). This version of Intel's CQM driver handles cgroup hierarchy internally. Set PERF_CGROUP_NO_RECURSION for llc_occupancy events to signal perf's generic code to not add events for ancestors of current cgroup. Reviewed-by: Stephane Eranian Signed-off-by: David Carrillo-Cisneros --- arch/x86/events/intel/cqm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/x86/events/intel/cqm.c b/arch/x86/events/intel/cqm.c index dcf7f4a..d8d3191 100644 --- a/arch/x86/events/intel/cqm.c +++ b/arch/x86/events/intel/cqm.c @@ -2489,6 +2489,14 @@ static int intel_cqm_event_init(struct perf_event *event) INIT_LIST_HEAD(&event->hw.cqm_event_groups_entry); INIT_LIST_HEAD(&event->hw.cqm_event_group_entry); + /* + * CQM driver handles cgroup recursion and since only noe + * RMID can be programmed at the time in each core, then + * it is incompatible with the way generic code handles + * cgroup hierarchies. + */ + event->pmu_event_flags |= PERF_CGROUP_NO_RECURSION; + mutex_lock(&cqm_mutex); -- 2.8.0.rc3.226.g39d4020