mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] livepatch: Convert error about unsupported reliable stacktrace into a warning
@ 2019-04-18 11:29 Petr Mladek
  2019-04-18 13:58 ` Josh Poimboeuf
  0 siblings, 1 reply; 3+ messages in thread
From: Petr Mladek @ 2019-04-18 11:29 UTC (permalink / raw)
  To: Jiri Kosina, Josh Poimboeuf, Miroslav Benes
  Cc: Kamalesh Babulal, Joe Lawrence, live-patching, linux-kernel, Petr Mladek

The commit d0807da78e11d46f ("livepatch: Remove immediate feature") caused
that any livepatch was refused when reliable stacktraces were not supported
on the given architecture.

The limitation is too strong. User space processes are safely migrated
even when entering or leaving the kernel. Kthreads transition would
need to get forced. But it is safe when:

   + The livepatch does not change the semantic of the code.
   + Callbacks do not depend on a safely finished transition.

Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
---
 kernel/livepatch/core.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index eb0ee10a1981..14f33ab6c583 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -1003,11 +1003,10 @@ int klp_enable_patch(struct klp_patch *patch)
 		return -ENODEV;
 
 	if (!klp_have_reliable_stack()) {
-		pr_err("This architecture doesn't have support for the livepatch consistency model.\n");
-		return -EOPNOTSUPP;
+		pr_warn("This architecture doesn't have support for the livepatch consistency model.\n");
+		pr_warn("The livepatch transition may never complete.\n");
 	}
 
-
 	mutex_lock(&klp_mutex);
 
 	ret = klp_init_patch_early(patch);
-- 
2.16.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] livepatch: Convert error about unsupported reliable stacktrace into a warning
  2019-04-18 11:29 [PATCH] livepatch: Convert error about unsupported reliable stacktrace into a warning Petr Mladek
@ 2019-04-18 13:58 ` Josh Poimboeuf
  2019-04-23  8:42   ` Miroslav Benes
  0 siblings, 1 reply; 3+ messages in thread
From: Josh Poimboeuf @ 2019-04-18 13:58 UTC (permalink / raw)
  To: Petr Mladek
  Cc: Jiri Kosina, Miroslav Benes, Kamalesh Babulal, Joe Lawrence,
	live-patching, linux-kernel

On Thu, Apr 18, 2019 at 01:29:36PM +0200, Petr Mladek wrote:
> The commit d0807da78e11d46f ("livepatch: Remove immediate feature") caused
> that any livepatch was refused when reliable stacktraces were not supported
> on the given architecture.
> 
> The limitation is too strong. User space processes are safely migrated
> even when entering or leaving the kernel. Kthreads transition would
> need to get forced. But it is safe when:
> 
>    + The livepatch does not change the semantic of the code.
>    + Callbacks do not depend on a safely finished transition.
> 
> Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com>
> Signed-off-by: Petr Mladek <pmladek@suse.com>
> ---
>  kernel/livepatch/core.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
> index eb0ee10a1981..14f33ab6c583 100644
> --- a/kernel/livepatch/core.c
> +++ b/kernel/livepatch/core.c
> @@ -1003,11 +1003,10 @@ int klp_enable_patch(struct klp_patch *patch)
>  		return -ENODEV;
>  
>  	if (!klp_have_reliable_stack()) {
> -		pr_err("This architecture doesn't have support for the livepatch consistency model.\n");
> -		return -EOPNOTSUPP;
> +		pr_warn("This architecture doesn't have support for the livepatch consistency model.\n");
> +		pr_warn("The livepatch transition may never complete.\n");
>  	}
>  
> -
>  	mutex_lock(&klp_mutex);
>  
>  	ret = klp_init_patch_early(patch);

Thanks Petr.  I would also suggest that we remove the WARN_ONCE() from
the weak version of save_stack_trace_tsk_reliable(), since we expect it
to be used in this case.

-- 
Josh

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] livepatch: Convert error about unsupported reliable stacktrace into a warning
  2019-04-18 13:58 ` Josh Poimboeuf
@ 2019-04-23  8:42   ` Miroslav Benes
  0 siblings, 0 replies; 3+ messages in thread
From: Miroslav Benes @ 2019-04-23  8:42 UTC (permalink / raw)
  To: Josh Poimboeuf
  Cc: Petr Mladek, Jiri Kosina, Kamalesh Babulal, Joe Lawrence,
	live-patching, linux-kernel

On Thu, 18 Apr 2019, Josh Poimboeuf wrote:

> On Thu, Apr 18, 2019 at 01:29:36PM +0200, Petr Mladek wrote:
> > The commit d0807da78e11d46f ("livepatch: Remove immediate feature") caused
> > that any livepatch was refused when reliable stacktraces were not supported
> > on the given architecture.
> > 
> > The limitation is too strong. User space processes are safely migrated
> > even when entering or leaving the kernel. Kthreads transition would
> > need to get forced. But it is safe when:
> > 
> >    + The livepatch does not change the semantic of the code.
> >    + Callbacks do not depend on a safely finished transition.
> > 
> > Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com>
> > Signed-off-by: Petr Mladek <pmladek@suse.com>
> > ---
> >  kernel/livepatch/core.c | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
> > index eb0ee10a1981..14f33ab6c583 100644
> > --- a/kernel/livepatch/core.c
> > +++ b/kernel/livepatch/core.c
> > @@ -1003,11 +1003,10 @@ int klp_enable_patch(struct klp_patch *patch)
> >  		return -ENODEV;
> >  
> >  	if (!klp_have_reliable_stack()) {
> > -		pr_err("This architecture doesn't have support for the livepatch consistency model.\n");
> > -		return -EOPNOTSUPP;
> > +		pr_warn("This architecture doesn't have support for the livepatch consistency model.\n");
> > +		pr_warn("The livepatch transition may never complete.\n");
> >  	}
> >  
> > -
> >  	mutex_lock(&klp_mutex);
> >  
> >  	ret = klp_init_patch_early(patch);
> 
> Thanks Petr.  I would also suggest that we remove the WARN_ONCE() from
> the weak version of save_stack_trace_tsk_reliable(), since we expect it
> to be used in this case.

Moreover, we have WARN_ON_ONCE(ret == -ENOSYS) in klp_check_stack() where 
save_stack_trace_tsk_reliable() is called.

Miroslav

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-04-23  8:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-18 11:29 [PATCH] livepatch: Convert error about unsupported reliable stacktrace into a warning Petr Mladek
2019-04-18 13:58 ` Josh Poimboeuf
2019-04-23  8:42   ` Miroslav Benes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®