* [PATCH 0/2] perf/s390: fix (and enhance) perf annotate @ 2017-04-06 7:51 Christian Borntraeger 2017-04-06 7:51 ` [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Christian Borntraeger 2017-04-06 7:51 ` [PATCH 2/2] perf/s390: implement jump types for perf annotate Christian Borntraeger 0 siblings, 2 replies; 8+ messages in thread From: Christian Borntraeger @ 2017-04-06 7:51 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Hendrik Brueckner, Andreas Krebbel, Peter Zijlstra, Ingo Molnar, linux-s390, Martin Schwidefsky, Christian Borntraeger Arnaldo, since 4.10 perf annotate fails with error -95 on s390. This contains a fix for 4.11 (maybe CC stable for 4.10?) and an extension to implement jump detection. Christian Borntraeger (2): s390/perf: fix perf annotate error -95 (4.10 regression) perf/s390: implement jump types for perf annotate tools/perf/arch/s390/annotate/instructions.c | 30 ++++++++++++++++++++++++++++ tools/perf/util/annotate.c | 8 ++++++++ 2 files changed, 38 insertions(+) create mode 100644 tools/perf/arch/s390/annotate/instructions.c -- 2.7.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) 2017-04-06 7:51 [PATCH 0/2] perf/s390: fix (and enhance) perf annotate Christian Borntraeger @ 2017-04-06 7:51 ` Christian Borntraeger 2017-04-07 15:23 ` Arnaldo Carvalho de Melo ` (2 more replies) 2017-04-06 7:51 ` [PATCH 2/2] perf/s390: implement jump types for perf annotate Christian Borntraeger 1 sibling, 3 replies; 8+ messages in thread From: Christian Borntraeger @ 2017-04-06 7:51 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Hendrik Brueckner, Andreas Krebbel, Peter Zijlstra, Ingo Molnar, linux-s390, Martin Schwidefsky, Christian Borntraeger 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> Fixes: 786c1b51844 "perf annotate: Start supporting cross arch annotation" Cc: 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 273f21f..7aa5722 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.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) 2017-04-06 7:51 ` [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Christian Borntraeger @ 2017-04-07 15:23 ` Arnaldo Carvalho de Melo 2017-04-10 9:18 ` Christian Borntraeger 2017-04-11 19:46 ` [tip:perf/urgent] perf annotate s390: Fix " tip-bot for Christian Borntraeger 2017-04-12 5:37 ` [tip:perf/core] " tip-bot for Christian Borntraeger 2 siblings, 1 reply; 8+ messages in thread From: Arnaldo Carvalho de Melo @ 2017-04-07 15:23 UTC (permalink / raw) To: Christian Borntraeger Cc: linux-kernel, Hendrik Brueckner, Andreas Krebbel, Peter Zijlstra, Ingo Molnar, linux-s390, Martin Schwidefsky Em Thu, Apr 06, 2017 at 09:51:51AM +0200, Christian Borntraeger escreveu: > 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 Argh, that was unfortunate, I'll apply your patches and try to remove that restriction, using the defaults previously in place :-\ thanks, - Arnaldo > 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> > Fixes: 786c1b51844 "perf annotate: Start supporting cross arch annotation" > Cc: 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 273f21f..7aa5722 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.7.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) 2017-04-07 15:23 ` Arnaldo Carvalho de Melo @ 2017-04-10 9:18 ` Christian Borntraeger 0 siblings, 0 replies; 8+ messages in thread From: Christian Borntraeger @ 2017-04-10 9:18 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Hendrik Brueckner, Andreas Krebbel, Peter Zijlstra, Ingo Molnar, linux-s390, Martin Schwidefsky On 04/07/2017 05:23 PM, Arnaldo Carvalho de Melo wrote: > Em Thu, Apr 06, 2017 at 09:51:51AM +0200, Christian Borntraeger escreveu: >> 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 > > Argh, that was unfortunate, I'll apply your patches and try to remove > that restriction, using the defaults previously in place :-\ Is there a chance to get this fix into 4.11? (the 2nd patch can certainly wait for the next merge window) > > thanks, > > - Arnaldo > > >> 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> >> Fixes: 786c1b51844 "perf annotate: Start supporting cross arch annotation" >> Cc: 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 273f21f..7aa5722 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.7.4 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [tip:perf/urgent] perf annotate s390: Fix perf annotate error -95 (4.10 regression) 2017-04-06 7:51 ` [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Christian Borntraeger 2017-04-07 15:23 ` Arnaldo Carvalho de Melo @ 2017-04-11 19:46 ` tip-bot for Christian Borntraeger 2017-04-12 5:37 ` [tip:perf/core] " tip-bot for Christian Borntraeger 2 siblings, 0 replies; 8+ messages in thread From: tip-bot for Christian Borntraeger @ 2017-04-11 19:46 UTC (permalink / raw) To: linux-tip-commits Cc: linux-s390, krebbel, tglx, linux-kernel, mingo, acme, brueckner, schwidefsky, hpa, borntraeger, peterz Commit-ID: 3c1a427954399fd1bda1ee7e1b356f47b61cee74 Gitweb: http://git.kernel.org/tip/3c1a427954399fd1bda1ee7e1b356f47b61cee74 Author: Christian Borntraeger <borntraeger@de.ibm.com> AuthorDate: Thu, 6 Apr 2017 09:51:51 +0200 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Fri, 7 Apr 2017 12:33:10 -0300 perf annotate s390: Fix perf annotate error -95 (4.10 regression) 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 273f21f..7aa5722 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) ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [tip:perf/core] perf annotate s390: Fix perf annotate error -95 (4.10 regression) 2017-04-06 7:51 ` [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Christian Borntraeger 2017-04-07 15:23 ` Arnaldo Carvalho de Melo 2017-04-11 19:46 ` [tip:perf/urgent] perf annotate s390: Fix " tip-bot for Christian Borntraeger @ 2017-04-12 5:37 ` tip-bot for Christian Borntraeger 2 siblings, 0 replies; 8+ messages in thread From: tip-bot for Christian Borntraeger @ 2017-04-12 5:37 UTC (permalink / raw) To: linux-tip-commits Cc: hpa, schwidefsky, krebbel, borntraeger, brueckner, acme, linux-s390, tglx, mingo, linux-kernel, peterz Commit-ID: e77852b32d6d4430c68c38aaf73efe5650fa25af Gitweb: http://git.kernel.org/tip/e77852b32d6d4430c68c38aaf73efe5650fa25af Author: Christian Borntraeger <borntraeger@de.ibm.com> AuthorDate: Thu, 6 Apr 2017 09:51:51 +0200 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Tue, 11 Apr 2017 15:23:39 -0300 perf annotate s390: Fix perf annotate error -95 (4.10 regression) 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 a37032b..bfb2f1d 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) ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] perf/s390: implement jump types for perf annotate 2017-04-06 7:51 [PATCH 0/2] perf/s390: fix (and enhance) perf annotate Christian Borntraeger 2017-04-06 7:51 ` [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Christian Borntraeger @ 2017-04-06 7:51 ` Christian Borntraeger 2017-04-12 5:38 ` [tip:perf/core] perf annotate s390: Implement " tip-bot for Christian Borntraeger 1 sibling, 1 reply; 8+ messages in thread From: Christian Borntraeger @ 2017-04-06 7:51 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Hendrik Brueckner, Andreas Krebbel, Peter Zijlstra, Ingo Molnar, linux-s390, Martin Schwidefsky, Christian Borntraeger Implement simple detection for all kind of jumps and branches. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.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 0000000..745b4b1 --- /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 7aa5722..2cc02f6 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.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [tip:perf/core] perf annotate s390: Implement jump types for perf annotate 2017-04-06 7:51 ` [PATCH 2/2] perf/s390: implement jump types for perf annotate Christian Borntraeger @ 2017-04-12 5:38 ` tip-bot for Christian Borntraeger 0 siblings, 0 replies; 8+ messages in thread From: tip-bot for Christian Borntraeger @ 2017-04-12 5:38 UTC (permalink / raw) To: linux-tip-commits Cc: linux-s390, krebbel, peterz, linux-kernel, acme, schwidefsky, hpa, borntraeger, mingo, tglx, brueckner Commit-ID: d9f8dfa9baf9b6ae1f2f84f887176558ecde5268 Gitweb: http://git.kernel.org/tip/d9f8dfa9baf9b6ae1f2f84f887176558ecde5268 Author: Christian Borntraeger <borntraeger@de.ibm.com> AuthorDate: Thu, 6 Apr 2017 09:51:52 +0200 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Tue, 11 Apr 2017 15:23:40 -0300 perf annotate s390: Implement jump types for perf annotate 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(+) diff --git a/tools/perf/arch/s390/annotate/instructions.c b/tools/perf/arch/s390/annotate/instructions.c new file mode 100644 index 0000000..745b4b1 --- /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 bfb2f1d..44ed665 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 = '#', }, ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-04-12 5:41 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-04-06 7:51 [PATCH 0/2] perf/s390: fix (and enhance) perf annotate Christian Borntraeger 2017-04-06 7:51 ` [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Christian Borntraeger 2017-04-07 15:23 ` Arnaldo Carvalho de Melo 2017-04-10 9:18 ` Christian Borntraeger 2017-04-11 19:46 ` [tip:perf/urgent] perf annotate s390: Fix " tip-bot for Christian Borntraeger 2017-04-12 5:37 ` [tip:perf/core] " tip-bot for Christian Borntraeger 2017-04-06 7:51 ` [PATCH 2/2] perf/s390: implement jump types for perf annotate Christian Borntraeger 2017-04-12 5:38 ` [tip:perf/core] perf annotate s390: Implement " tip-bot for Christian Borntraeger
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.