Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1617574 > unrolled thread
| Started by | Christian Borntraeger <borntraeger@de.ibm.com> |
|---|---|
| First post | 2017-04-06 10:00 +0200 |
| Last post | 2017-04-12 07:50 +0200 |
| Articles | 8 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH 0/2] perf/s390: fix (and enhance) perf annotate Christian Borntraeger <borntraeger@de.ibm.com> - 2017-04-06 10:00 +0200
[PATCH 2/2] perf/s390: implement jump types for perf annotate Christian Borntraeger <borntraeger@de.ibm.com> - 2017-04-06 10:00 +0200
[tip:perf/core] perf annotate s390: Implement jump types for perf annotate tip-bot for Christian Borntraeger <tipbot@zytor.com> - 2017-04-12 07:50 +0200
[PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Christian Borntraeger <borntraeger@de.ibm.com> - 2017-04-06 10:00 +0200
Re: [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Arnaldo Carvalho de Melo <acme@redhat.com> - 2017-04-07 17:30 +0200
Re: [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) Christian Borntraeger <borntraeger@de.ibm.com> - 2017-04-10 11:30 +0200
[tip:perf/urgent] perf annotate s390: Fix perf annotate error -95 (4.10 regression) tip-bot for Christian Borntraeger <tipbot@zytor.com> - 2017-04-11 21:50 +0200
[tip:perf/core] perf annotate s390: Fix perf annotate error -95 (4.10 regression) tip-bot for Christian Borntraeger <tipbot@zytor.com> - 2017-04-12 07:50 +0200
| From | Christian Borntraeger <borntraeger@de.ibm.com> |
|---|---|
| Date | 2017-04-06 10:00 +0200 |
| Subject | [PATCH 0/2] perf/s390: fix (and enhance) perf annotate |
| Message-ID | <ttauJ-5EZ-1@gated-at.bofh.it> |
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
[toc] | [next] | [standalone]
| From | Christian Borntraeger <borntraeger@de.ibm.com> |
|---|---|
| Date | 2017-04-06 10:00 +0200 |
| Subject | [PATCH 2/2] perf/s390: implement jump types for perf annotate |
| Message-ID | <ttauK-5EZ-9@gated-at.bofh.it> |
| In reply to | #1617574 |
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
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Christian Borntraeger <tipbot@zytor.com> |
|---|---|
| Date | 2017-04-12 07:50 +0200 |
| Subject | [tip:perf/core] perf annotate s390: Implement jump types for perf annotate |
| Message-ID | <tvjkf-Bv-31@gated-at.bofh.it> |
| In reply to | #1617575 |
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 = '#',
},
[toc] | [prev] | [next] | [standalone]
| From | Christian Borntraeger <borntraeger@de.ibm.com> |
|---|---|
| Date | 2017-04-06 10:00 +0200 |
| Subject | [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) |
| Message-ID | <ttauJ-5EZ-5@gated-at.bofh.it> |
| In reply to | #1617574 |
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
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@redhat.com> |
|---|---|
| Date | 2017-04-07 17:30 +0200 |
| Subject | Re: [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) |
| Message-ID | <ttDZM-w1-23@gated-at.bofh.it> |
| In reply to | #1617576 |
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
[toc] | [prev] | [next] | [standalone]
| From | Christian Borntraeger <borntraeger@de.ibm.com> |
|---|---|
| Date | 2017-04-10 11:30 +0200 |
| Subject | Re: [PATCH 1/2] s390/perf: fix perf annotate error -95 (4.10 regression) |
| Message-ID | <tuDO2-7gt-19@gated-at.bofh.it> |
| In reply to | #1618908 |
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
>
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Christian Borntraeger <tipbot@zytor.com> |
|---|---|
| Date | 2017-04-11 21:50 +0200 |
| Subject | [tip:perf/urgent] perf annotate s390: Fix perf annotate error -95 (4.10 regression) |
| Message-ID | <tv9Xz-2Sg-7@gated-at.bofh.it> |
| In reply to | #1617576 |
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)
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Christian Borntraeger <tipbot@zytor.com> |
|---|---|
| Date | 2017-04-12 07:50 +0200 |
| Subject | [tip:perf/core] perf annotate s390: Fix perf annotate error -95 (4.10 regression) |
| Message-ID | <tvjke-Bv-5@gated-at.bofh.it> |
| In reply to | #1617576 |
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)
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web