Re: [RFC bpf-next 5/6] bpf: selftests: test_tunnel: Disable CO-RE relocations

From: Andrii Nakryiko
Date: Fri Oct 27 2023 - 16:33:26 EST


On Fri, Oct 27, 2023 at 11:46 AM Daniel Xu <dxu@xxxxxxxxx> wrote:
>
> Switching to vmlinux.h definitions seems to make the verifier very
> unhappy with bitfield accesses. The error is:
>
> ; md.u.md2.dir = direction;
> 33: (69) r1 = *(u16 *)(r2 +11)
> misaligned stack access off (0x0; 0x0)+-64+11 size 2
>
> It looks like disabling CO-RE relocations seem to make the error go
> away.
>

for accessing bitfields libbpf provides
BPF_CORE_READ_BITFIELD_PROBED() and BPF_CORE_READ_BITFIELD() macros

> Signed-off-by: Daniel Xu <dxu@xxxxxxxxx>
> ---
> tools/testing/selftests/bpf/progs/test_tunnel_kern.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tools/testing/selftests/bpf/progs/test_tunnel_kern.c b/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
> index 3065a716544d..ec7e04e012ae 100644
> --- a/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
> +++ b/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
> @@ -6,6 +6,7 @@
> * modify it under the terms of version 2 of the GNU General Public
> * License as published by the Free Software Foundation.
> */
> +#define BPF_NO_PRESERVE_ACCESS_INDEX
> #include "vmlinux.h"
> #include <bpf/bpf_helpers.h>
> #include <bpf/bpf_endian.h>
> --
> 2.42.0
>