linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] perf: tests: Disable breakpoint tests on ARM (32-bit)
@ 2018-11-27  0:31 Florian Fainelli
  2018-11-27 19:30 ` Will Deacon
  0 siblings, 1 reply; 2+ messages in thread
From: Florian Fainelli @ 2018-11-27  0:31 UTC (permalink / raw)
  To: linux-kernel
  Cc: will.deacon, Florian Fainelli, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Alexander Shishkin, Jiri Olsa,
	Namhyung Kim, Thomas Richter, Hendrik Brueckner

breakpoint tests on the ARM 32-bit kernel are broken in several ways.

The breakpoint length requested does not necessarily match whether the
function address has the Thumb bit (bit 0) set or not, and this does
matter to the ARM kernel hw_breakpoint infrastructure. See [1] for
background.

[1]: https://lkml.org/lkml/2018/11/15/205

As Will indicated, the overflow handling would require single-stepping
which is not supported at the moment. Just disable those tests for the
ARM 32-bit platforms.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
Changes in v2:

- Fix comment above test per Will's feedback

 tools/perf/tests/bp_signal.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
index a467615c5a0e..05bf06f84a3b 100644
--- a/tools/perf/tests/bp_signal.c
+++ b/tools/perf/tests/bp_signal.c
@@ -292,11 +292,11 @@ int test__bp_signal(struct test *test __maybe_unused, int subtest __maybe_unused
 bool test__bp_signal_is_supported(void)
 {
 /*
- * The powerpc so far does not have support to even create
+ * powerpc, s390 and arm so far does not have support to even create
  * instruction breakpoint using the perf event interface.
  * Once it's there we can release this.
  */
-#if defined(__powerpc__) || defined(__s390x__)
+#if defined(__powerpc__) || defined(__s390x__) || defined(__arm__)
 	return false;
 #else
 	return true;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] perf: tests: Disable breakpoint tests on ARM (32-bit)
  2018-11-27  0:31 [PATCH v2] perf: tests: Disable breakpoint tests on ARM (32-bit) Florian Fainelli
@ 2018-11-27 19:30 ` Will Deacon
  0 siblings, 0 replies; 2+ messages in thread
From: Will Deacon @ 2018-11-27 19:30 UTC (permalink / raw)
  To: Florian Fainelli
  Cc: linux-kernel, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Alexander Shishkin, Jiri Olsa,
	Namhyung Kim, Thomas Richter, Hendrik Brueckner

On Mon, Nov 26, 2018 at 04:31:23PM -0800, Florian Fainelli wrote:
> breakpoint tests on the ARM 32-bit kernel are broken in several ways.
> 
> The breakpoint length requested does not necessarily match whether the
> function address has the Thumb bit (bit 0) set or not, and this does
> matter to the ARM kernel hw_breakpoint infrastructure. See [1] for
> background.
> 
> [1]: https://lkml.org/lkml/2018/11/15/205
> 
> As Will indicated, the overflow handling would require single-stepping
> which is not supported at the moment. Just disable those tests for the
> ARM 32-bit platforms.
> 
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
> Changes in v2:
> 
> - Fix comment above test per Will's feedback
> 
>  tools/perf/tests/bp_signal.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.c
> index a467615c5a0e..05bf06f84a3b 100644
> --- a/tools/perf/tests/bp_signal.c
> +++ b/tools/perf/tests/bp_signal.c
> @@ -292,11 +292,11 @@ int test__bp_signal(struct test *test __maybe_unused, int subtest __maybe_unused
>  bool test__bp_signal_is_supported(void)
>  {
>  /*
> - * The powerpc so far does not have support to even create
> + * powerpc, s390 and arm so far does not have support to even create
>   * instruction breakpoint using the perf event interface.
>   * Once it's there we can release this.

Sorry, Florian, but I still think this comment is bogus since you can
create instruction breakpoints via perf on arm. I think you need
something like:

	/*
	 * PowerPC and S390 do not support creation of instruction
	 * breakpoints using the perf_event interface.
	 *
	 * ARM requires explicit rounding down of the instruction
	 * pointer in Thumb mode, and then requires the single-step
	 * to be handled explicitly in the overflow handler to avoid
	 * stepping into the SIGIO handler and getting stuck on the
	 * breakpointed instruction.
	 *
	 * Just disable the test for these architectures until these
	 * issues are resolved.
	 */

Will

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-11-27 19:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-27  0:31 [PATCH v2] perf: tests: Disable breakpoint tests on ARM (32-bit) Florian Fainelli
2018-11-27 19:30 ` Will Deacon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).