Re: ftrace_direct (used by bpf trampoline) conflicts with live patch

From: Song Liu
Date: Fri Apr 01 2022 - 17:49:48 EST




> On Mar 31, 2022, at 6:52 PM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> On Thu, 31 Mar 2022 21:48:36 -0400
> Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
>>> Does this make sense to you? Did I miss something?
>>
>> I thought the BPF trampoline does:
>>
>> call bpf_trace_before_function
>> call original_function + X86_PATCH_SIZE
>> call bpf_trace_after_function
>>
>> Thus, the bpf direct trampoline calls the unpatched version of the
>> function call making the live patch useless. Or is this not what it
>> does?
>
> Or perhaps you are only talking about the part of bpf that does not
> trace the end of a function?

Yeah, we do call original_function + X86_PATCH_SIZE if there is
fexit or fmod_ret programs. So this alone is not enough to make the
two work together. :(

Let me see how can we fix it...

Thanks,
Song