Re: [PATCH v2] livepatch: Remove immediate feature

From: Josh Poimboeuf
Date: Wed Jan 10 2018 - 23:35:49 EST


On Wed, Jan 10, 2018 at 11:01:28AM +0100, Miroslav Benes wrote:
> Immediate flag has been used to disable per-task consistency and patch
> all tasks immediately. It could be useful if the patch doesn't change any
> function or data semantics.
>
> However, it causes problems on its own. The consistency problem is
> currently broken with respect to immediate patches.
>
> func a
> patches 1i
> 2i
> 3
>
> When the patch 3 is applied, only 2i function is checked (by stack
> checking facility). There might be a task sleeping in 1i though. Such
> task is migrated to 3, because we do not check 1i in
> klp_check_stack_func() at all.
>
> Coming atomic replace feature would be easier to implement and more
> reliable without immediate.
>
> Thus, remove immediate feature completely and save us from the problems.
>
> Note that force feature has the similar problem. However it is
> considered as a last resort. If used, administrator should not apply any
> new live patches and should plan for reboot into an updated kernel.
>
> The architectures would now need to provide HAVE_RELIABLE_STACKTRACE to
> fully support livepatch.
>
> Signed-off-by: Miroslav Benes <mbenes@xxxxxxx>
> ---
> v2 changes:
> - 2/2 from v1 dropped
> - documentation
>
> Documentation/livepatch/livepatch.txt | 89 +++++++++-------------------
> include/linux/livepatch.h | 4 --
> kernel/livepatch/core.c | 12 +---
> kernel/livepatch/transition.c | 49 ++-------------
> samples/livepatch/livepatch-callbacks-demo.c | 15 -----
> samples/livepatch/livepatch-sample.c | 15 -----
> samples/livepatch/livepatch-shadow-fix1.c | 15 -----
> samples/livepatch/livepatch-shadow-fix2.c | 15 -----
> 8 files changed, 33 insertions(+), 181 deletions(-)

Nice diffstat.

Acked-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>

--
Josh