Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751892AbdGAGxh (ORCPT ); Sat, 1 Jul 2017 02:53:37 -0400 Received: from mx2.suse.de ([195.135.220.15]:54837 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751563AbdGAGxf (ORCPT ); Sat, 1 Jul 2017 02:53:35 -0400 Date: Sat, 1 Jul 2017 08:53:33 +0200 (CEST) From: Miroslav Benes To: Josh Poimboeuf cc: Petr Mladek , Joe Lawrence , live-patching@vger.kernel.org, linux-kernel@vger.kernel.org, Jessica Yu , Jiri Kosina Subject: Re: [PATCH 3/3] livepatch: add shadow variable sample program In-Reply-To: <20170630203222.73ah24pmlw7flnm3@treble> Message-ID: References: <1496341526-19061-1-git-send-email-joe.lawrence@redhat.com> <1496341526-19061-4-git-send-email-joe.lawrence@redhat.com> <20170614142102.GA2583@pathway.suse.cz> <20170614145756.gom3zf6uv7ua423h@treble> <20170615105943.GE15013@pathway.suse.cz> <20170615134927.n53bn3ckizi6anhi@treble> <20170630203222.73ah24pmlw7flnm3@treble> User-Agent: Alpine 2.20 (LSU 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1958 Lines: 43 On Fri, 30 Jun 2017, Josh Poimboeuf wrote: > On Mon, Jun 19, 2017 at 06:56:37PM +0200, Miroslav Benes wrote: > > > > > > > I often wonder whether it's really a good idea to even allow the > > > > > unloading of patch modules at all. It adds complexity to the livepatch > > > > > code. Is it worth it? I don't have an answer but I'd be interested in > > > > > other people's opinion. > > > > > > > > I could imagine a situation when a livepatch causes, for example, > > > > performance, problems on a server because of the redirection > > > > to the new code. Then it might be handy to disable the patch > > > > and ftrace handlers completely. > > > > > > Fair enough, though it sounds theoretical. It would be good to know > > > we're supporting actual real world use cases. > > > > We distribute cumulative "replace_all" patches at SUSE. replace_all means > > that all previous patches are reverted in the process of application. All > > livepatch modules with zero refcount are removed. This keeps a number of > > loaded modules low and system's state well defined, which is always a good > > thing, because a customer might run into problems and we'd have to debug > > it. > > We used to have something similar in kpatch. And we recently discovered > that this "replace_all" feature would also be nice to have in livepatch. > > We had a patch B which needed to partially revert patch A. We had to > manually do the revert at a function level, which basically means > repatching the function so that it resembles its original state. > > It would be much more straightforward to be able to tell klp to revert > everything in patch A while applying patch B. Then the func stack would > never have more than one entry. And that would be good for performance > as well. Exactly. It is on my TODO list right after the fake signal. I've been occupied by different things recently but I'll definitely return to it soon. Regards, Miroslav