Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Alexei Starovoitov <alexei.starovoitov@gmail.com>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Andrii Nakryiko <andriin@fb.com>, bpf <bpf@vger.kernel.org>,
	Networking <netdev@vger.kernel.org>,
	Alexei Starovoitov <ast@fb.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Kernel Team <kernel-team@fb.com>
Subject: Re: [PATCH bpf-next 0/9] Add support for type-based and enum value-based CO-RE relocations
Date: Tue, 18 Aug 2020 18:37:03 -0700	[thread overview]
Message-ID: <20200819013703.cgbty6b6ufp7wuqm@ast-mbp.dhcp.thefacebook.com> (raw)
In-Reply-To: <CAEf4BzbpJ4M0X2XPEadXPzPM+2cOPf-9QDMp=2qz3VvY+bbqsg@mail.gmail.com>

On Tue, Aug 18, 2020 at 06:31:51PM -0700, Andrii Nakryiko wrote:
> On Tue, Aug 18, 2020 at 6:21 PM Alexei Starovoitov
> <alexei.starovoitov@gmail.com> wrote:
> >
> > On Tue, Aug 18, 2020 at 03:39:12PM -0700, Andrii Nakryiko wrote:
> > > This patch set adds libbpf support to two new classes of CO-RE relocations:
> > > type-based (TYPE_EXISTS/TYPE_SIZE/TYPE_ID_LOCAL/TYPE_ID_TARGET) and enum
> > > value-vased (ENUMVAL_EXISTS/ENUMVAL_VALUE):
> > >
> > > LLVM patches adding these relocation in Clang:
> > >   - __builtin_btf_type_id() ([0], [1], [2]);
> > >   - __builtin_preserve_type_info(), __builtin_preserve_enum_value() ([3], [4]).
> >
> > I've applied patches 1-4, since they're somewhat indepedent of new features in 5+.
> > What should be the process to land the rest?
> > Land llvm first and add to bpf/README.rst that certain llvm commmits are necessary
> > to build the tests?
> 
> Clang patches landed about two weeks ago, so they are already in Clang
> nightly builds. libbpf CI should work fine as it uses clang-12 nightly
> builds.
> 
> 
> > But CI will start failing. We can wait for that to be fixed,
> > but I wonder is there way to detect new clang __builtins automatically in
> > selftests and skip them if clang is too old?
> 
> There is a way to detect built-ins availability (__has_builtin macro,
> [0]) from C code. If we want to do it from Makefile, though, we'd need
> to do feature detection similar to how we did reallocarray and
> libbpf-elf-mmap detection I just removed in the other patch set :).
> Then we'll also need to somehow blacklist tests. Maintaining that
> would be a pain, honestly. So far selftests/bpf assumed the latest
> Clang, though, so do you think we should change that, or you were
> worried that patches hadn't landed yet?

I was hoping that libbpf.h can have builtins unconditionally, but selftests can
do feature detection automatically and mark them as 'skip'.
People have been forever complaining about constant need to upgrade clang.
In this case I think the feature is not fundamental enough (unlike the first
set of builtins) to force adoption of new clang.
If/when we start using these new builtins beyond selftests
that would be a different story.

  reply	other threads:[~2020-08-19  1:37 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-18 22:39 Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 1/9] libbpf: improve error logging for mismatched BTF kind cases Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 2/9] libbpf: clean up and improve CO-RE reloc logging Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 3/9] libbpf: improve relocation ambiguity detection Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 4/9] selftests/bpf: add test validating failure on ambiguous relocation value Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 5/9] libbpf: implement type-based CO-RE relocations support Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 6/9] selftests/bpf: test TYPE_EXISTS and TYPE_SIZE CO-RE relocations Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 7/9] selftests/bpf: add CO-RE relo test for TYPE_ID_LOCAL/TYPE_ID_TARGET Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 8/9] libbpf: implement enum value-based CO-RE relocations Andrii Nakryiko
2020-08-18 22:39 ` [PATCH bpf-next 9/9] selftests/bpf: add tests for ENUMVAL_EXISTS/ENUMVAL_VALUE relocations Andrii Nakryiko
2020-08-19  1:21 ` [PATCH bpf-next 0/9] Add support for type-based and enum value-based CO-RE relocations Alexei Starovoitov
2020-08-19  1:31   ` Andrii Nakryiko
2020-08-19  1:37     ` Alexei Starovoitov [this message]
2020-08-19  5:32       ` 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=20200819013703.cgbty6b6ufp7wuqm@ast-mbp.dhcp.thefacebook.com \
    --to=alexei.starovoitov@gmail.com \
    --cc=andrii.nakryiko@gmail.com \
    --cc=andriin@fb.com \
    --cc=ast@fb.com \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=kernel-team@fb.com \
    --cc=netdev@vger.kernel.org \
    --subject='Re: [PATCH bpf-next 0/9] Add support for type-based and enum value-based CO-RE relocations' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).