public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
From: Eduard Zingerman <eddyz87@gmail.com>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Donglin Peng <dolinux.peng@gmail.com>,
	ast@kernel.org,  linux-kernel@vger.kernel.org,
	bpf@vger.kernel.org, Alan Maguire <alan.maguire@oracle.com>,
	Song Liu <song@kernel.org>, pengdonglin <pengdonglin@xiaomi.com>
Subject: Re: [RFC PATCH v4 1/7] libbpf: Extract BTF type remapping logic into helper function
Date: Wed, 05 Nov 2025 11:41:02 -0800	[thread overview]
Message-ID: <7f3586157e17d0ab2c34b16d2f7daf4955d0692f.camel@gmail.com> (raw)
In-Reply-To: <CAEf4BzZffw1sTJUBxwUnhx8XjQNMRf2-e+vUzOfyMqgMTpYsdA@mail.gmail.com>

On Wed, 2025-11-05 at 10:20 -0800, Andrii Nakryiko wrote:

[...]

> You don't like that I ask people to improve implementation?

Not at all.

> You don't like the implementation itself? Or are you suggesting that
> we should add a "generic" C implementation of
> lower_bound/upper_bound and use callbacks for comparison logic? What
> are you ranting about, exactly?

Actually, having it as a static inline function in a header would be
nice. I just tried that, and gcc is perfectly capable of inlining the
comparison function in -O2 mode.

I'm ranting about patch #5 being 101 insertions(+), 10 deletions(-)
and patch #4 being 119 insertions(+), 23 deletions(-),
while doing exactly the same thing.

And yes, this copy of binary search routine probably won't ever
change. But changes to the comparator logic are pretty much possible,
if we decide to include 'kind' as a secondary key one day.
And that change will have to happen twice.

> As I said, once binary search (of whatever kind, bounds or exact) is
> written for something like this, it doesn't have to ever be modified.
> I don't see this as a maintainability hurdle at all. But sharing code
> between libbpf and kernel is something to be avoided. Look at #ifdef
> __KERNEL__ sections of relo_core.c as one reason why.

  reply	other threads:[~2025-11-05 19:41 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-04 13:40 [RFC PATCH v4 0/7] libbpf: BTF performance optimizations with permutation and binary search Donglin Peng
2025-11-04 13:40 ` [RFC PATCH v4 1/7] libbpf: Extract BTF type remapping logic into helper function Donglin Peng
2025-11-04 23:16   ` Eduard Zingerman
2025-11-05  0:11   ` Andrii Nakryiko
2025-11-05  0:36     ` Eduard Zingerman
2025-11-05  0:57       ` Andrii Nakryiko
2025-11-05  1:23         ` Eduard Zingerman
2025-11-05 18:20           ` Andrii Nakryiko
2025-11-05 19:41             ` Eduard Zingerman [this message]
2025-11-06 17:09               ` Andrii Nakryiko
2025-11-04 13:40 ` [RFC PATCH v4 2/7] libbpf: Add BTF permutation support for type reordering Donglin Peng
2025-11-04 23:45   ` Eduard Zingerman
2025-11-05 11:31     ` Donglin Peng
2025-11-05  0:11   ` Andrii Nakryiko
2025-11-05  0:16     ` Eduard Zingerman
2025-11-05  1:04       ` Andrii Nakryiko
2025-11-05  1:20         ` Eduard Zingerman
2025-11-05 13:19           ` Donglin Peng
2025-11-05 18:32             ` Andrii Nakryiko
2025-11-05 18:23           ` Andrii Nakryiko
2025-11-05 19:23             ` Eduard Zingerman
2025-11-06 17:21               ` Andrii Nakryiko
2025-11-07  2:36             ` Donglin Peng
2025-11-07 17:43               ` Andrii Nakryiko
2025-11-05 12:52     ` Donglin Peng
2025-11-05 18:29       ` Andrii Nakryiko
2025-11-06  7:31         ` Donglin Peng
2025-11-06 17:12           ` Andrii Nakryiko
2025-11-07  1:39             ` Donglin Peng
2025-11-04 13:40 ` [RFC PATCH v4 3/7] libbpf: Optimize type lookup with binary search for sorted BTF Donglin Peng
2025-11-04 14:15   ` bot+bpf-ci
2025-11-05  0:06   ` Eduard Zingerman
2025-11-05  0:11   ` Andrii Nakryiko
2025-11-05  0:19     ` Eduard Zingerman
2025-11-05  0:54       ` Andrii Nakryiko
2025-11-05  1:17         ` Eduard Zingerman
2025-11-05 13:48           ` Donglin Peng
2025-11-05 16:52             ` Eduard Zingerman
2025-11-06  6:10               ` Donglin Peng
2025-11-05 18:11             ` Andrii Nakryiko
2025-11-06  7:49               ` Donglin Peng
2025-11-06 17:31                 ` Andrii Nakryiko
2025-11-07  4:57                   ` Donglin Peng
2025-11-07 17:01                     ` Andrii Nakryiko
2025-11-10  2:04                       ` Donglin Peng
2025-11-04 13:40 ` [RFC PATCH v4 4/7] libbpf: Implement lazy sorting validation for binary search optimization Donglin Peng
2025-11-05  0:29   ` Eduard Zingerman
2025-11-04 13:40 ` [RFC PATCH v4 5/7] btf: Optimize type lookup with binary search Donglin Peng
2025-11-04 17:14   ` Alexei Starovoitov
2025-11-05 13:22     ` Donglin Peng
2025-11-04 13:40 ` [RFC PATCH v4 6/7] btf: Add lazy sorting validation for " Donglin Peng
2025-11-04 13:40 ` [RFC PATCH v4 7/7] selftests/bpf: Add test cases for btf__permute functionality Donglin Peng
2025-11-05  0:41   ` Eduard Zingerman

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=7f3586157e17d0ab2c34b16d2f7daf4955d0692f.camel@gmail.com \
    --to=eddyz87@gmail.com \
    --cc=alan.maguire@oracle.com \
    --cc=andrii.nakryiko@gmail.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=dolinux.peng@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pengdonglin@xiaomi.com \
    --cc=song@kernel.org \
    /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