Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965207Ab3DRC7U (ORCPT ); Wed, 17 Apr 2013 22:59:20 -0400 Received: from e23smtp08.au.ibm.com ([202.81.31.141]:44146 "EHLO e23smtp08.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965054Ab3DRC7S (ORCPT ); Wed, 17 Apr 2013 22:59:18 -0400 Message-ID: <516F6165.9070205@linux.vnet.ibm.com> Date: Thu, 18 Apr 2013 08:28:45 +0530 From: Anshuman Khandual User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 MIME-Version: 1.0 To: Michael Ellerman CC: linuxppc-dev@ozlabs.org, mikey@neuling.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH V2 5/5] powerpc, perf: Enable branch stack sampling framework support with BHRB References: <1366127650-1952-1-git-send-email-khandual@linux.vnet.ibm.com> <1366127650-1952-6-git-send-email-khandual@linux.vnet.ibm.com> <20130417070852.GA29203@concordia> <516E9096.70906@linux.vnet.ibm.com> In-Reply-To: <516E9096.70906@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Content-Scanned: Fidelis XPS MAILER x-cbid: 13041802-5140-0000-0000-0000030CDFD3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2493 Lines: 71 On 04/17/2013 05:37 PM, Anshuman Khandual wrote: > On 04/17/2013 12:38 PM, Michael Ellerman wrote: >> On Tue, Apr 16, 2013 at 09:24:10PM +0530, Anshuman Khandual wrote: >>> This patch provides basic enablement for perf branch stack sampling framework >>> on POWER8 processor with a new PMU feature called BHRB (Branch History Rolling >>> Buffer). >>> >>> Signed-off-by: Anshuman Khandual >>> --- >>> arch/powerpc/perf/core-book3s.c | 96 +++++++++++++++++++++++++++++++++++-- >>> arch/powerpc/perf/perf_event_bhrb.c | 85 ++++++++++++++++++++++++++++++++ >>> 2 files changed, 178 insertions(+), 3 deletions(-) >>> create mode 100644 arch/powerpc/perf/perf_event_bhrb.c >>> >>> diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c >>> index 4ac6e64..f4d1347 100644 >>> --- a/arch/powerpc/perf/core-book3s.c >>> +++ b/arch/powerpc/perf/core-book3s.c >>> @@ -19,6 +19,8 @@ >>> #include >>> #include >>> >>> +#define BHRB_MAX_ENTRIES 32 >>> + >>> struct cpu_hw_events { >>> int n_events; >>> int n_percpu; >>> @@ -38,11 +40,21 @@ struct cpu_hw_events { >>> >>> unsigned int group_flag; >>> int n_txn_start; >>> + >>> + /* BHRB bits */ >>> + u64 bhrb_filter; /* BHRB HW branch filter */ >>> + int bhrb_users; >>> + void *bhrb_context; >>> + struct perf_branch_stack bhrb_stack; >>> + struct perf_branch_entry bhrb_entries[BHRB_MAX_ENTRIES]; >>> }; >>> + >>> DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events); >>> >>> struct power_pmu *ppmu; >>> >>> +#include "perf_event_bhrb.c" >>> + >> >> Um, why are you doing that? >> > > There was no specific reason for that. > Ahh, I remember it now. The function in the new file uses "cpu_hw_events" structure which is passed during "record_and_restart" data capture phase. Right now cpu_hw_events is not defined in the header file but inside core-book3s.c itself. Solution to this problem could be any of these. (0) Move all the code from the new file perf_event_bhrb.c into core-book3s.c (1) Move cpu_hw_events structure to perf_event_server.h (2) Create additional BHRB processing function inside struct power_pmu and define it for P8 inside power8_pmu.c Regards Anshuman -- 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/