Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752197AbbKCJQl (ORCPT ); Tue, 3 Nov 2015 04:16:41 -0500 Received: from ozlabs.org ([103.22.144.67]:44982 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751403AbbKCJQh (ORCPT ); Tue, 3 Nov 2015 04:16:37 -0500 Message-ID: <1446542195.23081.5.camel@ellerman.id.au> Subject: Re: [PATCH V3 2/3] perf/powerpc :add support for sampling intr machine state From: Michael Ellerman To: Anju T , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Cc: maddy@linux.vnet.ibm.com, khandual@linux.vnet.ibm.com, sukadev@linux.vnet.ibm.com, acme@redhat.com, dsahern@gmail.com, jolsa@redhat.com, hemant@linux.vnet.ibm.com, naveen.n.rao@linux.vnet.ibm.com Date: Tue, 03 Nov 2015 20:16:35 +1100 In-Reply-To: <1446531002-16582-3-git-send-email-anju@linux.vnet.ibm.com> References: <1446531002-16582-1-git-send-email-anju@linux.vnet.ibm.com> <1446531002-16582-3-git-send-email-anju@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.5-1ubuntu3 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1676 Lines: 48 On Tue, 2015-11-03 at 11:40 +0530, Anju T wrote: > The perf infrastructure uses a bit mask to find out > valid registers to display. Define a register mask > for supported registers defined in asm/perf_regs.h. > The bit positions also correspond to register IDs > which is used by perf infrastructure to fetch the register > values.CONFIG_HAVE_PERF_REGS enables > sampling of the interrupted machine state. > diff --git a/arch/powerpc/perf/perf_regs.c b/arch/powerpc/perf/perf_regs.c > new file mode 100644 > index 0000000..0520492 > --- /dev/null > +++ b/arch/powerpc/perf/perf_regs.c > @@ -0,0 +1,92 @@ > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define PT_REGS_OFFSET(id, r) [id] = offsetof(struct pt_regs, r) > + > +#define REG_RESERVED (~((1ULL << PERF_REG_POWERPC_MAX) - 1)) > + > +static unsigned int pt_regs_offset[PERF_REG_POWERPC_MAX] = { > + PT_REGS_OFFSET(PERF_REG_POWERPC_GPR0, gpr[0]), > + PT_REGS_OFFSET(PERF_REG_POWERPC_GPR1, gpr[1]), > + PT_REGS_OFFSET(PERF_REG_POWERPC_GPR2, gpr[2]), I realise you're following the example of other architectures, but we have almost this exact same structure in ptrace.c, see regoffset_table. It would be really nice if we could share them between ptrace and perf. cheers -- 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/