All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: add support for generating bpf prologue on powerpc
@ 2016-05-05 15:23 Naveen N. Rao
  2016-05-06  6:41 ` [tip:perf/core] perf tools powerpc: Add support for generating bpf prologue tip-bot for Naveen N. Rao
  2016-05-07  4:15 ` perf tools: add support for generating bpf prologue on powerpc Michael Ellerman
  0 siblings, 2 replies; 6+ messages in thread
From: Naveen N. Rao @ 2016-05-05 15:23 UTC (permalink / raw)
  To: linux-kernel, linuxppc-dev
  Cc: Wang Nan, Arnaldo Carvalho de Melo, Masami Hiramatsu, Ian Munsie,
	Michael Ellerman

Generalize existing macros to serve the purpose.

Cc: Wang Nan <wangnan0@huawei.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Ian Munsie <imunsie@au1.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
---
With this patch:
    # ./perf test 37
    37: Test BPF filter                                          :
    37.1: Test basic BPF filtering                               : Ok
    37.2: Test BPF prologue generation                           : Ok
    37.3: Test BPF relocation checker                            : Ok

 tools/perf/arch/powerpc/Makefile          |  1 +
 tools/perf/arch/powerpc/util/dwarf-regs.c | 40 +++++++++++++++++++++----------
 2 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/tools/perf/arch/powerpc/Makefile b/tools/perf/arch/powerpc/Makefile
index 56e05f1..cc39309 100644
--- a/tools/perf/arch/powerpc/Makefile
+++ b/tools/perf/arch/powerpc/Makefile
@@ -3,4 +3,5 @@ PERF_HAVE_DWARF_REGS := 1
 endif
 
 HAVE_KVM_STAT_SUPPORT := 1
+PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1
 PERF_HAVE_JITDUMP := 1
diff --git a/tools/perf/arch/powerpc/util/dwarf-regs.c b/tools/perf/arch/powerpc/util/dwarf-regs.c
index 733151c..41bdf95 100644
--- a/tools/perf/arch/powerpc/util/dwarf-regs.c
+++ b/tools/perf/arch/powerpc/util/dwarf-regs.c
@@ -10,19 +10,26 @@
  */
 
 #include <stddef.h>
+#include <errno.h>
+#include <string.h>
 #include <dwarf-regs.h>
-
+#include <linux/ptrace.h>
+#include <linux/kernel.h>
+#include "util.h"
 
 struct pt_regs_dwarfnum {
 	const char *name;
 	unsigned int dwarfnum;
+	unsigned int ptregs_offset;
 };
 
-#define STR(s) #s
-#define REG_DWARFNUM_NAME(r, num) {.name = r, .dwarfnum = num}
-#define GPR_DWARFNUM_NAME(num)	\
-	{.name = STR(%gpr##num), .dwarfnum = num}
-#define REG_DWARFNUM_END {.name = NULL, .dwarfnum = 0}
+#define REG_DWARFNUM_NAME(r, num)					\
+		{.name = STR(%)STR(r), .dwarfnum = num,			\
+		.ptregs_offset = offsetof(struct pt_regs, r)}
+#define GPR_DWARFNUM_NAME(num)						\
+		{.name = STR(%gpr##num), .dwarfnum = num,		\
+		.ptregs_offset = offsetof(struct pt_regs, gpr[num])}
+#define REG_DWARFNUM_END {.name = NULL, .dwarfnum = 0, .ptregs_offset = 0}
 
 /*
  * Reference:
@@ -61,12 +68,12 @@ static const struct pt_regs_dwarfnum regdwarfnum_table[] = {
 	GPR_DWARFNUM_NAME(29),
 	GPR_DWARFNUM_NAME(30),
 	GPR_DWARFNUM_NAME(31),
-	REG_DWARFNUM_NAME("%msr",   66),
-	REG_DWARFNUM_NAME("%ctr",   109),
-	REG_DWARFNUM_NAME("%link",  108),
-	REG_DWARFNUM_NAME("%xer",   101),
-	REG_DWARFNUM_NAME("%dar",   119),
-	REG_DWARFNUM_NAME("%dsisr", 118),
+	REG_DWARFNUM_NAME(msr,   66),
+	REG_DWARFNUM_NAME(ctr,   109),
+	REG_DWARFNUM_NAME(link,  108),
+	REG_DWARFNUM_NAME(xer,   101),
+	REG_DWARFNUM_NAME(dar,   119),
+	REG_DWARFNUM_NAME(dsisr, 118),
 	REG_DWARFNUM_END,
 };
 
@@ -86,3 +93,12 @@ const char *get_arch_regstr(unsigned int n)
 			return roff->name;
 	return NULL;
 }
+
+int regs_query_register_offset(const char *name)
+{
+	const struct pt_regs_dwarfnum *roff;
+	for (roff = regdwarfnum_table; roff->name != NULL; roff++)
+		if (!strcmp(roff->name, name))
+			return roff->ptregs_offset;
+	return -EINVAL;
+}
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [tip:perf/core] perf tools powerpc: Add support for generating bpf prologue
  2016-05-05 15:23 [PATCH] perf tools: add support for generating bpf prologue on powerpc Naveen N. Rao
@ 2016-05-06  6:41 ` tip-bot for Naveen N. Rao
  2016-05-07  4:15 ` perf tools: add support for generating bpf prologue on powerpc Michael Ellerman
  1 sibling, 0 replies; 6+ messages in thread
From: tip-bot for Naveen N. Rao @ 2016-05-06  6:41 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: imunsie, mhiramat, acme, hpa, linux-kernel, naveen.n.rao, tglx,
	wangnan0, mpe, mingo

Commit-ID:  4679bccaa30893ccc5be35c5c5d44f5ab60c0a08
Gitweb:     http://git.kernel.org/tip/4679bccaa30893ccc5be35c5c5d44f5ab60c0a08
Author:     Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
AuthorDate: Thu, 5 May 2016 20:53:19 +0530
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Thu, 5 May 2016 21:03:58 -0300

perf tools powerpc: Add support for generating bpf prologue

Generalize existing macros to serve the purpose.

Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Ian Munsie <imunsie@au1.ibm.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: linuxppc-dev@lists.ozlabs.org
Link: http://lkml.kernel.org/r/1462461799-17518-1-git-send-email-naveen.n.rao@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/arch/powerpc/Makefile          |  1 +
 tools/perf/arch/powerpc/util/dwarf-regs.c | 40 +++++++++++++++++++++----------
 2 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/tools/perf/arch/powerpc/Makefile b/tools/perf/arch/powerpc/Makefile
index 56e05f1..cc39309 100644
--- a/tools/perf/arch/powerpc/Makefile
+++ b/tools/perf/arch/powerpc/Makefile
@@ -3,4 +3,5 @@ PERF_HAVE_DWARF_REGS := 1
 endif
 
 HAVE_KVM_STAT_SUPPORT := 1
+PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET := 1
 PERF_HAVE_JITDUMP := 1
diff --git a/tools/perf/arch/powerpc/util/dwarf-regs.c b/tools/perf/arch/powerpc/util/dwarf-regs.c
index 733151c..41bdf95 100644
--- a/tools/perf/arch/powerpc/util/dwarf-regs.c
+++ b/tools/perf/arch/powerpc/util/dwarf-regs.c
@@ -10,19 +10,26 @@
  */
 
 #include <stddef.h>
+#include <errno.h>
+#include <string.h>
 #include <dwarf-regs.h>
-
+#include <linux/ptrace.h>
+#include <linux/kernel.h>
+#include "util.h"
 
 struct pt_regs_dwarfnum {
 	const char *name;
 	unsigned int dwarfnum;
+	unsigned int ptregs_offset;
 };
 
-#define STR(s) #s
-#define REG_DWARFNUM_NAME(r, num) {.name = r, .dwarfnum = num}
-#define GPR_DWARFNUM_NAME(num)	\
-	{.name = STR(%gpr##num), .dwarfnum = num}
-#define REG_DWARFNUM_END {.name = NULL, .dwarfnum = 0}
+#define REG_DWARFNUM_NAME(r, num)					\
+		{.name = STR(%)STR(r), .dwarfnum = num,			\
+		.ptregs_offset = offsetof(struct pt_regs, r)}
+#define GPR_DWARFNUM_NAME(num)						\
+		{.name = STR(%gpr##num), .dwarfnum = num,		\
+		.ptregs_offset = offsetof(struct pt_regs, gpr[num])}
+#define REG_DWARFNUM_END {.name = NULL, .dwarfnum = 0, .ptregs_offset = 0}
 
 /*
  * Reference:
@@ -61,12 +68,12 @@ static const struct pt_regs_dwarfnum regdwarfnum_table[] = {
 	GPR_DWARFNUM_NAME(29),
 	GPR_DWARFNUM_NAME(30),
 	GPR_DWARFNUM_NAME(31),
-	REG_DWARFNUM_NAME("%msr",   66),
-	REG_DWARFNUM_NAME("%ctr",   109),
-	REG_DWARFNUM_NAME("%link",  108),
-	REG_DWARFNUM_NAME("%xer",   101),
-	REG_DWARFNUM_NAME("%dar",   119),
-	REG_DWARFNUM_NAME("%dsisr", 118),
+	REG_DWARFNUM_NAME(msr,   66),
+	REG_DWARFNUM_NAME(ctr,   109),
+	REG_DWARFNUM_NAME(link,  108),
+	REG_DWARFNUM_NAME(xer,   101),
+	REG_DWARFNUM_NAME(dar,   119),
+	REG_DWARFNUM_NAME(dsisr, 118),
 	REG_DWARFNUM_END,
 };
 
@@ -86,3 +93,12 @@ const char *get_arch_regstr(unsigned int n)
 			return roff->name;
 	return NULL;
 }
+
+int regs_query_register_offset(const char *name)
+{
+	const struct pt_regs_dwarfnum *roff;
+	for (roff = regdwarfnum_table; roff->name != NULL; roff++)
+		if (!strcmp(roff->name, name))
+			return roff->ptregs_offset;
+	return -EINVAL;
+}

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: perf tools: add support for generating bpf prologue on powerpc
  2016-05-05 15:23 [PATCH] perf tools: add support for generating bpf prologue on powerpc Naveen N. Rao
  2016-05-06  6:41 ` [tip:perf/core] perf tools powerpc: Add support for generating bpf prologue tip-bot for Naveen N. Rao
@ 2016-05-07  4:15 ` Michael Ellerman
  2016-05-07 11:13   ` Naveen N. Rao
  2016-05-09 20:14   ` Arnaldo Carvalho de Melo
  1 sibling, 2 replies; 6+ messages in thread
From: Michael Ellerman @ 2016-05-07  4:15 UTC (permalink / raw)
  To: Naveen N. Rao, linux-kernel, linuxppc-dev
  Cc: Arnaldo Carvalho de Melo, Wang Nan, Masami Hiramatsu, Ian Munsie

On Thu, 2016-05-05 at 15:23:19 UTC, "Naveen N. Rao" wrote:
> Generalize existing macros to serve the purpose.
> 
> Cc: Wang Nan <wangnan0@huawei.com>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Masami Hiramatsu <mhiramat@kernel.org>
> Cc: Ian Munsie <imunsie@au1.ibm.com>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> ---
> With this patch:
>     # ./perf test 37
>     37: Test BPF filter                                          :
>     37.1: Test basic BPF filtering                               : Ok
>     37.2: Test BPF prologue generation                           : Ok
>     37.3: Test BPF relocation checker                            : Ok
> 
>  tools/perf/arch/powerpc/Makefile          |  1 +
>  tools/perf/arch/powerpc/util/dwarf-regs.c | 40 +++++++++++++++++++++----------
>  2 files changed, 29 insertions(+), 12 deletions(-)

Looks feasible, and is in powerpc only code, should I take this or acme?

cheers

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: perf tools: add support for generating bpf prologue on powerpc
  2016-05-07  4:15 ` perf tools: add support for generating bpf prologue on powerpc Michael Ellerman
@ 2016-05-07 11:13   ` Naveen N. Rao
  2016-05-09  7:53     ` Michael Ellerman
  2016-05-09 20:14   ` Arnaldo Carvalho de Melo
  1 sibling, 1 reply; 6+ messages in thread
From: Naveen N. Rao @ 2016-05-07 11:13 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: linux-kernel, linuxppc-dev, Arnaldo Carvalho de Melo, Wang Nan,
	Masami Hiramatsu, Ian Munsie

On 2016/05/07 02:15PM, Michael Ellerman wrote:
> On Thu, 2016-05-05 at 15:23:19 UTC, "Naveen N. Rao" wrote:
> > Generalize existing macros to serve the purpose.
> > 
> > Cc: Wang Nan <wangnan0@huawei.com>
> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> > Cc: Masami Hiramatsu <mhiramat@kernel.org>
> > Cc: Ian Munsie <imunsie@au1.ibm.com>
> > Cc: Michael Ellerman <mpe@ellerman.id.au>
> > Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> > ---
> > With this patch:
> >     # ./perf test 37
> >     37: Test BPF filter                                          :
> >     37.1: Test basic BPF filtering                               : Ok
> >     37.2: Test BPF prologue generation                           : Ok
> >     37.3: Test BPF relocation checker                            : Ok
> > 
> >  tools/perf/arch/powerpc/Makefile          |  1 +
> >  tools/perf/arch/powerpc/util/dwarf-regs.c | 40 +++++++++++++++++++++----------
> >  2 files changed, 29 insertions(+), 12 deletions(-)
> 
> Looks feasible, and is in powerpc only code, should I take this or acme?

Hi Michael,
Arnaldo has already pulled this in:
http://article.gmane.org/gmane.linux.kernel/2216051

It would be good if you can consider user stackdump as that depends on 
perf regs support which you have added to powerpc-next:
http://thread.gmane.org/gmane.linux.kernel/2210299/focus=2210749

Thanks,
Naveen

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: perf tools: add support for generating bpf prologue on powerpc
  2016-05-07 11:13   ` Naveen N. Rao
@ 2016-05-09  7:53     ` Michael Ellerman
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Ellerman @ 2016-05-09  7:53 UTC (permalink / raw)
  To: Naveen N. Rao
  Cc: linux-kernel, linuxppc-dev, Arnaldo Carvalho de Melo, Wang Nan,
	Masami Hiramatsu, Ian Munsie

On Sat, 2016-05-07 at 16:43 +0530, Naveen N. Rao wrote:
> On 2016/05/07 02:15PM, Michael Ellerman wrote:
> > On Thu, 2016-05-05 at 15:23:19 UTC, "Naveen N. Rao" wrote:
> > > Generalize existing macros to serve the purpose.
> > > 
> > > Cc: Wang Nan <wangnan0@huawei.com>
> > > Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> > > Cc: Masami Hiramatsu <mhiramat@kernel.org>
> > > Cc: Ian Munsie <imunsie@au1.ibm.com>
> > > Cc: Michael Ellerman <mpe@ellerman.id.au>
> > > Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> > > ---
> > > With this patch:
> > >     # ./perf test 37
> > >     37: Test BPF filter                                          :
> > >     37.1: Test basic BPF filtering                               : Ok
> > >     37.2: Test BPF prologue generation                           : Ok
> > >     37.3: Test BPF relocation checker                            : Ok
> > > 
> > >  tools/perf/arch/powerpc/Makefile          |  1 +
> > >  tools/perf/arch/powerpc/util/dwarf-regs.c | 40 +++++++++++++++++++++----------
> > >  2 files changed, 29 insertions(+), 12 deletions(-)
> > 
> > Looks feasible, and is in powerpc only code, should I take this or acme?
> 
> Hi Michael,
> Arnaldo has already pulled this in:
> http://article.gmane.org/gmane.linux.kernel/2216051

Ah sorry.

> It would be good if you can consider user stackdump as that depends on 
> perf regs support which you have added to powerpc-next:
> http://thread.gmane.org/gmane.linux.kernel/2210299/focus=2210749

Yep I did, it's in next.

https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/commit/?h=next&id=826dccfd238c3eeac379f5f637e5a3ddc7a4bc22

cheers

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: perf tools: add support for generating bpf prologue on powerpc
  2016-05-07  4:15 ` perf tools: add support for generating bpf prologue on powerpc Michael Ellerman
  2016-05-07 11:13   ` Naveen N. Rao
@ 2016-05-09 20:14   ` Arnaldo Carvalho de Melo
  1 sibling, 0 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2016-05-09 20:14 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Naveen N. Rao, linux-kernel, linuxppc-dev, Wang Nan,
	Masami Hiramatsu, Ian Munsie

Em Sat, May 07, 2016 at 02:15:36PM +1000, Michael Ellerman escreveu:
> On Thu, 2016-05-05 at 15:23:19 UTC, "Naveen N. Rao" wrote:
> > Generalize existing macros to serve the purpose.
> > 
> > Cc: Wang Nan <wangnan0@huawei.com>
> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> > Cc: Masami Hiramatsu <mhiramat@kernel.org>
> > Cc: Ian Munsie <imunsie@au1.ibm.com>
> > Cc: Michael Ellerman <mpe@ellerman.id.au>
> > Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
> > ---
> > With this patch:
> >     # ./perf test 37
> >     37: Test BPF filter                                          :
> >     37.1: Test basic BPF filtering                               : Ok
> >     37.2: Test BPF prologue generation                           : Ok
> >     37.3: Test BPF relocation checker                            : Ok
> > 
> >  tools/perf/arch/powerpc/Makefile          |  1 +
> >  tools/perf/arch/powerpc/util/dwarf-regs.c | 40 +++++++++++++++++++++----------
> >  2 files changed, 29 insertions(+), 12 deletions(-)
> 
> Looks feasible, and is in powerpc only code, should I take this or acme?

Its upstream already :-)

- Arnaldo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-05-09 20:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-05 15:23 [PATCH] perf tools: add support for generating bpf prologue on powerpc Naveen N. Rao
2016-05-06  6:41 ` [tip:perf/core] perf tools powerpc: Add support for generating bpf prologue tip-bot for Naveen N. Rao
2016-05-07  4:15 ` perf tools: add support for generating bpf prologue on powerpc Michael Ellerman
2016-05-07 11:13   ` Naveen N. Rao
2016-05-09  7:53     ` Michael Ellerman
2016-05-09 20:14   ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.