The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Miroslav Benes <mbenes@suse.cz>
To: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Joao Moreira <jmoreira@suse.de>,
	live-patching@vger.kernel.org, linux-kernel@vger.kernel.org,
	mmarek@suse.cz, pmladek@suse.com, jikos@suse.cz, nstange@suse.de,
	jroedel@suse.de, matz@suse.de, khlebnikov@yandex-team.ru,
	jeyu@kernel.org
Subject: Re: [PATCH 0/8] livepatch: klp-convert tool
Date: Tue, 10 Oct 2017 16:17:10 +0200 (CEST)	[thread overview]
Message-ID: <alpine.LSU.2.21.1710101608470.25252@san.suse.cz> (raw)
In-Reply-To: <20170830180025.3s5tscqf5isqwg5n@treble>

On Wed, 30 Aug 2017, Josh Poimboeuf wrote:

> On Tue, Aug 29, 2017 at 04:01:32PM -0300, Joao Moreira wrote:
> > Livepatches may use symbols which are not contained in its own scope,
> > and, because of that, may end up compiled with relocations that will
> > only be resolved during module load. Yet, when the referenced symbols are
> > not exported, solving this relocation requires information on the object
> > that holds the symbol (either vmlinux or modules) and its position inside
> > the object, as an object may contain multiple symbols with the same name.
> > Providing such information must be done accordingly to what is specified
> > in Documentation/livepatch/module-elf-format.txt.
> > 
> > Currently, there is no trivial way to embed the required information as
> > requested in the final livepatch elf object. klp-convert solves this
> > problem in two different forms: (i) by relying on a symbol map, which is
> > built during kernel compilation, to automatically infers the relocation
> > targeted symbol, and, when such inference is not possible (ii) by using
> > annotations in the elf object to convert the relocation accordingly to
> > the specification, enabling it to be handled by the livepatch loader.
> > 
> > Given the above, add support for symbol mapping in the form of
> > Symbols.list file; add klp-convert tool; integrate klp-convert tool into
> > kbuild; make livepatch modules discernible during kernel compilation
> > pipeline; add data-structure and macros to enable users to annotate
> > livepatch source code; make modpost stage compatible with livepatches;
> > update livepatch-sample and update documentation.
> > 
> > The patch was tested under three use-cases:
> > 
> > use-case 1: There is a relocation in the lp that can be automatically
> > resolved by klp-convert (tested by removing the annotations from
> > samples/livepatch/livepatch-annotated-sample.c)
> > 
> > use-case 2: There is a relocation in the lp that cannot be automatically
> > resolved, as the name of the respective symbol appears in multiple
> > objects. The livepatch contains an annotation to enable a correct
> > relocation - reproducible with this livepatch sample:
> > www.livewire.com.br/suse/klp/livepatch-sample.1.c
> > 
> > use-case 3: There is a relocation in the lp that cannot be automatically
> > resolved similarly as 2, but no annotation was provided in the livepatch,
> > triggering an error during compilation - reproducible with this livepatch
> > sample: www.livewire.com.br/suse/klp/livepatch-sample.2.c
> > 
> > Joao Moreira (2):
> >   kbuild: Support for Symbols.list creation
> >   documentation: Update on livepatch elf format
> > 
> > Josh Poimboeuf (5):
> >   livepatch: Create and include UAPI headers
> >   livepatch: Add klp-convert tool
> >   livepatch: Add klp-convert annotation helpers
> >   modpost: Integrate klp-convert
> >   livepatch: Add sample livepatch module
> > 
> > Miroslav Benes (1):
> >   modpost: Add modinfo flag to livepatch modules
> 
> Thanks a lot for picking these patches up and improving them.  I've only
> glanced at the code, but so far it's looking good.  It may be a few
> weeks before a I get a chance to do a proper review.
> 
> One quick question, possibly for Miroslav.  Do we have a plan yet for
> dealing with GCC optimizations?
> 
>   https://lkml.kernel.org/r/20161110161053.heua3abuaekz4yy7@treble
> 
> I still like the '-fpreserve-function-abi' idea, but maybe it's not
> realistic.

I'm sorry for the late response, I failed to reply immediately and then 
completely forgot about it :(

I talked to Martin Jambor from gcc community month ago and he told me it 
could be possible to do. But we need to come up with a good proposal. We 
need a good description of what it should do and provide reasons why we 
need it. I'll talk to him again tomorrow and I'll start to work on the 
proposal.

Ideas are of course more than welcome.

However that might be the easier part. We need to find out what it would 
mean for the whole kernel and its performance.

Regards,
Miroslav

  reply	other threads:[~2017-10-10 14:17 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-29 19:01 [PATCH 0/8] livepatch: klp-convert tool Joao Moreira
2017-08-29 19:01 ` [PATCH 1/8] livepatch: Create and include UAPI headers Joao Moreira
2017-08-29 19:01 ` [PATCH 2/8] kbuild: Support for Symbols.list creation Joao Moreira
2017-08-31 15:24   ` Joe Lawrence
2017-08-31 17:34     ` Josh Poimboeuf
2017-09-04  7:23     ` Joao Moreira
2017-08-29 19:01 ` [PATCH 3/8] livepatch: Add klp-convert tool Joao Moreira
2017-08-30 20:03   ` Joao Moreira
2017-08-29 19:01 ` [PATCH 4/8] livepatch: Add klp-convert annotation helpers Joao Moreira
2017-08-29 19:01 ` [PATCH 5/8] modpost: Integrate klp-convert Joao Moreira
2017-08-29 19:01 ` [PATCH 6/8] modpost: Add modinfo flag to livepatch modules Joao Moreira
2017-08-29 19:01 ` [PATCH 7/8] livepatch: Add sample livepatch module Joao Moreira
2017-08-29 19:01 ` [PATCH 8/8] documentation: Update on livepatch elf format Joao Moreira
2017-08-30 18:00 ` [PATCH 0/8] livepatch: klp-convert tool Josh Poimboeuf
2017-10-10 14:17   ` Miroslav Benes [this message]
2017-10-11  2:46     ` Josh Poimboeuf
2017-10-11 12:42       ` Joao Moreira
2017-10-19 13:01         ` Josh Poimboeuf
2017-10-19 13:24           ` Miroslav Benes
2017-10-19 14:03             ` Josh Poimboeuf
2017-10-19 14:27               ` Miroslav Benes
2017-10-19 15:15                 ` Josh Poimboeuf
2017-10-19 16:00                   ` Miroslav Benes
2017-10-19 16:20                     ` Josh Poimboeuf
2017-10-20  8:51                       ` Miroslav Benes
2017-10-20 12:03                         ` Josh Poimboeuf
2017-10-20 12:44                     ` Torsten Duwe
2017-10-20 13:24                       ` Josh Poimboeuf
2017-10-20 13:39                         ` Miroslav Benes
2017-10-20 13:44                         ` Torsten Duwe
2017-10-20 14:20                           ` Josh Poimboeuf

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=alpine.LSU.2.21.1710101608470.25252@san.suse.cz \
    --to=mbenes@suse.cz \
    --cc=jeyu@kernel.org \
    --cc=jikos@suse.cz \
    --cc=jmoreira@suse.de \
    --cc=jpoimboe@redhat.com \
    --cc=jroedel@suse.de \
    --cc=khlebnikov@yandex-team.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=live-patching@vger.kernel.org \
    --cc=matz@suse.de \
    --cc=mmarek@suse.cz \
    --cc=nstange@suse.de \
    --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