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-10 11:30 +0200 |
| Articles | 5 — 2 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
[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
| 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 | 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] | [standalone]
Back to top | Article view | linux.kernel
csiph-web