Re: [PATCH 17/39] bpf: resolve_pseudo_ldimm64(): take handling of a single ldimm64 insn into helper
From: Andrii Nakryiko <hidden>
Date: 2024-08-13 03:32:48
Also in:
bpf, cgroups, kvm, linux-fsdevel
On Mon, Aug 12, 2024 at 7:06 PM Al Viro [off-list ref] wrote:
On Mon, Aug 12, 2024 at 01:05:19PM -0700, Andrii Nakryiko wrote:quoted
On Fri, Aug 9, 2024 at 8:29???PM Al Viro [off-list ref] wrote:quoted
On Thu, Aug 08, 2024 at 09:51:34AM -0700, Alexei Starovoitov wrote:quoted
The bpf changes look ok and Andrii's approach is easier to grasp. It's better to route bpf conversion to CLASS(fd,..) via bpf-next, so it goes through bpf CI and our other testing. bpf patches don't seem to depend on newly added CLASS(fd_pos, ... and fderr, so pretty much independent from other patches.Representation change and switch to accessors do matter, though. OTOH, I can put just those into never-rebased branch (basically, "introduce fd_file(), convert all accessors to it" + "struct fd representation change" + possibly "add struct fd constructors, get rid of __to_fd()", for completeness sake), so you could pull it. Otherwise you'll get textual conflicts on all those f.file vs. fd_file(f)...Yep, makes sense. Let's do that, we can merge that branch into bpf-next/master and I will follow up with my changes on top of that. Let's just drop the do_one_ldimm64() extraction, and keep fdput(f) logic, plus add fd_file() accessor changes. I'll then add a switch to CLASS(fd) after a bit more BPF-specific clean ups. This code is pretty sensitive, so I'd rather have all the non-trivial refactoring done separately. Thanks!Done (#stable-struct_fd);
great, thanks, I'll look at this tomorrow
BTW, which tree do you want "convert __bpf_prog_get() to CLASS(fd)" to go through?
So we seem to have the following for BPF-related stuff: [PATCH 16/39] convert __bpf_prog_get() to CLASS(fd, ...) This looks to be ready to go in. [PATCH 17/39] bpf: resolve_pseudo_ldimm64(): take handling of a single ldimm64 insn into helper This one I'd like to rework differently and land it through bpf-next. [PATCH 18/39] bpf maps: switch to CLASS(fd, ...) This one touches __bpf_map_get() which I'm going to remove or refactor as part of the abovementioned refactoring, so there will be conflicts. [PATCH 19/39] fdget_raw() users: switch to CLASS(fd_raw, ...) This one touches a bunch of cases across multiple systems, including BPF's kernel/bpf/bpf_inode_storage.c. So how about this. We take #16 as is through bpf-next, change how #17 is done, take 18 mostly as is but adjust as necessary. As for #19, if you could split out changes in bpf_inode_storage.c to a separate patch, we can also apply it in bpf-next as one coherent set. I'll send all that as one complete patch set for you to do the final review. WDYT?