On Fri, Oct 27, 2023 at 01:33:09PM -0700, Andrii Nakryiko wrote: > 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 In this case the code in question is: __u8 direction = 0; md.u.md2.dir = direction; IOW the problem is assigning to bitfields, not reading from them. Is that something that libbpf needs to support as well? Thanks, Daniel