2018-07-12 08:10:16

by Kamalesh Babulal

[permalink] [raw]
Subject: [PATCH] livepatch: Remove reliable stacktrace check in klp_try_switch_task()

Support for immediate flag was removed by commit d0807da78e11
("livepatch: Remove immediate feature"). We bail out during
patch registration for architectures, those don't support
reliable stack trace. Remove the check in klp_try_switch_task(),
as its not required.

Signed-off-by: Kamalesh Babulal <[email protected]>
---
kernel/livepatch/transition.c | 7 -------
1 file changed, 7 deletions(-)

diff --git a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c
index 7c6631e693bc..5bc349805e03 100644
--- a/kernel/livepatch/transition.c
+++ b/kernel/livepatch/transition.c
@@ -310,13 +310,6 @@ static bool klp_try_switch_task(struct task_struct *task)
return true;

/*
- * For arches which don't have reliable stack traces, we have to rely
- * on other methods (e.g., switching tasks at kernel exit).
- */
- if (!klp_have_reliable_stack())
- return false;
-
- /*
* Now try to check the stack for any to-be-patched or to-be-unpatched
* functions. If all goes well, switch the task to the target patch
* state.
--
2.7.4



2018-07-12 08:35:16

by Petr Mladek

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Remove reliable stacktrace check in klp_try_switch_task()

On Thu 2018-07-12 13:35:06, Kamalesh Babulal wrote:
> Support for immediate flag was removed by commit d0807da78e11
> ("livepatch: Remove immediate feature"). We bail out during
> patch registration for architectures, those don't support
> reliable stack trace. Remove the check in klp_try_switch_task(),
> as its not required.
>
> Signed-off-by: Kamalesh Babulal <[email protected]>

Good catch!

Reviewed-by: Petr Mladek <[email protected]>

Best Regards,
Petr

2018-07-12 09:15:54

by Miroslav Benes

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Remove reliable stacktrace check in klp_try_switch_task()

On Thu, 12 Jul 2018, Kamalesh Babulal wrote:

> Support for immediate flag was removed by commit d0807da78e11
> ("livepatch: Remove immediate feature"). We bail out during
> patch registration for architectures, those don't support
> reliable stack trace. Remove the check in klp_try_switch_task(),
> as its not required.
>
> Signed-off-by: Kamalesh Babulal <[email protected]>

Acked-by: Miroslav Benes <[email protected]>

M

2018-07-13 18:38:48

by Josh Poimboeuf

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Remove reliable stacktrace check in klp_try_switch_task()

> We bail out during patch registration for architectures, those don't
> support reliable stack trace.

Does anybody know if that change was intentional? I thought the plan
was to allow non-consistency-model arches to still use livepatch, and
that they'd just have to 'force' patches to completion instead. That
seems a little more forgiving.

--
Josh

2018-07-15 07:36:58

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Remove reliable stacktrace check in klp_try_switch_task()

On Saturday 14 July 2018 12:07 AM, Josh Poimboeuf wrote:
>> We bail out during patch registration for architectures, those don't
>> support reliable stack trace.
>
> Does anybody know if that change was intentional? I thought the plan
> was to allow non-consistency-model arches to still use livepatch, and
> that they'd just have to 'force' patches to completion instead. That
> seems a little more forgiving.
>

The initial proposal was to allow 'force' feature on architectures
without HAVE_RELIABLE_STACKTRACE support and use pr_notice() to warn
user about the non-availability of consistency model. It was argued
against, as it will encourage people to use it as an alternative instead
of adding HAVE_RELIABLE_STACKTRACE support to the kernel.

--
cheers,
Kamalesh.


2018-07-16 12:41:15

by Josh Poimboeuf

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Remove reliable stacktrace check in klp_try_switch_task()

On Sun, Jul 15, 2018 at 01:05:56PM +0530, Kamalesh Babulal wrote:
> On Saturday 14 July 2018 12:07 AM, Josh Poimboeuf wrote:
> > > We bail out during patch registration for architectures, those don't
> > > support reliable stack trace.
> >
> > Does anybody know if that change was intentional? I thought the plan
> > was to allow non-consistency-model arches to still use livepatch, and
> > that they'd just have to 'force' patches to completion instead. That
> > seems a little more forgiving.
> >
>
> The initial proposal was to allow 'force' feature on architectures
> without HAVE_RELIABLE_STACKTRACE support and use pr_notice() to warn
> user about the non-availability of consistency model. It was argued
> against, as it will encourage people to use it as an alternative instead
> of adding HAVE_RELIABLE_STACKTRACE support to the kernel.

Ok, looking through the archives, I found it:

https://lkml.kernel.org/r/[email protected]

I'm not sure I agree with that conclusion, but nobody has complained
about it, so it's probably fine...

--
Josh

2018-07-16 12:43:18

by Josh Poimboeuf

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Remove reliable stacktrace check in klp_try_switch_task()

On Thu, Jul 12, 2018 at 01:35:06PM +0530, Kamalesh Babulal wrote:
> Support for immediate flag was removed by commit d0807da78e11
> ("livepatch: Remove immediate feature"). We bail out during
> patch registration for architectures, those don't support
> reliable stack trace. Remove the check in klp_try_switch_task(),
> as its not required.
>
> Signed-off-by: Kamalesh Babulal <[email protected]>

Acked-by: Josh Poimboeuf <[email protected]>

> ---
> kernel/livepatch/transition.c | 7 -------
> 1 file changed, 7 deletions(-)
>
> diff --git a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c
> index 7c6631e693bc..5bc349805e03 100644
> --- a/kernel/livepatch/transition.c
> +++ b/kernel/livepatch/transition.c
> @@ -310,13 +310,6 @@ static bool klp_try_switch_task(struct task_struct *task)
> return true;
>
> /*
> - * For arches which don't have reliable stack traces, we have to rely
> - * on other methods (e.g., switching tasks at kernel exit).
> - */
> - if (!klp_have_reliable_stack())
> - return false;
> -
> - /*
> * Now try to check the stack for any to-be-patched or to-be-unpatched
> * functions. If all goes well, switch the task to the target patch
> * state.
> --
> 2.7.4
>

--
Josh

2018-07-16 15:52:42

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] livepatch: Remove reliable stacktrace check in klp_try_switch_task()

On Thu, 12 Jul 2018, Kamalesh Babulal wrote:

> Support for immediate flag was removed by commit d0807da78e11
> ("livepatch: Remove immediate feature"). We bail out during
> patch registration for architectures, those don't support
> reliable stack trace. Remove the check in klp_try_switch_task(),
> as its not required.
>
> Signed-off-by: Kamalesh Babulal <[email protected]>

Applied, thanks.

--
Jiri Kosina
SUSE Labs