Message ID | 20231011152725.95895-1-hffilwlqm@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | bpf, x64: Fix tailcall hierarchy | expand |
PING On 11/10/23 23:27, Leon Hwang wrote: > This patchset fixes a tailcall hierarchy issue with a better solution than v1[0]. > > v1 solution stores tail_call_cnt on the stack of bpf prog: > > | STACK | > +---------+ RBP > | | > | | > | | > +--| tcc_ptr | > +->| tcc | > | rbx | > +---------+ RSP > > v2 solution stores tail_call_cnt on the stack of bpf prog's caller: > > | STACK | > | | > | rip | > +->| tcc | > | | rip | > | | rbp | > | +---------+ RBP > | | | > | | | > | | | > +--| tcc_ptr | > | rbx | > +---------+ RSP > > With this change, it requires less instructions to resolve this issue. > > For more resolving details, please read the following patches. > > The issue is confirmed in the discussions of "bpf, x64: Fix tailcall infinite > loop"[1]. > > Currently, I only resolve this issue on x86. The ones on arm64, s390x and > loongarch are waiting to be resolved. So, the ci pipeline fails to run for this > issue fixing. > > Hopefully, this issue on s390x and arm64 will be resolved soon. > > v1 -> v2: > * address comments from Stanislav > * Separate moving emit_nops() as first patch. > > Links: > [0] https://lore.kernel.org/bpf/20231005145814.83122-1-hffilwlqm@gmail.com/ > [1] https://lore.kernel.org/bpf/6203dd01-789d-f02c-5293-def4c1b18aef@gmail.com/ > > Leon Hwang (4): > bpf, x64: Emit nops for X86_PATCH > bpf, x64: Fix tailcall hierarchy > bpf, x64: Load tail_call_cnt pointer > selftests/bpf: Add testcases for tailcall hierarchy fixing > > arch/x86/net/bpf_jit_comp.c | 99 +++-- > .../selftests/bpf/prog_tests/tailcalls.c | 418 ++++++++++++++++++ > .../bpf/progs/tailcall_bpf2bpf_hierarchy1.c | 34 ++ > .../bpf/progs/tailcall_bpf2bpf_hierarchy2.c | 55 +++ > .../bpf/progs/tailcall_bpf2bpf_hierarchy3.c | 46 ++ > 5 files changed, 606 insertions(+), 46 deletions(-) > create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy1.c > create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy2.c > create mode 100644 tools/testing/selftests/bpf/progs/tailcall_bpf2bpf_hierarchy3.c > > > base-commit: 644b54d80d572438a815c05b1bab2b7871e1e5a1
On Thu, Nov 16, 2023 at 12:33 AM Leon Hwang <hffilwlqm@gmail.com> wrote: > > PING Sorry for the delay. I didn't have a chance to think it through. I hope experts in the community can take a look soon.
On Fri, Nov 17, 2023 at 01:40:41PM -0800, Alexei Starovoitov wrote: > On Thu, Nov 16, 2023 at 12:33 AM Leon Hwang <hffilwlqm@gmail.com> wrote: > > > > PING > > Sorry for the delay. I didn't have a chance to think it through. > I hope experts in the community can take a look soon. > I'll take a look this week.
On Mon, Nov 20, 2023 at 4:41 AM Maciej Fijalkowski <maciej.fijalkowski@intel.com> wrote: > > On Fri, Nov 17, 2023 at 01:40:41PM -0800, Alexei Starovoitov wrote: > > On Thu, Nov 16, 2023 at 12:33 AM Leon Hwang <hffilwlqm@gmail.com> wrote: > > > > > > PING > > > > Sorry for the delay. I didn't have a chance to think it through. > > I hope experts in the community can take a look soon. > > > > I'll take a look this week. Maciej, It's been awhile. Please review asap.