All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <olsajiri@gmail.com>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Andrii Nakryiko <andrii@kernel.org>, bpf <bpf@vger.kernel.org>,
	Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
	Yonghong Song <yhs@fb.com>,
	John Fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@chromium.org>,
	Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>,
	Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH bpf-next 4/5] selftests/bpf: Disable kprobe attach test with offset for CONFIG_X86_KERNEL_IBT
Date: Sun, 31 Jul 2022 23:14:34 +0200	[thread overview]
Message-ID: <YubwuidpHmjYt1Cg@krava> (raw)
In-Reply-To: <CAEf4BzYnG3SLXs1+ebK+x7fM1ZaoPZ8=qH4mqUGhb6Ojf8x3Jg@mail.gmail.com>

On Fri, Jul 29, 2022 at 03:15:55PM -0700, Andrii Nakryiko wrote:
> On Sun, Jul 24, 2022 at 2:22 PM Jiri Olsa <jolsa@kernel.org> wrote:
> >
> > Attach like 'kprobe/bpf_fentry_test6+0x5' will fail to attach
> > when CONFIG_X86_KERNEL_IBT option is enabled because of the
> > endbr instruction at the function entry.
> >
> > We would need to do manual attach with offset calculation based
> > on the CONFIG_X86_KERNEL_IBT option, which does not seem worth
> > the effort to me.
> >
> > Disabling these test when CONFIG_X86_KERNEL_IBT is enabled.
> >
> > Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> > ---
> >  .../bpf/prog_tests/get_func_ip_test.c         | 25 +++++++++++++++----
> >  1 file changed, 20 insertions(+), 5 deletions(-)
> >
> > diff --git a/tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c b/tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c
> > index 938dbd4d7c2f..cb0b78fb29df 100644
> > --- a/tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c
> > +++ b/tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c
> > @@ -2,6 +2,24 @@
> >  #include <test_progs.h>
> >  #include "get_func_ip_test.skel.h"
> >
> > +/* assume IBT is enabled when kernel configs are not available */
> > +#ifdef HAVE_GENHDR
> > +# include "autoconf.h"
> > +#else
> > +#  define CONFIG_X86_KERNEL_IBT 1
> > +#endif
> 
> this autoconf.h business is something I'd rather avoid, it would be
> great to be able to use libbpf's __kconfig support to detect
> CONFIG_X86_KERNEL_IBT instead? One way would be to mark test6/test7 as
> non-auto-loadable (SEC("?...")). Load only test1-tes5, run tests, in

aah so that's what the '?' prefix is for :))

> one of BPF programs propagate __kconfig CONFIG_X86_KERNEL_IBT to
> user-space through a global variable. Attach skeleton, trigger
> everything, remember whether IBT is enabled or not.
> 
> If it is defined, load skeleton again, but now enable test6 and test7
> and manually attach them through bpf_program__attach_kprobe()
> specifying offset as +5 or +9, depending on IBT. It's certainly a bit
> more code, but we'll actually test IBT stuff properly.
> 
> WDYT?

right, seems doable.. also I wonder how hard would it be to have some
generic support for that, maybe there are other users..  I'll check

thanks,
jirka

  reply	other threads:[~2022-07-31 21:14 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-24 21:21 [PATCH bpf-next 0/5] bpf: Fixes for CONFIG_X86_KERNEL_IBT Jiri Olsa
2022-07-24 21:21 ` [PATCH bpf-next 1/5] ftrace: Keep the resolved addr in kallsyms_callback Jiri Olsa
2022-07-24 21:21 ` [PATCH bpf-next 2/5] bpf: Adjust kprobe_multi entry_ip for CONFIG_X86_KERNEL_IBT Jiri Olsa
2022-07-24 21:21 ` [PATCH bpf-next 3/5] bpf: Use given function address for trampoline ip arg Jiri Olsa
2022-07-24 21:21 ` [PATCH bpf-next 4/5] selftests/bpf: Disable kprobe attach test with offset for CONFIG_X86_KERNEL_IBT Jiri Olsa
2022-07-29 22:15   ` Andrii Nakryiko
2022-07-31 21:14     ` Jiri Olsa [this message]
2022-07-24 21:21 ` [PATCH bpf-next 5/5] selftests/bpf: Fix kprobe get_func_ip tests " Jiri Olsa
2022-07-29 22:18 ` [PATCH bpf-next 0/5] bpf: Fixes " Andrii Nakryiko
2022-07-31 21:08   ` Jiri Olsa
2022-08-01 14:14     ` Jiri Olsa
2022-08-01 22:02     ` Andrii Nakryiko

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=YubwuidpHmjYt1Cg@krava \
    --to=olsajiri@gmail.com \
    --cc=andrii.nakryiko@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=haoluo@google.com \
    --cc=john.fastabend@gmail.com \
    --cc=kafai@fb.com \
    --cc=kpsingh@chromium.org \
    --cc=peterz@infradead.org \
    --cc=sdf@google.com \
    --cc=songliubraving@fb.com \
    --cc=yhs@fb.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.