public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Josh Poimboeuf <jpoimboe@redhat.com>
To: Petr Mladek <pmladek@suse.com>
Cc: Joe Lawrence <joe.lawrence@redhat.com>,
	Miroslav Benes <mbenes@suse.cz>, Jiri Kosina <jikos@kernel.org>,
	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: Fri, 14 Dec 2018 08:24:09 -0600	[thread overview]
Message-ID: <20181214142409.sths2pkn7o7xdt2t@treble> (raw)
In-Reply-To: <20181214094016.fojfsaxwfkikiw7g@pathway.suse.cz>

On Fri, Dec 14, 2018 at 10:40:16AM +0100, Petr Mladek wrote:
> On Thu 2018-12-13 16:29:59, Josh Poimboeuf wrote:
> > On Thu, Dec 06, 2018 at 09:36:06AM -0500, Joe Lawrence wrote:
> > > On 12/06/2018 05:14 AM, Petr Mladek wrote:
> > > > On Thu 2018-12-06 10:23:40, Miroslav Benes wrote:
> > > >> On Thu, 6 Dec 2018, Petr Mladek wrote:
> > > >>
> > > >>> On Wed 2018-12-05 14:32:53, Joe Lawrence wrote:
> > > >>>>> diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
> > > >>>>> index 972520144713..e01dfa3b58d2 100644
> > > >>>>> --- a/kernel/livepatch/core.c
> > > >>>>> +++ b/kernel/livepatch/core.c
> > > >>>>> @@ -45,7 +45,7 @@
> > > >>>>>   */
> > > >>>>>  DEFINE_MUTEX(klp_mutex);
> > > >>>>>  
> > > >>>>> -/* Registered patches */
> > > >>>>> +/* Actively used patches. */
> > > >>>>>  LIST_HEAD(klp_patches);
> > > >>>>
> > > >>>> By itself, this comment makes me wonder if there are un-active and/or
> > > >>>> un-used patches that I need to worry about.  After this patchset,
> > > >>>> klp_patches will include patches that have been enabled and those that
> > > >>>> have been replaced, but the replacement transition is still in progress.  
> > > >>>>
> > > >>>> If that sounds accurate, how about adding to the comment:
> > > >>>>
> > > >>>> /* Actively used patches: enabled or replaced and awaiting transition */
> > > >>>
> > > >>> The replaced patches are not in the list. This is why I used the word
> > > >>> "actively".
> > > >>
> > > 
> > > After writing out my suggestion I realized that's why you chose
> > > "actively" and almost erased my comment.  I think the extra text would
> > > help a fresh reader of the code, so ...
> > > 
> > > >> The replaced patches are removed in klp_discard_replaced_patches(), which 
> > > >> is called from klp_complete_transition(). Joe is right. The patches are in 
> > > >> the list if a transition is still in progress.
> > > > 
> > > > These are patches that are being replaced. The replaced (after the
> > > >  transition finishes) are not in the list.
> > > > 
> > > > By other word, Joe's text could be understand that replaced patches
> > > > will never get removed from the list.
> > > >
> > > > So, is the text below acceptable?
> > > > 
> > > > /*
> > > >  * Actively used patches: enabled or in transition. Note that replaced
> > > >  * or disabled patches are not listed even though the related kernel
> > > >  * module still can be loaded.
> > > >  */
> > > 
> > > Yes this works and is more accurate than my original suggestion.
> > 
> > >From my perspective, no comment is needed at all, and _any_ comment just
> > serves to add confusion -- including the above one.  But maybe that's
> > because I already know that disabled and replace patches get discarded.
> 
> Exactly. If I saw this code for the first time, I would find this
> comment useful.
> 
> I often miss these top-level descriptions because they help to
> get the picture about the code design.
> 
> Finally, the usage of the list has similar complexity as
> the use of klp_mutex. There mutex has even longer comment.
> 
> I will use the longer text if you are not strictly against.

Ok, fair enough.

-- 
Josh

  reply	other threads:[~2018-12-14 14:24 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 [this message]
2019-01-03 11:47     ` Petr Mladek
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=20181214142409.sths2pkn7o7xdt2t@treble \
    --to=jpoimboe@redhat.com \
    --cc=eshatokhin@virtuozzo.com \
    --cc=jbaron@akamai.com \
    --cc=jikos@kernel.org \
    --cc=joe.lawrence@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=live-patching@vger.kernel.org \
    --cc=mbenes@suse.cz \
    --cc=pmladek@suse.com \
    /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