On 1/16/23 2:35 PM, Toke Høiland-Jørgensen wrote:
"Daniel T. Lee" <danieltimlee@xxxxxxxxx> writes:
On Mon, Jan 16, 2023 at 6:38 AM Alexei Starovoitov
<alexei.starovoitov@xxxxxxxxx> wrote:
On Sat, Jan 14, 2023 at 11:16 PM Daniel T. Lee <danieltimlee@xxxxxxxxx> wrote:
Currently, there are many programs under samples/bpf to test the
various functionality of BPF that have been developed for a long time.
However, the kernel (BPF) has changed a lot compared to the 2016 when
some of these test programs were first introduced.
Therefore, some of these programs use the deprecated function of BPF,
and some programs no longer work normally due to changes in the API.
To list some of the kernel changes that this patch set is focusing on,
- legacy BPF map declaration syntax support had been dropped [1]
- bpf_trace_printk() always append newline at the end [2]
- deprecated styled BPF section header (bpf_load style) [3]
- urandom_read tracepoint is removed (used for testing overhead) [4]
- ping sends packet with SOCK_DGRAM instead of SOCK_RAW [5]*
- use "vmlinux.h" instead of including individual headers
In addition to this, this patchset tries to modernize the existing
testing scripts a bit. And for network-related testing programs,
a separate header file was created and applied. (To use the
Endianness conversion function from xdp_sample and bunch of constants)
Nice set of cleanups. Applied.
As a follow up could you convert some of them to proper selftests/bpf ?
Unfortunately samples/bpf will keep bit rotting despite your herculean efforts.
I really appreciate for your compliment!
I'll try to convert the existing sample to selftest in the next patch.
This would be awesome, thanks a lot Daniel!
Maybe this is a good time to mention that we recently ported some of the
XDP utilities from samples/bpf to xdp-tools, in the form of the
'xdp-bench' utility:
https://github.com/xdp-project/xdp-tools/tree/master/xdp-bench
It's basically a combination of all the xdp_redirect* samples, but also
includes the functionality from the xdp_rxq_info sample program (i.e.,
the ability to monitor RXQs and use other return codes).
I'm planning to submit a patch to remove those utilities from
samples/bpf after we tag the next release of xdp-tools (have one or two
outstanding issues to clear before we do that), but wanted to give you a
head's up so you don't spend any time on those particular utilities when
you're cleaning up samples :)
Nice! Once we're through with most relevant ones from samples/bpf, it would
be great to only have a readme in that dir (and that's really all) with pointers
for developers on how to get started.. including BPF selftests, xdp tools, links
to ebpf.io/applications and ebpf.io/infrastructure, etc where more resources
can be found, essentially a small getting started doc for BPF devs.