All of lore.kernel.org
 help / color / mirror / Atom feed
* [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

* [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

* 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

* [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.