Re: [PATCH v4 dwarves] btf: Add support for the floating-point types

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Wed, Mar 10, 2021 at 01:35:39PM -0800, Andrii Nakryiko escreveu:
> On Wed, Mar 10, 2021 at 1:02 PM Ilya Leoshkevich <iii@xxxxxxxxxxxxx> wrote:
> >
> > On Wed, 2021-03-10 at 12:25 -0800, Andrii Nakryiko wrote:
> > > On Wed, Mar 10, 2021 at 12:16 PM Ilya Leoshkevich <iii@xxxxxxxxxxxxx>
> > > wrote:
> > > >
> > > > Some BPF programs compiled on s390 fail to load, because s390
> > > > arch-specific linux headers contain float and double types.
> > > >
> > > > Fix as follows:
> > > >
> > > > - Make the DWARF loader fill base_type.float_type.
> > > >
> > > > - Introduce the --btf_gen_floats command-line parameter, so that
> > > >   pahole could be used to build both the older and the newer
> > > > kernels.
> > > >
> > > > - libbpf introduced the support for the floating-point types in
> > > > commit
> > > >   986962fade5, so update the libbpf submodule to that version and
> > > > use
> > > >   the new btf__add_float() function in order to emit the floating-
> > > > point
> > > >   types when not in the compatibility mode.
> > > >
> > > > - Make the BTF loader recognize the new BTF kind.
> > > >
> > > > Example of the resulting entry in the vmlinux BTF:
> > > >
> > > >     [7164] FLOAT 'double' size=8
> > > >
> > > > when building with:
> > > >
> > > >     LLVM_OBJCOPY=${OBJCOPY} ${PAHOLE} -J ${1} --btf_gen_floats
> > > >
> > > > Signed-off-by: Ilya Leoshkevich <iii@xxxxxxxxxxxxx>
> > > > ---
> > >
> > > So it looks good to me overall, but here's the question about using
> > > this --btf-gen-floats flag from link-vmlinux.sh script. If you
> > > specify
> > > that flag for an old pahole, it will probably error out, right? So
> > > that means we'll need to do feature detection for pahole supported
> > > features, right?..
> >
> > I was planning to just bump the version in this check:
> >
> >     if [ "${pahole_ver}" -lt "116" ]; then
> 
> No-no-no, we can't just arbitrarily say that the minimal pahole
> version is now 1.21, while 1.16 would work just fine in almost all
> cases on almost all architectures.
> 
> >
> > But we could also keep allowing 1.16-1.20 and pass the new flag on
> > 1.21+ only.
> >
> > What do you think?
> 
> I think we'll have to do the extra check. I'd also add something like
> --btf-gen-all, that would turn on all the supported BTF features. So
> that people that generate BTF for kernels externally (e.g., for old
> kernels to support BPF CO-RE), could just do --btf-gen-all, instead of
> potentially longer list of all the BTF optional subsets
> (--btf-gen-floats --btf-gen-somemore --btf-gen-morecool etc). That
> doesn't have to happen in this patch, of course.
> 
> So with what we have now:
> 
> Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx>

Ok, so I'm taking this v4, collecting Andrii's Acked-by and waiting for
the --btf-gen-all patch as a followup,

Thanks,

- Arnaldo



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux