diff mbox series

[v1,2/3] perf tests bp_account: Add dedicated checking helper is_supported()

Message ID 20191018085531.6348-2-leo.yan@linaro.org
State New
Headers show
Series [v1,1/3] perf tests: Remove needless headers for bp_account | expand

Commit Message

Leo Yan Oct. 18, 2019, 8:55 a.m. UTC
Arm architecture supports the breakpoint accounting but it doesn't
support breakpoint overflow signal handling.  The current code uses the
same checking helper, thus it disables both testings (bp_account and
bp_signal) for arm platform.

For handling two testings separately, this patch adds a dedicated
checking helper is_supported() for breakpoint accounting testing, thus
it allows supporting breakpoint accounting testing on arm platform; the
old helper test__bp_signal_is_supported() is only used to checking for
breakpoint overflow signal testing.

Signed-off-by: Leo Yan <leo.yan@linaro.org>

---
 tools/perf/tests/bp_account.c   | 16 ++++++++++++++++
 tools/perf/tests/builtin-test.c |  2 +-
 tools/perf/tests/tests.h        |  1 +
 3 files changed, 18 insertions(+), 1 deletion(-)

-- 
2.17.1

Comments

Arnaldo Carvalho de Melo Oct. 18, 2019, 5:57 p.m. UTC | #1
Em Fri, Oct 18, 2019 at 04:55:30PM +0800, Leo Yan escreveu:
> Arm architecture supports the breakpoint accounting but it doesn't

> support breakpoint overflow signal handling.  The current code uses the

> same checking helper, thus it disables both testings (bp_account and

> bp_signal) for arm platform.

> 

> For handling two testings separately, this patch adds a dedicated

> checking helper is_supported() for breakpoint accounting testing, thus

> it allows supporting breakpoint accounting testing on arm platform; the

> old helper test__bp_signal_is_supported() is only used to checking for

> breakpoint overflow signal testing.


Looks sensible,

Applied, thanks.

- Arnaldo
 
> Signed-off-by: Leo Yan <leo.yan@linaro.org>

> ---

>  tools/perf/tests/bp_account.c   | 16 ++++++++++++++++

>  tools/perf/tests/builtin-test.c |  2 +-

>  tools/perf/tests/tests.h        |  1 +

>  3 files changed, 18 insertions(+), 1 deletion(-)

> 

> diff --git a/tools/perf/tests/bp_account.c b/tools/perf/tests/bp_account.c

> index 52ff7a462670..d0b935356274 100644

> --- a/tools/perf/tests/bp_account.c

> +++ b/tools/perf/tests/bp_account.c

> @@ -188,3 +188,19 @@ int test__bp_accounting(struct test *test __maybe_unused, int subtest __maybe_un

>  

>  	return bp_accounting(wp_cnt, share);

>  }

> +

> +bool test__bp_account_is_supported(void)

> +{

> +	/*

> +	 * PowerPC and S390 do not support creation of instruction

> +	 * breakpoints using the perf_event interface.

> +	 *

> +	 * Just disable the test for these architectures until these

> +	 * issues are resolved.

> +	 */

> +#if defined(__powerpc__) || defined(__s390x__)

> +	return false;

> +#else

> +	return true;

> +#endif

> +}

> diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c

> index 55774baffc2a..8b286e9b7549 100644

> --- a/tools/perf/tests/builtin-test.c

> +++ b/tools/perf/tests/builtin-test.c

> @@ -121,7 +121,7 @@ static struct test generic_tests[] = {

>  	{

>  		.desc = "Breakpoint accounting",

>  		.func = test__bp_accounting,

> -		.is_supported = test__bp_signal_is_supported,

> +		.is_supported = test__bp_account_is_supported,

>  	},

>  	{

>  		.desc = "Watchpoint",

> diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h

> index 72912eb473cb..9837b6e93023 100644

> --- a/tools/perf/tests/tests.h

> +++ b/tools/perf/tests/tests.h

> @@ -111,6 +111,7 @@ int test__map_groups__merge_in(struct test *t, int subtest);

>  int test__time_utils(struct test *t, int subtest);

>  

>  bool test__bp_signal_is_supported(void);

> +bool test__bp_account_is_supported(void);

>  bool test__wp_is_supported(void);

>  

>  #if defined(__arm__) || defined(__aarch64__)

> -- 

> 2.17.1


-- 

- Arnaldo
diff mbox series

Patch

diff --git a/tools/perf/tests/bp_account.c b/tools/perf/tests/bp_account.c
index 52ff7a462670..d0b935356274 100644
--- a/tools/perf/tests/bp_account.c
+++ b/tools/perf/tests/bp_account.c
@@ -188,3 +188,19 @@  int test__bp_accounting(struct test *test __maybe_unused, int subtest __maybe_un
 
 	return bp_accounting(wp_cnt, share);
 }
+
+bool test__bp_account_is_supported(void)
+{
+	/*
+	 * PowerPC and S390 do not support creation of instruction
+	 * breakpoints using the perf_event interface.
+	 *
+	 * Just disable the test for these architectures until these
+	 * issues are resolved.
+	 */
+#if defined(__powerpc__) || defined(__s390x__)
+	return false;
+#else
+	return true;
+#endif
+}
diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c
index 55774baffc2a..8b286e9b7549 100644
--- a/tools/perf/tests/builtin-test.c
+++ b/tools/perf/tests/builtin-test.c
@@ -121,7 +121,7 @@  static struct test generic_tests[] = {
 	{
 		.desc = "Breakpoint accounting",
 		.func = test__bp_accounting,
-		.is_supported = test__bp_signal_is_supported,
+		.is_supported = test__bp_account_is_supported,
 	},
 	{
 		.desc = "Watchpoint",
diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h
index 72912eb473cb..9837b6e93023 100644
--- a/tools/perf/tests/tests.h
+++ b/tools/perf/tests/tests.h
@@ -111,6 +111,7 @@  int test__map_groups__merge_in(struct test *t, int subtest);
 int test__time_utils(struct test *t, int subtest);
 
 bool test__bp_signal_is_supported(void);
+bool test__bp_account_is_supported(void);
 bool test__wp_is_supported(void);
 
 #if defined(__arm__) || defined(__aarch64__)