|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1 |
|
| #
4009c95f |
| 22-Jul-2024 |
Martin KaFai Lau <[email protected]> |
selftests/bpf: Ensure the unsupported struct_ops prog cannot be loaded
There is an existing "bpf_tcp_ca/unsupp_cong_op" test to ensure the unsupported tcp-cc "get_info" struct_ops prog cannot be loa
selftests/bpf: Ensure the unsupported struct_ops prog cannot be loaded
There is an existing "bpf_tcp_ca/unsupp_cong_op" test to ensure the unsupported tcp-cc "get_info" struct_ops prog cannot be loaded.
This patch adds a new test in the bpf_testmod such that the unsupported ops test does not depend on other kernel subsystem where its supporting ops may be changed in the future.
Signed-off-by: Martin KaFai Lau <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]>
show more ...
|
|
Revision tags: v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2 |
|
| #
1a4b858b |
| 30-May-2024 |
Kui-Feng Lee <[email protected]> |
selftests/bpf: test struct_ops with epoll
Verify whether a user space program is informed through epoll with EPOLLHUP when a struct_ops object is detached.
The BPF code in selftests/bpf/progs/struc
selftests/bpf: test struct_ops with epoll
Verify whether a user space program is informed through epoll with EPOLLHUP when a struct_ops object is detached.
The BPF code in selftests/bpf/progs/struct_ops_module.c has become complex. Therefore, struct_ops_detach.c has been added to segregate the BPF code for detachment tests from the BPF code for other tests based on the recommendation of Andrii Nakryiko.
Suggested-by: Andrii Nakryiko <[email protected]> Signed-off-by: Kui-Feng Lee <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc1, v6.9 |
|
| #
7b9959b8 |
| 07-May-2024 |
Andrii Nakryiko <[email protected]> |
selftests/bpf: shorten subtest names for struct_ops_module test
Drive-by clean up, we shouldn't use meaningless "test_" prefix for subtest names.
Signed-off-by: Andrii Nakryiko <[email protected]>
selftests/bpf: shorten subtest names for struct_ops_module test
Drive-by clean up, we shouldn't use meaningless "test_" prefix for subtest names.
Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
show more ...
|
| #
41df0733 |
| 07-May-2024 |
Andrii Nakryiko <[email protected]> |
selftests/bpf: validate struct_ops early failure detection logic
Add a simple test that validates that libbpf will reject isolated struct_ops program early with helpful warning message.
Also valida
selftests/bpf: validate struct_ops early failure detection logic
Add a simple test that validates that libbpf will reject isolated struct_ops program early with helpful warning message.
Also validate that explicit use of such BPF program through BPF skeleton after BPF object is open won't trigger any warnings.
Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
show more ...
|
| #
9d66d60e |
| 07-May-2024 |
Andrii Nakryiko <[email protected]> |
selftests/bpf: add another struct_ops callback use case test
Add a test which tests the case that was just fixed. Kernel has full type information about callback, but user explicitly nulls out the r
selftests/bpf: add another struct_ops callback use case test
Add a test which tests the case that was just fixed. Kernel has full type information about callback, but user explicitly nulls out the reference to declaratively set BPF program reference.
Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
show more ...
|
|
Revision tags: v6.9-rc7, v6.9-rc6 |
|
| #
1bba3b3d |
| 28-Apr-2024 |
Andrii Nakryiko <[email protected]> |
selftests/bpf: validate nulled-out struct_ops program is handled properly
Add a selftests validating that it's possible to have some struct_ops callback set declaratively, then disable it (by settin
selftests/bpf: validate nulled-out struct_ops program is handled properly
Add a selftests validating that it's possible to have some struct_ops callback set declaratively, then disable it (by setting to NULL) programmatically. Libbpf should detect that such program should not be loaded. Otherwise, it will unnecessarily fail the loading when the host kernel does not have the type information.
Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
show more ...
|
|
Revision tags: v6.9-rc5, v6.9-rc4, v6.9-rc3 |
|
| #
ba0cbe2b |
| 04-Apr-2024 |
Kui-Feng Lee <[email protected]> |
selftests/bpf: Make sure libbpf doesn't enforce the signature of a func pointer.
The verifier in the kernel ensures that the struct_ops operators behave correctly by checking that they access parame
selftests/bpf: Make sure libbpf doesn't enforce the signature of a func pointer.
The verifier in the kernel ensures that the struct_ops operators behave correctly by checking that they access parameters and context appropriately. The verifier will approve a program as long as it correctly accesses the context/parameters, regardless of its function signature. In contrast, libbpf should not verify the signature of function pointers and functions to enable flexibility in loading various implementations of an operator even if the signature of the function pointer does not match those in the implementations or the kernel.
With this flexibility, user space applications can adapt to different kernel versions by loading a specific implementation of an operator based on feature detection.
This is a follow-up of the commit c911fc61a7ce ("libbpf: Skip zeroed or null fields if not found in the kernel type.")
Signed-off-by: Kui-Feng Lee <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
show more ...
|
|
Revision tags: v6.9-rc2, v6.9-rc1 |
|
| #
26a7cf2b |
| 13-Mar-2024 |
Kui-Feng Lee <[email protected]> |
selftests/bpf: Ensure libbpf skip all-zeros fields of struct_ops maps.
A new version of a type may have additional fields that do not exist in older versions. Previously, libbpf would reject struct_
selftests/bpf: Ensure libbpf skip all-zeros fields of struct_ops maps.
A new version of a type may have additional fields that do not exist in older versions. Previously, libbpf would reject struct_ops maps with a new version containing extra fields when running on a machine with an old kernel. However, we have updated libbpf to ignore these fields if their values are all zeros or null in order to provide backward compatibility.
Signed-off-by: Kui-Feng Lee <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
show more ...
|
|
Revision tags: v6.8 |
|
| #
5bab7a27 |
| 06-Mar-2024 |
Eduard Zingerman <[email protected]> |
selftests/bpf: Test struct_ops map definition with type suffix
Extend struct_ops_module test case to check if it is possible to use '___' suffixes for struct_ops type specification.
Signed-off-by:
selftests/bpf: Test struct_ops map definition with type suffix
Extend struct_ops_module test case to check if it is possible to use '___' suffixes for struct_ops type specification.
Signed-off-by: Eduard Zingerman <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Acked-by: David Vernet <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
show more ...
|
|
Revision tags: v6.8-rc7 |
|
| #
0623e733 |
| 29-Feb-2024 |
Kui-Feng Lee <[email protected]> |
selftests/bpf: Test if shadow types work correctly.
Change the values of fields, including scalar types and function pointers, and check if the struct_ops map works as expected.
The test changes th
selftests/bpf: Test if shadow types work correctly.
Change the values of fields, including scalar types and function pointers, and check if the struct_ops map works as expected.
The test changes the field "test_2" of "testmod_1" from the pointer to test_2() to pointer to test_3() and the field "data" to 13. The function test_2() and test_3() both compute a new value for "test_2_result", but in different way. By checking the value of "test_2_result", it ensures the struct_ops map works as expected with changes through shadow types.
Signed-off-by: Kui-Feng Lee <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
show more ...
|
|
Revision tags: v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3, v6.8-rc2, v6.8-rc1 |
|
| #
0253e059 |
| 19-Jan-2024 |
Kui-Feng Lee <[email protected]> |
selftests/bpf: test case for register_bpf_struct_ops().
Create a new struct_ops type called bpf_testmod_ops within the bpf_testmod module. When a struct_ops object is registered, the bpf_testmod mod
selftests/bpf: test case for register_bpf_struct_ops().
Create a new struct_ops type called bpf_testmod_ops within the bpf_testmod module. When a struct_ops object is registered, the bpf_testmod module will invoke test_2 from the module.
Signed-off-by: Kui-Feng Lee <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
show more ...
|