On 8/28/24 11:28 PM, Eduard Zingerman wrote:
On Tue, 2024-08-27 at 17:58 -0700, Martin KaFai Lau wrote:
[...]
+SEC("struct_ops/test_epilogue_exit")
+__naked int test_epilogue_exit(void)
+{
+ asm volatile (
+ "r1 = *(u64 *)(r1 +0);"
+ "r2 = *(u32 *)(r1 +0);"
+ "if r2 == 0 goto +3;"
+ "r0 = 0;"
+ "*(u32 *)(r1 + 0) = 0;"
llvm17 cannot take "*(u32 *)(r1 +0) = 0".
Instead:
r3 = 0;
*(u32 *)(r1 + 0) = r3;
The above solved the llvm17 error:
https://github.com/kernel-patches/bpf/actions/runs/10586206183/job/29334690461
However, there is still a zext with s390 that added extra insn and failed the
__xlated check. will try an adjustment in the tests to avoid the zext.
Another option would be to limit archs for the test, e.g. use
__arch_x86_64 and __arch_arm64.
Ah. good to know.
I have used all 64bits ops to solve it. It passed the earlier bpf CI run:
https://github.com/kernel-patches/bpf/actions/runs/10590714532
I will respin with the 64bits ops solution.