From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: jolsa@kernel.org, ak@linux.intel.com, namhyung@kernel.org,
irogers@google.com, james.clark@arm.com, mpe@ellerman.id.au,
linux-perf-users@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
maddy@linux.vnet.ibm.com, rnsastry@linux.ibm.com,
kjain@linux.ibm.com, disgoel@linux.ibm.com
Subject: Re: [PATCH] tests/bpf: Fix the bpf test to check for libtraceevent support
Date: Wed, 1 Feb 2023 21:57:49 -0300 [thread overview]
Message-ID: <Y9sKjYV8b37vstQ0@kernel.org> (raw)
In-Reply-To: <20230131135001.54578-1-atrajeev@linux.vnet.ibm.com>
Em Tue, Jan 31, 2023 at 07:20:01PM +0530, Athira Rajeev escreveu:
> "bpf" tests fails in environment with missing libtraceevent
> support as below:
>
> # ./perf test 36
> 36: BPF filter :
> 36.1: Basic BPF filtering : FAILED!
> 36.2: BPF pinning : FAILED!
> 36.3: BPF prologue generation : FAILED!
>
> The environment has clang but missing the libtraceevent
> devel. Hence perf is compiled without libtraceevent support.
Thanks, applied.
- Arnaldo
> Detailed logs:
> ./perf test -v "Basic BPF filtering"
>
> Failed to add BPF event syscalls:sys_enter_epoll_pwait
> bpf: tracepoint call back failed, stop iterate
> Failed to add events selected by BPF
>
> The bpf tests tris to add probe event which fails
> at "parse_events_add_tracepoint" function due to missing
> libtraceevent. Add check for "HAVE_LIBTRACEEVENT" in the
> "tests/bpf.c" before proceeding with the test.
>
> With the change,
>
> # ./perf test 36
> 36: BPF filter :
> 36.1: Basic BPF filtering : Skip (not compiled in or missing libtraceevent support)
> 36.2: BPF pinning : Skip (not compiled in or missing libtraceevent support)
> 36.3: BPF prologue generation : Skip (not compiled in or missing libtraceevent support)
>
> Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
> ---
> tools/perf/tests/bpf.c | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
> index 17c023823713..4af39528f611 100644
> --- a/tools/perf/tests/bpf.c
> +++ b/tools/perf/tests/bpf.c
> @@ -23,7 +23,7 @@
> #define NR_ITERS 111
> #define PERF_TEST_BPF_PATH "/sys/fs/bpf/perf_test"
>
> -#ifdef HAVE_LIBBPF_SUPPORT
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> #include <linux/bpf.h>
> #include <bpf/bpf.h>
>
> @@ -330,10 +330,10 @@ static int test__bpf(int i)
> static int test__basic_bpf_test(struct test_suite *test __maybe_unused,
> int subtest __maybe_unused)
> {
> -#ifdef HAVE_LIBBPF_SUPPORT
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> return test__bpf(0);
> #else
> - pr_debug("Skip BPF test because BPF support is not compiled\n");
> + pr_debug("Skip BPF test because BPF or libtraceevent support is not compiled\n");
> return TEST_SKIP;
> #endif
> }
> @@ -341,10 +341,10 @@ static int test__basic_bpf_test(struct test_suite *test __maybe_unused,
> static int test__bpf_pinning(struct test_suite *test __maybe_unused,
> int subtest __maybe_unused)
> {
> -#ifdef HAVE_LIBBPF_SUPPORT
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> return test__bpf(1);
> #else
> - pr_debug("Skip BPF test because BPF support is not compiled\n");
> + pr_debug("Skip BPF test because BPF or libtraceevent support is not compiled\n");
> return TEST_SKIP;
> #endif
> }
> @@ -352,17 +352,17 @@ static int test__bpf_pinning(struct test_suite *test __maybe_unused,
> static int test__bpf_prologue_test(struct test_suite *test __maybe_unused,
> int subtest __maybe_unused)
> {
> -#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_BPF_PROLOGUE)
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_BPF_PROLOGUE) && defined(HAVE_LIBTRACEEVENT)
> return test__bpf(2);
> #else
> - pr_debug("Skip BPF test because BPF support is not compiled\n");
> + pr_debug("Skip BPF test because BPF or libtraceevent support is not compiled\n");
> return TEST_SKIP;
> #endif
> }
>
>
> static struct test_case bpf_tests[] = {
> -#ifdef HAVE_LIBBPF_SUPPORT
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> TEST_CASE("Basic BPF filtering", basic_bpf_test),
> TEST_CASE_REASON("BPF pinning", bpf_pinning,
> "clang isn't installed or environment missing BPF support"),
> @@ -373,9 +373,9 @@ static struct test_case bpf_tests[] = {
> TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test, "not compiled in"),
> #endif
> #else
> - TEST_CASE_REASON("Basic BPF filtering", basic_bpf_test, "not compiled in"),
> - TEST_CASE_REASON("BPF pinning", bpf_pinning, "not compiled in"),
> - TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test, "not compiled in"),
> + TEST_CASE_REASON("Basic BPF filtering", basic_bpf_test, "not compiled in or missing libtraceevent support"),
> + TEST_CASE_REASON("BPF pinning", bpf_pinning, "not compiled in or missing libtraceevent support"),
> + TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test, "not compiled in or missing libtraceevent support"),
> #endif
> { .name = NULL, }
> };
> --
> 2.39.0
>
--
- Arnaldo
WARNING: multiple messages have this Message-ID (diff)
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: irogers@google.com, ak@linux.intel.com, rnsastry@linux.ibm.com,
linux-perf-users@vger.kernel.org, maddy@linux.vnet.ibm.com,
james.clark@arm.com, jolsa@kernel.org, kjain@linux.ibm.com,
namhyung@kernel.org, disgoel@linux.ibm.com,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] tests/bpf: Fix the bpf test to check for libtraceevent support
Date: Wed, 1 Feb 2023 21:57:49 -0300 [thread overview]
Message-ID: <Y9sKjYV8b37vstQ0@kernel.org> (raw)
In-Reply-To: <20230131135001.54578-1-atrajeev@linux.vnet.ibm.com>
Em Tue, Jan 31, 2023 at 07:20:01PM +0530, Athira Rajeev escreveu:
> "bpf" tests fails in environment with missing libtraceevent
> support as below:
>
> # ./perf test 36
> 36: BPF filter :
> 36.1: Basic BPF filtering : FAILED!
> 36.2: BPF pinning : FAILED!
> 36.3: BPF prologue generation : FAILED!
>
> The environment has clang but missing the libtraceevent
> devel. Hence perf is compiled without libtraceevent support.
Thanks, applied.
- Arnaldo
> Detailed logs:
> ./perf test -v "Basic BPF filtering"
>
> Failed to add BPF event syscalls:sys_enter_epoll_pwait
> bpf: tracepoint call back failed, stop iterate
> Failed to add events selected by BPF
>
> The bpf tests tris to add probe event which fails
> at "parse_events_add_tracepoint" function due to missing
> libtraceevent. Add check for "HAVE_LIBTRACEEVENT" in the
> "tests/bpf.c" before proceeding with the test.
>
> With the change,
>
> # ./perf test 36
> 36: BPF filter :
> 36.1: Basic BPF filtering : Skip (not compiled in or missing libtraceevent support)
> 36.2: BPF pinning : Skip (not compiled in or missing libtraceevent support)
> 36.3: BPF prologue generation : Skip (not compiled in or missing libtraceevent support)
>
> Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
> ---
> tools/perf/tests/bpf.c | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
> index 17c023823713..4af39528f611 100644
> --- a/tools/perf/tests/bpf.c
> +++ b/tools/perf/tests/bpf.c
> @@ -23,7 +23,7 @@
> #define NR_ITERS 111
> #define PERF_TEST_BPF_PATH "/sys/fs/bpf/perf_test"
>
> -#ifdef HAVE_LIBBPF_SUPPORT
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> #include <linux/bpf.h>
> #include <bpf/bpf.h>
>
> @@ -330,10 +330,10 @@ static int test__bpf(int i)
> static int test__basic_bpf_test(struct test_suite *test __maybe_unused,
> int subtest __maybe_unused)
> {
> -#ifdef HAVE_LIBBPF_SUPPORT
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> return test__bpf(0);
> #else
> - pr_debug("Skip BPF test because BPF support is not compiled\n");
> + pr_debug("Skip BPF test because BPF or libtraceevent support is not compiled\n");
> return TEST_SKIP;
> #endif
> }
> @@ -341,10 +341,10 @@ static int test__basic_bpf_test(struct test_suite *test __maybe_unused,
> static int test__bpf_pinning(struct test_suite *test __maybe_unused,
> int subtest __maybe_unused)
> {
> -#ifdef HAVE_LIBBPF_SUPPORT
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> return test__bpf(1);
> #else
> - pr_debug("Skip BPF test because BPF support is not compiled\n");
> + pr_debug("Skip BPF test because BPF or libtraceevent support is not compiled\n");
> return TEST_SKIP;
> #endif
> }
> @@ -352,17 +352,17 @@ static int test__bpf_pinning(struct test_suite *test __maybe_unused,
> static int test__bpf_prologue_test(struct test_suite *test __maybe_unused,
> int subtest __maybe_unused)
> {
> -#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_BPF_PROLOGUE)
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_BPF_PROLOGUE) && defined(HAVE_LIBTRACEEVENT)
> return test__bpf(2);
> #else
> - pr_debug("Skip BPF test because BPF support is not compiled\n");
> + pr_debug("Skip BPF test because BPF or libtraceevent support is not compiled\n");
> return TEST_SKIP;
> #endif
> }
>
>
> static struct test_case bpf_tests[] = {
> -#ifdef HAVE_LIBBPF_SUPPORT
> +#if defined(HAVE_LIBBPF_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> TEST_CASE("Basic BPF filtering", basic_bpf_test),
> TEST_CASE_REASON("BPF pinning", bpf_pinning,
> "clang isn't installed or environment missing BPF support"),
> @@ -373,9 +373,9 @@ static struct test_case bpf_tests[] = {
> TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test, "not compiled in"),
> #endif
> #else
> - TEST_CASE_REASON("Basic BPF filtering", basic_bpf_test, "not compiled in"),
> - TEST_CASE_REASON("BPF pinning", bpf_pinning, "not compiled in"),
> - TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test, "not compiled in"),
> + TEST_CASE_REASON("Basic BPF filtering", basic_bpf_test, "not compiled in or missing libtraceevent support"),
> + TEST_CASE_REASON("BPF pinning", bpf_pinning, "not compiled in or missing libtraceevent support"),
> + TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test, "not compiled in or missing libtraceevent support"),
> #endif
> { .name = NULL, }
> };
> --
> 2.39.0
>
--
- Arnaldo
next prev parent reply other threads:[~2023-02-02 0:57 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-31 13:50 [PATCH] tests/bpf: Fix the bpf test to check for libtraceevent support Athira Rajeev
2023-01-31 13:50 ` Athira Rajeev
2023-02-02 0:57 ` Arnaldo Carvalho de Melo [this message]
2023-02-02 0:57 ` Arnaldo Carvalho de Melo
2023-02-06 3:57 ` Athira Rajeev
2023-02-06 3:57 ` Athira Rajeev
2023-02-06 14:40 ` Arnaldo Carvalho de Melo
2023-02-06 14:40 ` Arnaldo Carvalho de Melo
2023-02-07 5:15 ` Athira Rajeev
2023-02-07 5:15 ` Athira Rajeev
2023-02-06 9:20 ` Disha Goel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y9sKjYV8b37vstQ0@kernel.org \
--to=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=disgoel@linux.ibm.com \
--cc=irogers@google.com \
--cc=james.clark@arm.com \
--cc=jolsa@kernel.org \
--cc=kjain@linux.ibm.com \
--cc=linux-perf-users@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.vnet.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=namhyung@kernel.org \
--cc=rnsastry@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.