Re: [PATCH v1 2/3] perf tests bp_account: Add dedicated checking helper is_supported()
From: Arnaldo Carvalho de Melo
Date: Fri Oct 18 2019 - 13:57:33 EST
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@xxxxxxxxxx>
> ---
> 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