From: Miroslav Benes <mbenes@suse.cz>
To: Balbir Singh <bsingharora@gmail.com>
Cc: Joe Lawrence <joe.lawrence@redhat.com>,
linux-kernel@vger.kernel.org, live-patching@vger.kernel.org,
linux-kbuild@vger.kernel.org, Jessica Yu <jeyu@kernel.org>,
Jiri Kosina <jikos@kernel.org>, Joao Moreira <jmoreira@suse.de>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Konstantin Khlebnikov <khlebnikov@yandex-team.ru>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
Michael Matz <matz@suse.de>, Nicolai Stange <nstange@suse.de>,
Petr Mladek <pmladek@suse.com>
Subject: Re: [PATCH v3 0/9] klp-convert livepatch build tooling
Date: Tue, 16 Apr 2019 10:29:55 +0200 (CEST) [thread overview]
Message-ID: <alpine.LSU.2.21.1904161024220.15816@pobox.suse.cz> (raw)
In-Reply-To: <20190416052422.GA7482@350D>
On Tue, 16 Apr 2019, Balbir Singh wrote:
> On Wed, Apr 10, 2019 at 11:50:49AM -0400, Joe Lawrence wrote:
> > Hi folks,
> >
> > This is the third installment of the klp-convert tool for generating and
> > processing livepatch symbols for livepatch module builds. For those
> > following along at home, archive links to previous versions:
> >
> > RFC:
> > https://lore.kernel.org/lkml/cover.1477578530.git.jpoimboe@redhat.com/
> > v2:
> > https://lore.kernel.org/lkml/f52d29f7-7d1b-ad3d-050b-a9fa8878faf2@redhat.com/
> >
> > (Note that I don't see v2 archived at lore, but that is a link to the
> > most recent subthread that lore did catch.)
> >
> >
> > 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.
> >
>
>
> Could we get some details with examples or a sample, sorry I might be dense
> and missing simple information. The problem being solved is not clear to
> me from the changelog.
The patch set tries to solve the problem described in
Documentation/livepatch/module-elf-format.txt. Currently, there is no tool
in upstream to automatically generate the relocation records. kpatch-build
can do it and we'd like to have it as well. klp-convert should thus do the
job.
The sample module is introduced in patch 7 and you can look at the
selftests in patch 9 too.
Maybe we can describe the problem better in the cover letter, but on the
other hand patch changelogs are more important and they are good (well, in
my opinion of course).
> > 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 infer 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. For example. see the saved_command_line
> > variable in lib/livepatch/test_klp_convert2.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. See the KLP_MODULE_RELOC / KLP_SYMPOS annotation sections
> > in lib/livepatch/test_klp_convert{1,2}.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 by
> > removing the KLP_MODULE_RELOC / KLP_SYMPOS annotation sections in
> > lib/livepatch/test_klp_convert{1,2}.c.
> >
>
>
> Are these a part of the series?
Yes, see 9/9.
Regards,
Miroslav
next prev parent reply other threads:[~2019-04-16 8:30 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-10 15:50 Joe Lawrence
2019-04-10 15:50 ` [PATCH v3 1/9] livepatch: Create and include UAPI headers Joe Lawrence
2019-04-11 0:32 ` Masahiro Yamada
2019-04-11 14:30 ` Joe Lawrence
2019-04-11 15:48 ` Josh Poimboeuf
2019-04-11 18:41 ` Miroslav Benes
2019-04-10 15:50 ` [PATCH v3 2/9] kbuild: Support for Symbols.list creation Joe Lawrence
2019-04-11 9:18 ` Artem Savkov
2019-04-11 15:18 ` Joe Lawrence
2019-04-11 19:04 ` Miroslav Benes
2019-04-16 14:13 ` Joe Lawrence
2019-04-16 19:02 ` Miroslav Benes
2019-04-10 15:50 ` [PATCH v3 3/9] livepatch: Add klp-convert tool Joe Lawrence
2019-04-10 18:22 ` Joe Lawrence
2019-04-12 9:02 ` Miroslav Benes
2019-04-23 20:35 ` Joe Lawrence
2019-04-24 17:47 ` Miroslav Benes
2019-04-24 21:00 ` Joe Lawrence
2019-04-10 15:50 ` [PATCH v3 4/9] livepatch: Add klp-convert annotation helpers Joe Lawrence
2019-04-10 18:18 ` Joe Lawrence
2019-04-12 9:14 ` Miroslav Benes
2019-04-10 15:50 ` [PATCH v3 5/9] modpost: Integrate klp-convert Joe Lawrence
2019-04-11 15:54 ` Joe Lawrence
2019-04-10 15:50 ` [PATCH v3 6/9] modpost: Add modinfo flag to livepatch modules Joe Lawrence
2019-04-12 10:43 ` Miroslav Benes
2019-04-10 15:50 ` [PATCH v3 7/9] livepatch: Add sample livepatch module Joe Lawrence
2019-04-10 15:50 ` [PATCH v3 8/9] documentation: Update on livepatch elf format Joe Lawrence
2019-04-10 15:50 ` [PATCH v3 9/9] livepatch/selftests: add klp-convert Joe Lawrence
2019-04-12 21:26 ` [PATCH v3 0/9] klp-convert livepatch build tooling Joe Lawrence
2019-04-16 11:37 ` Miroslav Benes
2019-05-03 14:29 ` Joe Lawrence
2019-05-06 14:39 ` Miroslav Benes
2019-04-16 5:24 ` Balbir Singh
2019-04-16 8:29 ` Miroslav Benes [this message]
2019-04-16 13:37 ` Joe Lawrence
2019-04-16 13:55 ` Joe Lawrence
2019-04-16 19:09 ` Miroslav Benes
2019-04-17 20:13 ` Joe Lawrence
2019-04-24 18:19 ` Miroslav Benes
2019-04-24 19:13 ` Joao Moreira
2019-04-24 19:23 ` Josh Poimboeuf
2019-04-24 19:31 ` 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=alpine.LSU.2.21.1904161024220.15816@pobox.suse.cz \
--to=mbenes@suse.cz \
--cc=bsingharora@gmail.com \
--cc=jeyu@kernel.org \
--cc=jikos@kernel.org \
--cc=jmoreira@suse.de \
--cc=joe.lawrence@redhat.com \
--cc=jpoimboe@redhat.com \
--cc=khlebnikov@yandex-team.ru \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--cc=matz@suse.de \
--cc=nstange@suse.de \
--cc=pmladek@suse.com \
--cc=yamada.masahiro@socionext.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
all inboxes | Powered by JetHome®