Re: [PATCH v5 bpf-next 0/4] ftrace: host klp and bpf trampoline together

From: Song Liu
Date: Thu Jul 21 2022 - 18:59:39 EST


Hi Steven,

> On Jul 19, 2022, at 5:21 PM, Song Liu <song@xxxxxxxxxx> wrote:
>
> Changes v4 => v5:
> 1. Cleanup direct_mutex handling in register_ftrace_function.
> (Steven Rostedt, Petr Mladek).
> 2. Various smallish fixes. (Steven Rostedt, Petr Mladek).
>
> Changes v3 => v4:
> 1. Fix build errors for different config. (kernel test robot)
>
> Changes v2 => v3:
> 1. Major rewrite after discussions with Steven Rostedt. [1]
> 2. Remove SHARE_IPMODIFY flag from ftrace code. Instead use the callback
> function to communicate this information. (Steven)
> 3. Add cleanup_direct_functions_after_ipmodify() to clear SHARE_IPMODIFY
> on the DIRECT ops when the IPMODIFY ops is removed.
>
> Changes v1 => v2:
> 1. Fix build errors for different config. (kernel test robot)
>
> Kernel Live Patch (livepatch, or klp) and bpf trampoline are important
> features for modern systems. This set allows the two to work on the same
> kernel function as the same time.
>
> live patch uses ftrace with IPMODIFY, while bpf trampoline use direct
> ftrace. Existing policy does not allow the two to attach to the same kernel
> function. This is changed by fine tuning ftrace IPMODIFY policy, and allows
> one IPMODIFY ftrace_ops and one DIRECT ftrace_ops on the same kernel
> function at the same time. Please see patch 2 and 4 for more details.
>
> Note that, one of the constraint here is to let bpf trampoline use direct
> call when it is not working on the same function as live patch. This is
> achieved by allowing ftrace code to ask bpf trampoline to make changes.
>
> [1] https://lore.kernel.org/all/20220602193706.2607681-2-song@xxxxxxxxxx/

How does this version look to you?

Thanks,
Song