From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
Cc: Kajol Jain <kjain@linux.ibm.com>, Jiri Olsa <jolsa@kernel.org>,
Ian Rogers <irogers@google.com>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Nageswara Sastry <rnsastry@linux.ibm.com>,
linux-perf-users@vger.kernel.org, disgoel@linux.vnet.ibm.com,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] perf test bpf: Skip test if kernel-debuginfo is not present
Date: Mon, 12 Dec 2022 15:57:29 -0300 [thread overview]
Message-ID: <Y5d5mfyCEcUqI61Y@kernel.org> (raw)
In-Reply-To: <A7B7E3F1-161D-4B1A-A4FE-E4A77EE06F1A@linux.vnet.ibm.com>
Em Thu, Nov 03, 2022 at 12:27:01PM +0530, Athira Rajeev escreveu:
> > On 28-Oct-2022, at 9:12 PM, Kajol Jain <kjain@linux.ibm.com> wrote:
> >
> > Perf BPF filter test fails in environment where "kernel-debuginfo"
> > is not installed.
> >
> > Test failure logs:
> > <<>>
> > 42: BPF filter :
> > 42.1: Basic BPF filtering : Ok
> > 42.2: BPF pinning : Ok
> > 42.3: BPF prologue generation : FAILED!
> > <<>>
> >
> > Enabling verbose option provided debug logs, which says debuginfo
> > needs to be installed. Snippet of verbose logs:
> >
> > <<>>
> > 42.3: BPF prologue generation :
> > --- start ---
> > test child forked, pid 28218
> > <<>>
> > Rebuild with CONFIG_DEBUG_INFO=y, or install an appropriate debuginfo
> > package.
> > bpf_probe: failed to convert perf probe events
> > Failed to add events selected by BPF
> > test child finished with -1
> > ---- end ----
> > BPF filter subtest 3: FAILED!
> > <<>>
> >
> > Here subtest, "BPF prologue generation" failed and
> > logs shows debuginfo is needed. After installing
> > kernel-debuginfo package, testcase passes.
> >
> > Subtest "BPF prologue generation" failed because, the "do_test"
> > function returns "TEST_FAIL" without checking the error type
> > returned by "parse_events_load_bpf_obj" function.
> > Function parse_events_load_bpf_obj can also return error of type
> > "-ENOENT" incase kernel-debuginfo package is not installed. Fix this
> > by adding check for -ENOENT error.
> >
> > Test result after the patch changes:
> >
> > Test failure logs:
> > <<>>
> > 42: BPF filter :
> > 42.1: Basic BPF filtering : Ok
> > 42.2: BPF pinning : Ok
> > 42.3: BPF prologue generation : Skip (clang/debuginfo isn't
> > installed or environment missing BPF support)
> >
> > Fixes: ba1fae431e74bb42 ("perf test: Add 'perf test BPF'")
> > Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
> > Reviewed-by: Madhavan Srinivasan <maddy@linux.ibm.com>
> > ---
> > tools/perf/tests/bpf.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
> > index 17c023823713..57cecadc1da2 100644
> > --- a/tools/perf/tests/bpf.c
> > +++ b/tools/perf/tests/bpf.c
> > @@ -126,6 +126,10 @@ static int do_test(struct bpf_object *obj, int (*func)(void),
> >
> > err = parse_events_load_bpf_obj(&parse_state, &parse_state.list, obj, NULL);
> > parse_events_error__exit(&parse_error);
> > + if (err == -ENOENT) {
> > + pr_debug("Failed to add events selected by BPF, debuginfo package not installed\n");
> > + return TEST_SKIP;
> > + }
>
> Hi Kajol,
>
> Here, you have used ENOENT to skip the test. But there could be other places in the code path for “parse_events_load_bpf_obj”
> which also returns ENOENT. In that case, for any exit that returns ENOENT, test will get skipped.
>
> Can we look at the logs, example we have this in commit logs:
>
> Rebuild with CONFIG_DEBUG_INFO=y, or install an appropriate debuginfo
> package.
>
> so as to decide whether to skip for debug info ?
Kajol?
- Arnaldo
> Thanks
> Athira
>
> > if (err || list_empty(&parse_state.list)) {
> > pr_debug("Failed to add events selected by BPF\n");
> > return TEST_FAIL;
> > @@ -368,7 +372,7 @@ static struct test_case bpf_tests[] = {
> > "clang isn't installed or environment missing BPF support"),
> > #ifdef HAVE_BPF_PROLOGUE
> > TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test,
> > - "clang isn't installed or environment missing BPF support"),
> > + "clang/debuginfo isn't installed or environment missing BPF support"),
> > #else
> > TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test, "not compiled in"),
> > #endif
> > --
> > 2.31.1
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: Ian Rogers <irogers@google.com>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Nageswara Sastry <rnsastry@linux.ibm.com>,
Kajol Jain <kjain@linux.ibm.com>,
linux-perf-users@vger.kernel.org, Jiri Olsa <jolsa@kernel.org>,
disgoel@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] perf test bpf: Skip test if kernel-debuginfo is not present
Date: Mon, 12 Dec 2022 15:57:29 -0300 [thread overview]
Message-ID: <Y5d5mfyCEcUqI61Y@kernel.org> (raw)
In-Reply-To: <A7B7E3F1-161D-4B1A-A4FE-E4A77EE06F1A@linux.vnet.ibm.com>
Em Thu, Nov 03, 2022 at 12:27:01PM +0530, Athira Rajeev escreveu:
> > On 28-Oct-2022, at 9:12 PM, Kajol Jain <kjain@linux.ibm.com> wrote:
> >
> > Perf BPF filter test fails in environment where "kernel-debuginfo"
> > is not installed.
> >
> > Test failure logs:
> > <<>>
> > 42: BPF filter :
> > 42.1: Basic BPF filtering : Ok
> > 42.2: BPF pinning : Ok
> > 42.3: BPF prologue generation : FAILED!
> > <<>>
> >
> > Enabling verbose option provided debug logs, which says debuginfo
> > needs to be installed. Snippet of verbose logs:
> >
> > <<>>
> > 42.3: BPF prologue generation :
> > --- start ---
> > test child forked, pid 28218
> > <<>>
> > Rebuild with CONFIG_DEBUG_INFO=y, or install an appropriate debuginfo
> > package.
> > bpf_probe: failed to convert perf probe events
> > Failed to add events selected by BPF
> > test child finished with -1
> > ---- end ----
> > BPF filter subtest 3: FAILED!
> > <<>>
> >
> > Here subtest, "BPF prologue generation" failed and
> > logs shows debuginfo is needed. After installing
> > kernel-debuginfo package, testcase passes.
> >
> > Subtest "BPF prologue generation" failed because, the "do_test"
> > function returns "TEST_FAIL" without checking the error type
> > returned by "parse_events_load_bpf_obj" function.
> > Function parse_events_load_bpf_obj can also return error of type
> > "-ENOENT" incase kernel-debuginfo package is not installed. Fix this
> > by adding check for -ENOENT error.
> >
> > Test result after the patch changes:
> >
> > Test failure logs:
> > <<>>
> > 42: BPF filter :
> > 42.1: Basic BPF filtering : Ok
> > 42.2: BPF pinning : Ok
> > 42.3: BPF prologue generation : Skip (clang/debuginfo isn't
> > installed or environment missing BPF support)
> >
> > Fixes: ba1fae431e74bb42 ("perf test: Add 'perf test BPF'")
> > Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
> > Reviewed-by: Madhavan Srinivasan <maddy@linux.ibm.com>
> > ---
> > tools/perf/tests/bpf.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
> > index 17c023823713..57cecadc1da2 100644
> > --- a/tools/perf/tests/bpf.c
> > +++ b/tools/perf/tests/bpf.c
> > @@ -126,6 +126,10 @@ static int do_test(struct bpf_object *obj, int (*func)(void),
> >
> > err = parse_events_load_bpf_obj(&parse_state, &parse_state.list, obj, NULL);
> > parse_events_error__exit(&parse_error);
> > + if (err == -ENOENT) {
> > + pr_debug("Failed to add events selected by BPF, debuginfo package not installed\n");
> > + return TEST_SKIP;
> > + }
>
> Hi Kajol,
>
> Here, you have used ENOENT to skip the test. But there could be other places in the code path for “parse_events_load_bpf_obj”
> which also returns ENOENT. In that case, for any exit that returns ENOENT, test will get skipped.
>
> Can we look at the logs, example we have this in commit logs:
>
> Rebuild with CONFIG_DEBUG_INFO=y, or install an appropriate debuginfo
> package.
>
> so as to decide whether to skip for debug info ?
Kajol?
- Arnaldo
> Thanks
> Athira
>
> > if (err || list_empty(&parse_state.list)) {
> > pr_debug("Failed to add events selected by BPF\n");
> > return TEST_FAIL;
> > @@ -368,7 +372,7 @@ static struct test_case bpf_tests[] = {
> > "clang isn't installed or environment missing BPF support"),
> > #ifdef HAVE_BPF_PROLOGUE
> > TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test,
> > - "clang isn't installed or environment missing BPF support"),
> > + "clang/debuginfo isn't installed or environment missing BPF support"),
> > #else
> > TEST_CASE_REASON("BPF prologue generation", bpf_prologue_test, "not compiled in"),
> > #endif
> > --
> > 2.31.1
next prev parent reply other threads:[~2022-12-12 19:01 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-28 15:42 [PATCH] perf test bpf: Skip test if kernel-debuginfo is not present Kajol Jain
2022-10-28 15:42 ` Kajol Jain
2022-11-03 6:57 ` Athira Rajeev
2022-11-03 6:57 ` Athira Rajeev
2022-12-12 18:57 ` Arnaldo Carvalho de Melo [this message]
2022-12-12 18:57 ` Arnaldo Carvalho de Melo
2022-12-13 9:51 ` Athira Rajeev
2022-12-14 15:51 ` Arnaldo Carvalho de Melo
2023-01-02 13:42 ` Athira Rajeev
2023-01-02 14:23 ` Arnaldo Carvalho de Melo
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=Y5d5mfyCEcUqI61Y@kernel.org \
--to=acme@kernel.org \
--cc=atrajeev@linux.vnet.ibm.com \
--cc=disgoel@linux.vnet.ibm.com \
--cc=irogers@google.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.ibm.com \
--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.