Hello Andrii, On Fri, Oct 2, 2020 at 3:09 AM Andrii Nakryiko <andriin@xxxxxx> wrote: > Patch set implements logic in libbpf to auto-adjust memory size (1-, 2-, 4-, > 8-bytes) of load/store (LD/ST/STX) instructions which have BPF CO-RE field > offset relocation associated with it. In practice this means transparent > handling of 32-bit kernels, both pointer and unsigned integers. Signed > integers are not relocatable with zero-extending loads/stores, so libbpf > poisons them and generates a warning. If/when BPF gets support for sign-extending > loads/stores, it would be possible to automatically relocate them as well. > > All the details are contained in patch #1 comments and commit message. > Patch #2 is a simple change in libbpf to make advanced testing with custom BTF > easier. Patch #3 validates correct uses of auto-resizable loads, as well as > check that libbpf fails invalid uses. > > I'd really appreciate folks that use BPF on 32-bit architectures to test this > out with their BPF programs and report if there are any problems with the > approach. > > Cc: Luka Perkov <luka.perkov@xxxxxxxxxx> First, thank you for the support and sending this series. It took us a bit longer to run the tests as our target hardware still did not fully get complete mainline support and we had to rebase our patches. These are not related to BPF. Related to this patch, we have tested various BPF programs with this patch, and can confirm that it fixed previous issues with pointer offsets that we had and reported at: https://lore.kernel.org/r/CA+XBgLU=8PFkP8S32e4gpst0=R4MFv8rZA5KaO+cEPYSnTRYYw@xxxxxxxxxxxxxx/. Most of our programs now work and we are currently debugging other programs that still aren't working. We are still not sure if the remaining issues are related to this or not, but will let you know sometime this week after further and more detailed investigation. Thanks, Luka