From: Joe Lawrence <joe.lawrence@redhat.com>
To: Joao Moreira <jmoreira@suse.de>
Cc: live-patching@vger.kernel.org, mbenes@suse.cz, pmladek@suse.cz,
jikos@suse.cz, nstange@suse.de, jpoimboe@redhat.com,
khlebnikov@yandex-team.ru, jeyu@kernel.org, matz@suse.de,
linux-kernel@vger.kernel.org, yamada.masahiro@socionext.com,
linux-kbuild@vger.kernel.org, michal.lkml@markovi.net
Subject: Re: [PATCH v2 8/8] documentation: Update on livepatch elf format
Date: Mon, 18 Mar 2019 15:21:27 -0400 [thread overview]
Message-ID: <20190318192127.GA23238@redhat.com> (raw)
In-Reply-To: <20190301141313.15057-9-jmoreira@suse.de>
On Fri, Mar 01, 2019 at 11:13:13AM -0300, Joao Moreira wrote:
> Add a section to Documentation/livepatch/module-elf-format.txt
> describing how klp-convert works for fixing relocations.
>
> Signed-off-by: Joao Moreira <jmoreira@suse.de>
> ---
> Documentation/livepatch/module-elf-format.txt | 47 ++++++++++++++++++++++++---
> 1 file changed, 42 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/livepatch/module-elf-format.txt b/Documentation/livepatch/module-elf-format.txt
> index f21a5289a09c..6b0259dfab49 100644
> --- a/Documentation/livepatch/module-elf-format.txt
> +++ b/Documentation/livepatch/module-elf-format.txt
> @@ -2,7 +2,8 @@
> Livepatch module Elf format
> ===========================
>
> [ ... snip ... ]
>
> +--------------------------------------------------
> +4. Automatic conversion of unresolved relocations
> +--------------------------------------------------
> +Sometimes livepatches may operate on symbols which are not self-contained nor
> +exported. When this happens, these symbols remain unresolved in the elf object
> +and will trigger an error during the livepatch instantiation.
> +
> +Whenever possible, the kernel building infrastructure solves this problem
> +automatically. First, a symbol database containing information on all compiled
> +objects is built. Second, this database - a file named Symbols.list, placed in
> +the kernel source root directory - is used to identify targets for unresolved
> +relocations, converting them in the livepatch elf accordingly to the
> +specifications above-described. While the first staged is fully handled by the
^^^^^^
nit: s/staged/stage
> +building system, the second is done by a tool called klp-convert, which can be
> +found in "scripts/livepatch".
> +
> +When an unresolved relocation has as target a symbol whose name is also used by
> +different symbols throughout the kernel, the relocation cannot be resolved
> +automatically. In these cases, the livepatch developer must add annotations to
> +the livepatch, making it possible for the system to identify which is the
> +correct target amongst multiple homonymous symbols. Such annotations must be
> +done through a data structure as follows:
> +
> +struct KLP_MODULE_RELOC(object) data_structure_name[] = {
> + KLP_SYMPOS(symbol, pos)
> +};
> +
> +In the above example, object refers to the object file which contains the
> +symbol, being vmlinux or a module; symbol refers to the symbol name that will
> +be relocated and pos is its position in the object.
> [ ... snip ... ]
Should we be explicit about how position is counted? First = 1, second
= 2, etc? See the off-by-one bug I pointed out in the "livepatch: Add
klp-convert tool" patch earlier.
-- Joe
next prev parent reply other threads:[~2019-03-18 19:21 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20190301141313.15057-1-jmoreira@suse.de>
2019-03-18 19:18 ` [PATCH v2 0/8] klp-convert Joe Lawrence
2019-03-26 20:18 ` Joao Moreira
2019-03-26 21:03 ` Joe Lawrence
2019-04-04 11:49 ` Miroslav Benes
2019-04-04 13:19 ` Joe Lawrence
[not found] ` <20190301141313.15057-3-jmoreira@suse.de>
2019-03-18 19:19 ` [PATCH v2 2/8] kbuild: Support for Symbols.list creation Joe Lawrence
2019-03-20 19:08 ` Miroslav Benes
2019-03-26 14:40 ` Joao Moreira
2019-03-26 16:15 ` Joe Lawrence
2019-03-26 18:13 ` Joao Moreira
2019-03-26 20:53 ` Joe Lawrence
2019-03-28 20:17 ` Joe Lawrence
2019-04-01 19:35 ` Joe Lawrence
2019-04-03 12:48 ` Miroslav Benes
2019-04-03 19:10 ` Joe Lawrence
2019-04-04 9:14 ` Miroslav Benes
2019-04-04 10:59 ` Miroslav Benes
[not found] ` <20190301141313.15057-4-jmoreira@suse.de>
2019-03-18 19:20 ` [PATCH v2 3/8] livepatch: Add klp-convert tool Joe Lawrence
2019-03-20 19:36 ` Miroslav Benes
2019-03-26 20:13 ` Joao Moreira
[not found] ` <20190301141313.15057-7-jmoreira@suse.de>
2019-03-18 19:20 ` [PATCH v2 6/8] modpost: Add modinfo flag to livepatch modules Joe Lawrence
[not found] ` <20190301141313.15057-8-jmoreira@suse.de>
2019-03-18 19:21 ` [PATCH v2 7/8] livepatch: Add sample livepatch module Joe Lawrence
[not found] ` <20190301141313.15057-9-jmoreira@suse.de>
2019-03-18 19:21 ` Joe Lawrence [this message]
2019-03-20 19:58 ` [PATCH v2 8/8] documentation: Update on livepatch elf format Miroslav Benes
[not found] ` <20190301141313.15057-6-jmoreira@suse.de>
2019-03-18 19:20 ` [PATCH v2 5/8] modpost: Integrate klp-convert Joe Lawrence
2019-03-22 14:54 ` Joe Lawrence
2019-03-22 16:37 ` Joao Moreira
2019-03-22 18:29 ` Joe Lawrence
2019-04-04 11:31 ` Miroslav Benes
2019-04-04 13:55 ` Joao Moreira
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=20190318192127.GA23238@redhat.com \
--to=joe.lawrence@redhat.com \
--cc=jeyu@kernel.org \
--cc=jikos@suse.cz \
--cc=jmoreira@suse.de \
--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=mbenes@suse.cz \
--cc=michal.lkml@markovi.net \
--cc=nstange@suse.de \
--cc=pmladek@suse.cz \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.