mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Petr Mladek <pmladek@suse.com>
To: Joe Lawrence <joe.lawrence@redhat.com>
Cc: Jiri Kosina <jikos@kernel.org>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	Miroslav Benes <mbenes@suse.cz>, Jason Baron <jbaron@akamai.com>,
	Evgenii Shatokhin <eshatokhin@virtuozzo.com>,
	live-patching@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v14 05/11] livepatch: Simplify API by removing registration step
Date: Thu, 3 Jan 2019 12:47:32 +0100	[thread overview]
Message-ID: <20190103114732.f52qioxi6osl3ett@pathway.suse.cz> (raw)
In-Reply-To: <20181205193253.mhlqj37r4o6ukkhp@redhat.com>

On Wed 2018-12-05 14:32:53, Joe Lawrence wrote:
> On Thu, Nov 29, 2018 at 10:44:25AM +0100, Petr Mladek wrote:
> > The possibility to re-enable a registered patch was useful for immediate
> > patches where the livepatch module had to stay until the system reboot.
> > The improved consistency model allows to achieve the same result by
> > unloading and loading the livepatch module again.
> > 
> > Also we are going to add a feature called atomic replace. It will allow
> > to create a patch that would replace all already registered patches.
> > The aim is to handle dependent patches more securely. It will obsolete
> > the stack of patches that helped to handle the dependencies so far.
> > Then it might be unclear when a cumulative patch re-enabling is safe.
> > 
> > It would be complicated to support the many modes. Instead we could
> > actually make the API and code easier to understand.
> > 
> > This patch removes the two step public API. All the checks and init calls
> > are moved from klp_register_patch() to klp_enabled_patch(). Also the patch
> > is automatically freed, including the sysfs interface when the transition
> > to the disabled state is completed.
> > 
> > diff --git a/Documentation/livepatch/livepatch.txt b/Documentation/livepatch/livepatch.txt
> > index 2d7ed09dbd59..d849af312576 100644
> > --- a/Documentation/livepatch/livepatch.txt
> > +++ b/Documentation/livepatch/livepatch.txt
> >
> > +5.4. Removing
> > +-------------
> >  
> > -At this stage, all the relevant sys-fs entries are removed and the patch
> > -is removed from the list of known patches.
> > +Module removal is only safe when there are no users of the underlying
>                                                               ^^^^^^^^^^
> Could a reader confuse "underlying functions" for functions in the
> livepatching-core?  Would "modified functions" or adding "(struct
> klp_func) " make this more specific?
> 
> > +functions. This is the reason why the force feature permanently disables
> > +the removal. The forced tasks entered the functions but we cannot say
>                                          ^^^^^^^^^^^^^
> Same ambiguity here.

I am going to simplify the entire paragraph and replace:

"Module removal is only safe when there are no users of the underlying
functions. This is the reason why the force feature permanently disables
the removal. The forced tasks entered the functions but we cannot say
that they returned back.  Therefore it cannot be decided when the
livepatch module can be safely removed. When the system is successfully
transitioned to a new patch state (patched/unpatched) without being
forced it is guaranteed that no task sleeps or runs in the old code."

with

"Module removal is only safe when there are no users of functions provided
by the module. This is the reason why the force feature permanently
disables the removal. Only when the system is successfully transitioned
to a new patch state (patched/unpatched) without being forced it is
guaranteed that no task sleeps or runs in the old code."

Best Regards,
Petr

PS: Note that the text was there even before this patch. I just moved it
from the section 4.3.

  parent reply	other threads:[~2019-01-03 11:47 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29  9:44 [PATCH v14 00/11] livepatch: Atomic replace feature Petr Mladek
2018-11-29  9:44 ` [PATCH v14 01/11] livepatch: Change unsigned long old_addr -> void *old_func in struct klp_func Petr Mladek
2018-12-03 13:24   ` Miroslav Benes
2018-12-05 18:45   ` Joe Lawrence
2018-12-06 11:08   ` Alice Ferrazzi
2018-11-29  9:44 ` [PATCH v14 02/11] livepatch: Shuffle klp_enable_patch()/klp_disable_patch() code Petr Mladek
2018-12-03 13:36   ` Miroslav Benes
2018-12-05 18:45   ` Joe Lawrence
2018-11-29  9:44 ` [PATCH v14 03/11] livepatch: Consolidate klp_free functions Petr Mladek
2018-12-03 14:59   ` Miroslav Benes
2018-12-04 14:00     ` Petr Mladek
2018-12-13 22:35     ` Josh Poimboeuf
2018-12-14  9:37       ` Miroslav Benes
2018-12-05 19:02   ` Joe Lawrence
2018-12-06  8:15     ` Petr Mladek
2018-12-06 14:23       ` Joe Lawrence
2018-12-13 22:10   ` Josh Poimboeuf
2018-12-14  9:32     ` Petr Mladek
2018-12-14 14:23       ` Josh Poimboeuf
2018-11-29  9:44 ` [PATCH v14 04/11] livepatch: Refuse to unload only livepatches available during a forced transition Petr Mladek
2018-12-03 15:29   ` Miroslav Benes
2018-12-06  8:46     ` Petr Mladek
2018-12-06  9:18       ` Miroslav Benes
2018-12-05 19:05   ` Joe Lawrence
2018-12-13 22:17   ` Josh Poimboeuf
2018-11-29  9:44 ` [PATCH v14 05/11] livepatch: Simplify API by removing registration step Petr Mladek
2018-12-04 12:54   ` Miroslav Benes
2018-12-04 14:47     ` Petr Mladek
2018-12-04 15:32       ` Miroslav Benes
2018-12-05 19:32   ` Joe Lawrence
2018-12-06  8:28     ` Petr Mladek
2018-12-06  9:23       ` Miroslav Benes
2018-12-06 10:14         ` Petr Mladek
2018-12-06 14:36           ` Joe Lawrence
2018-12-13 22:29             ` Josh Poimboeuf
2018-12-14  9:40               ` Petr Mladek
2018-12-14 14:24                 ` Josh Poimboeuf
2019-01-03 11:47     ` Petr Mladek [this message]
2018-12-13 22:46   ` Josh Poimboeuf
2018-12-14 10:02     ` Petr Mladek
2018-12-14 14:27       ` Josh Poimboeuf
2018-11-29  9:44 ` [PATCH v14 06/11] livepatch: Use lists to manage patches, objects and functions Petr Mladek
2018-12-04 14:13   ` Miroslav Benes
2018-12-05 19:34   ` Joe Lawrence
2018-11-29  9:44 ` [PATCH v14 07/11] livepatch: Add atomic replace Petr Mladek
2018-12-04 15:27   ` Miroslav Benes
2018-12-05 19:37   ` Joe Lawrence
2018-12-13 22:55   ` Josh Poimboeuf
2018-12-17 15:27     ` Petr Mladek
2019-01-03 12:47       ` Petr Mladek
2019-01-03 13:37         ` Josh Poimboeuf
2018-11-29  9:44 ` [PATCH v14 08/11] livepatch: Remove Nop structures when unused Petr Mladek
2018-12-04 16:08   ` Miroslav Benes
2018-12-05 20:17   ` Joe Lawrence
2018-12-13 23:00   ` Josh Poimboeuf
2018-12-17 15:54     ` Petr Mladek
2018-12-17 16:11       ` Josh Poimboeuf
2018-11-29  9:44 ` [PATCH v14 09/11] livepatch: Atomic replace and cumulative patches documentation Petr Mladek
2018-12-04 16:12   ` Miroslav Benes
2018-12-05 20:20   ` Joe Lawrence
2018-11-29  9:44 ` [PATCH v14 10/11] livepatch: Remove ordering and refuse loading conflicting patches Petr Mladek
2018-12-05 10:27   ` Miroslav Benes
2018-12-05 20:24   ` Joe Lawrence
2018-12-13 23:06   ` Josh Poimboeuf
2018-12-17 16:07     ` Petr Mladek
2018-12-17 16:27       ` Josh Poimboeuf
2018-12-18  8:51         ` Petr Mladek
2018-11-29  9:44 ` [PATCH v14 11/11] selftests/livepatch: introduce tests Petr Mladek
2018-12-05 11:38   ` Miroslav Benes
2018-12-05 20:27   ` Joe Lawrence
2018-12-08 16:54   ` Alice Ferrazzi
2018-12-05 20:49 ` [PATCH v14 00/11] livepatch: Atomic replace feature Joe Lawrence
2018-12-06  7:54   ` Petr Mladek
2018-12-06  9:32     ` Miroslav Benes
2018-12-06 10:15       ` Petr Mladek
2018-12-06 12:37         ` Petr Mladek
2018-12-06 14:29           ` Joe Lawrence

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190103114732.f52qioxi6osl3ett@pathway.suse.cz \
    --to=pmladek@suse.com \
    --cc=eshatokhin@virtuozzo.com \
    --cc=jbaron@akamai.com \
    --cc=jikos@kernel.org \
    --cc=joe.lawrence@redhat.com \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=live-patching@vger.kernel.org \
    --cc=mbenes@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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®