* [PATCH 09/18] perf annotate s390: Fix perf annotate error -95 (4.10 regression)
[not found] <20170412005215.30135-1-acme@kernel.org>
@ 2017-04-12 0:52 ` Arnaldo Carvalho de Melo
2017-04-12 0:52 ` [PATCH 10/18] perf annotate s390: Implement jump types for perf annotate Arnaldo Carvalho de Melo
1 sibling, 0 replies; 2+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-12 0:52 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Christian Borntraeger, Andreas Krebbel,
Hendrik Brueckner, Martin Schwidefsky, Peter Zijlstra, linux-s390,
stable, #, v4.10+, Arnaldo Carvalho de Melo
From: Christian Borntraeger <borntraeger@de.ibm.com>
since 4.10 perf annotate exits on s390 with an "unknown error -95".
Turns out that commit 786c1b51844d ("perf annotate: Start supporting
cross arch annotation") added a hard requirement for architecture
support when objdump is used but only provided x86 and arm support.
Meanwhile power was added so lets add s390 as well.
While at it make sure to implement the branch and jump types.
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: linux-s390 <linux-s390@vger.kernel.org>
Cc: stable@kernel.org # v4.10+
Fixes: 786c1b51844 "perf annotate: Start supporting cross arch annotation"
Link: http://lkml.kernel.org/r/1491465112-45819-2-git-send-email-borntraeger@de.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/annotate.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index a37032bd137d..bfb2f1d393d5 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -130,6 +130,12 @@ static struct arch architectures[] = {
.name = "powerpc",
.init = powerpc__annotate_init,
},
+ {
+ .name = "s390",
+ .objdump = {
+ .comment_char = '#',
+ },
+ },
};
static void ins__delete(struct ins_operands *ops)
--
2.9.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 10/18] perf annotate s390: Implement jump types for perf annotate
[not found] <20170412005215.30135-1-acme@kernel.org>
2017-04-12 0:52 ` [PATCH 09/18] perf annotate s390: Fix perf annotate error -95 (4.10 regression) Arnaldo Carvalho de Melo
@ 2017-04-12 0:52 ` Arnaldo Carvalho de Melo
1 sibling, 0 replies; 2+ messages in thread
From: Arnaldo Carvalho de Melo @ 2017-04-12 0:52 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-kernel, Christian Borntraeger, Andreas Krebbel,
Hendrik Brueckner, Martin Schwidefsky, Peter Zijlstra, linux-s390,
stable, #, v4.10+, Arnaldo Carvalho de Melo
From: Christian Borntraeger <borntraeger@de.ibm.com>
Implement simple detection for all kind of jumps and branches.
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: linux-s390 <linux-s390@vger.kernel.org>
Cc: stable@kernel.org # v4.10+
Link: http://lkml.kernel.org/r/1491465112-45819-3-git-send-email-borntraeger@de.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/arch/s390/annotate/instructions.c | 30 ++++++++++++++++++++++++++++
tools/perf/util/annotate.c | 2 ++
2 files changed, 32 insertions(+)
create mode 100644 tools/perf/arch/s390/annotate/instructions.c
diff --git a/tools/perf/arch/s390/annotate/instructions.c b/tools/perf/arch/s390/annotate/instructions.c
new file mode 100644
index 000000000000..745b4b1b8b21
--- /dev/null
+++ b/tools/perf/arch/s390/annotate/instructions.c
@@ -0,0 +1,30 @@
+static struct ins_ops *s390__associate_ins_ops(struct arch *arch, const char *name)
+{
+ struct ins_ops *ops = NULL;
+
+ /* catch all kind of jumps */
+ if (strchr(name, 'j') ||
+ !strncmp(name, "bct", 3) ||
+ !strncmp(name, "br", 2))
+ ops = &jump_ops;
+ /* override call/returns */
+ if (!strcmp(name, "bras") ||
+ !strcmp(name, "brasl") ||
+ !strcmp(name, "basr"))
+ ops = &call_ops;
+ if (!strcmp(name, "br"))
+ ops = &ret_ops;
+
+ arch__associate_ins_ops(arch, name, ops);
+ return ops;
+}
+
+static int s390__annotate_init(struct arch *arch)
+{
+ if (!arch->initialized) {
+ arch->initialized = true;
+ arch->associate_instruction_ops = s390__associate_ins_ops;
+ }
+
+ return 0;
+}
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index bfb2f1d393d5..44ed6652b02f 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -108,6 +108,7 @@ static int arch__associate_ins_ops(struct arch* arch, const char *name, struct i
#include "arch/arm64/annotate/instructions.c"
#include "arch/x86/annotate/instructions.c"
#include "arch/powerpc/annotate/instructions.c"
+#include "arch/s390/annotate/instructions.c"
static struct arch architectures[] = {
{
@@ -132,6 +133,7 @@ static struct arch architectures[] = {
},
{
.name = "s390",
+ .init = s390__annotate_init,
.objdump = {
.comment_char = '#',
},
--
2.9.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-04-12 0:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20170412005215.30135-1-acme@kernel.org>
2017-04-12 0:52 ` [PATCH 09/18] perf annotate s390: Fix perf annotate error -95 (4.10 regression) Arnaldo Carvalho de Melo
2017-04-12 0:52 ` [PATCH 10/18] perf annotate s390: Implement jump types for perf annotate Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox