qemu-devel
[Top][All Lists]
Advanced

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

Re: ebpf/rss.bpf.skeleton.h generated by what?


From: Markus Armbruster
Subject: Re: ebpf/rss.bpf.skeleton.h generated by what?
Date: Mon, 09 May 2022 07:27:55 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Jason Wang <jasowang@redhat.com> writes:

> On Sat, May 7, 2022 at 2:58 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>> On 5/7/22 08:53, Jason Wang wrote:
>> > On Sat, May 7, 2022 at 2:46 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
>> >>
>> >> On 5/7/22 07:05, Jason Wang wrote:
>> >>>> If it was generated by something in the tree, it should not be committed
>> >>>> to git.  Doesn't look like it is.
>> >>> Andrew may know more.
>> >>>
>> >>> I remember it was generated by libbpf.
>> >>
>> >> What is the source?
>> >
>> > It's tools/ebpf/rss.bpf.c.

Aha:

    $ cat tools/ebpf/Makefile.ebpf
    [...]
    $(OBJS):  %.o:%.c
            $(CLANG) $(INC_FLAGS) \
                    -D__KERNEL__ -D__ASM_SYSREG_H \
                    -I../include $(LINUXINCLUDE) \
                    $(EXTRA_CFLAGS) -c $< -o -| $(LLC) -march=bpf -filetype=obj 
-o $@
            bpftool gen skeleton rss.bpf.o > rss.bpf.skeleton.h
--->        cp rss.bpf.skeleton.h ../../ebpf/

and

    $ cat docs/devel/ebpf_rss.rst
    [...]
    RSS eBPF program
    ----------------

    RSS program located in ebpf/rss.bpf.skeleton.h generated by bpftool.
    So the program is part of the qemu binary.
    Initially, the eBPF program was compiled by clang and source code located 
at tools/ebpf/rss.bpf.c.
    Prerequisites to recompile the eBPF program (regenerate 
ebpf/rss.bpf.skeleton.h):

            llvm, clang, kernel source tree, bpftool
            Adjust Makefile.ebpf to reflect the location of the kernel source 
tree

            $ cd tools/ebpf
            $ make -f Makefile.ebpf
    [...]

Together, this answers my "what" question.  It doesn't answer my next
question: why?  That one gets answered ...

>> Thanks, maybe we can reuse some of the support for cross compilation
>> that will be introduced soon.
>
> That would be better.

... here:

>                       The reason we don't auto generate during make is
> to avoid adding new dependencies (where libbpf/bpftool is not popular
> at that time).

Always, always, *always* document your reasons for doing stuff right in
the commit message, unless they are blindingly obvious.  I understand
reasons can be obvious enough to the author.  Document them anyway if
there is any chance they are not obvious to others.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]