Re: [RFC PATCH bpf-next 1/2] bpf, x64: Fix tailcall infinite loop bug

From: Leon Hwang
Date: Fri Aug 18 2023 - 23:38:57 EST




On 2023/8/19 03:59, Alexei Starovoitov wrote:
> On Thu, Aug 17, 2023 at 7:10 PM Leon Hwang <hffilwlqm@xxxxxxxxx> wrote:
>>
>>
>>
>> On 18/8/23 06:31, Alexei Starovoitov wrote:
>>> On Mon, Aug 14, 2023 at 09:41:46PM +0800, Leon Hwang wrote:
>>>> @@ -1147,6 +1152,7 @@ struct bpf_attach_target_info {
>>>> struct module *tgt_mod;
>>>> const char *tgt_name;
>>>> const struct btf_type *tgt_type;
>>>> + bool tail_call_ctx;
>>>
>>> Instead of extra flag here can you check tgt_prog->aux->tail_call_reachable in check_attach_btf_id()
>>> and set tr->flags there?
>>
>> Should we check tgt_prog->aux->func[subprog]->is_func? Or, tgt_prog->aux->tail_call_reachable
>> is enough?
>
> Please let the thread continue to a logical conclusion before resending
> new version. Will reply there.

Sorry for the new version without logical conclusion.

I'll do it better in the future.

Additionally, I'm looking forward to fix it, and then planning to add a
feature to trace tailcalls with trampoline.

Thanks,
Leon