BPF List
 help / color / mirror / Atom feed
From: Eduard Zingerman <eddyz87@gmail.com>
To: Ihor Solodrai <ihor.solodrai@pm.me>,
	bpf@vger.kernel.org, andrii@kernel.org
Cc: ast@kernel.org, daniel@iogearbox.net, mykolal@fb.com
Subject: Re: [PATCH bpf-next 2/2] selftests/bpf: do not update vmlinux.h unnecessarily
Date: Wed, 28 Aug 2024 15:02:11 -0700	[thread overview]
Message-ID: <b48f348c76dd5b724384aef7c7c067877b28ee5b.camel@gmail.com> (raw)
In-Reply-To: <20240828174608.377204-2-ihor.solodrai@pm.me>

On Wed, 2024-08-28 at 17:46 +0000, Ihor Solodrai wrote:
> %.bpf.o objects depend on vmlinux.h, which makes them transitively
> dependent on unnecessary libbpf headers. However vmlinux.h doesn't
> actually change as often.
> 
> When generating vmlinux.h, compare it to a previous version and update
> it only if there are changes.
> 
> Example of build time improvement (after first clean build):
>   $ touch ../../../lib/bpf/bpf.h
>   $ time make -j8
> Before: real  1m37.592s
> After:  real  0m27.310s
> 
> Notice that %.bpf.o gen step is skipped if vmlinux.h hasn't changed.
> 
> Link: https://lore.kernel.org/bpf/CAEf4BzY1z5cC7BKye8=A8aTVxpsCzD=p1jdTfKC7i0XVuYoHUQ@mail.gmail.com
> 
> Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
> ---

Unfortunately, I think that this is a half-measure.
E.g. the following command forces tests rebuild for me:

  touch ../../../../kernel/bpf/verifier.c; \
  make -j22 -C ../../../../; \
  time make test_progs

To workaround this we need to enable reproducible_build option:

    diff --git a/scripts/Makefile.btf b/scripts/Makefile.btf
    index b75f09f3f424..8cd648f3e32b 100644
    --- a/scripts/Makefile.btf
    +++ b/scripts/Makefile.btf
    @@ -19,7 +19,7 @@ pahole-flags-$(call test-ge, $(pahole-ver), 125)      += --skip_encoding_btf_inconsis
     else

     # Switch to using --btf_features for v1.26 and later.
    -pahole-flags-$(call test-ge, $(pahole-ver), 126)  = -j --btf_features=encode_force,var,float,enum64,decl_tag,type_tag,optimized_func,consistent_func,decl_tag_kfuncs
    +pahole-flags-$(call test-ge, $(pahole-ver), 126)  = -j --btf_features=encode_force,var,float,enum64,decl_tag,type_tag,optimized_func,consistent_func,decl_tag_kfuncs,reproducible_build

     ifneq ($(KBUILD_EXTMOD),)
     module-pahole-flags-$(call test-ge, $(pahole-ver), 126) += --btf_features=distilled_base

Question to the mailing list: do we want this?

[...]


  reply	other threads:[~2024-08-28 22:02 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-28 17:46 [PATCH bpf-next 1/2] selftests/bpf: specify libbpf headers required for %.bpf.o progs Ihor Solodrai
2024-08-28 17:46 ` [PATCH bpf-next 2/2] selftests/bpf: do not update vmlinux.h unnecessarily Ihor Solodrai
2024-08-28 22:02   ` Eduard Zingerman [this message]
2024-08-28 23:25     ` Alexei Starovoitov
2024-08-30 20:34     ` Andrii Nakryiko
2024-08-30 21:03       ` Alan Maguire
2024-08-30 23:42         ` Arnaldo Carvalho de Melo
2024-08-30 21:23       ` Mykyta Yatsenko
2024-08-30 22:18         ` Andrii Nakryiko
2024-08-31 18:18       ` Ihor Solodrai
2024-09-03 16:58         ` Andrii Nakryiko
2024-08-28 21:20 ` [PATCH bpf-next 1/2] selftests/bpf: specify libbpf headers required for %.bpf.o progs Eduard Zingerman
2024-08-30 20:40 ` patchwork-bot+netdevbpf

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=b48f348c76dd5b724384aef7c7c067877b28ee5b.camel@gmail.com \
    --to=eddyz87@gmail.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=ihor.solodrai@pm.me \
    --cc=mykolal@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox