https://bugzilla.redhat.com/show_bug.cgi?id=2260538

Toke Høiland-Jørgensen <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]



--- Comment #16 from Toke Høiland-Jørgensen <[email protected]> ---
(In reply to Neal Gompa from comment #7)
> > /var/lib/kepler/bpfassets/amd64_kepler.bpf.o
> 
> This should probably be installed into "%{_libexecdir}/kepler/bpfassets"
> instead.

Actually, we've been trying to establish %{_libdir}/bpf/ as the place to put
BPF object files, cf:
https://src.fedoraproject.org/rpms/xdp-tools/blob/rawhide/f/xdp-tools.spec#_105

However, it looks like the loader code hard-codes the location of the object
file:
https://github.com/sustainable-computing-io/kepler/blob/main/pkg/bpfassets/attacher/libbpf_attacher.go#L41

This should probably be changed so the Makefile can override it.

(In reply to Viktor Malik from comment #15)
> From specfile:
> 
> > BuildRequires: [...] libbpf
> 
> How does Kepler load the BPF program? I assume it uses libbpf so libbpf
> should be a runtime dependency (i.e. in "Requires"), unless you're linking
> against it statically.
> 
> On the contrary, I'd expect libbpf-devel in "BuildRequires".

Looking at the top-level Makefile, it does appear that Kepler links statically
against libbpf:
https://github.com/sustainable-computing-io/kepler/blob/main/Makefile#L51

Not sure if we have a policy for this in Fedora, but at least in RHEL this
won't be allowed. So at some point this needs to be changed to link dynamically
against the system libbpf.

> > New question :) - if this is platform-independent eBPF bytecode, why prefix 
> > the name with amd64?  For people on other arches this is going to be a 
> > source of confusion - looking at my aarch64 laptop and my confusion RN for 
> > example ;)
> 
> Agreed with Nathan here. BPF binaries are arch-independent (they are ELFs
> with a special "BPF" architecture) so the prefix shouldn't be there.

AFAICT from the Kepler sources, it's arch-specific because the build includes
different versions of vmlinux.h depending on the defined architecture:
https://github.com/sustainable-computing-io/kepler/blob/main/bpfassets/libbpf/src/kepler.bpf.h

This should not be necessary for most accesses, CO-RE can be used instead. I am
not sure if there are some arch-specific structs that Kepler needs to access,
though, and whether CO-RE can handle those.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
https://bugzilla.redhat.com/show_bug.cgi?id=2260538

Report this comment as SPAM: 
https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202260538%23c16
--
_______________________________________________
package-review mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to