From: Miroslav Benes <mbenes@suse.cz>
To: Nicholas Mc Guire <hofrat@osadl.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>,
Jessica Yu <jeyu@kernel.org>, Jiri Kosina <jikos@kernel.org>,
Petr Mladek <pmladek@suse.com>,
live-patching@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH V2] livepatch: fix non-static warnings
Date: Mon, 17 Dec 2018 13:03:51 +0100 (CET) [thread overview]
Message-ID: <alpine.LSU.2.21.1812171256390.3087@pobox.suse.cz> (raw)
In-Reply-To: <1544965657-26804-1-git-send-email-hofrat@osadl.org>
Hi,
I'm sorry for being late to the party.
On Sun, 16 Dec 2018, Nicholas Mc Guire wrote:
> Sparse reported warnings about non-static symbols. For the variables
> a simple static attribute is fine - for those symbols referenced by
> livepatch via klp_func the symbol-names must be unmodified in the
> symbol table - to resolve this the __noclone attribute is used
> for the shared statically declared functions.
>
> Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
> Suggested-by: Joe Lawrence <joe.lawrence@redhat.com>
> Link: https://lkml.org/lkml/2018/12/13/827
A nit, but I'd reorder the tags. Link, Suggested-by:, Signed-off-by:. Also
it would be great if you used https://lkml.kernel.org/r/${Msg-ID}
redirection.
> ---
>
> V2: not all static functions shared need to carry the __noclone
> attribute only those that need to be resolved at runtime by
> livepatch - so drop the unnecessary __noclone attributes as
> well as the Note on __noclone as suggested by Joe Lawrence
> <joe.lawrence@redhat.com> - thanks !
I talked to Martin Jambor (GCC) and he suggested __attribute__((used)). It
should be better than __noclone, which was reportedly implemented only for
testing purposes (which is why it does not imply noinline, although
inlining internally uses cloning). Newer gcc also has "noipa" attribute,
but "used" would definitely be safe.
Sorry for not responding earlier.
Miroslav
> Sparse reported the following findings:
>
> CHECK samples/livepatch/livepatch-shadow-mod.c
> samples/livepatch/livepatch-shadow-mod.c:99:1: warning: symbol
> 'dummy_list' was not declared. Should it be static?
> samples/livepatch/livepatch-shadow-mod.c:100:1: warning: symbol
> 'dummy_list_mutex' was not declared. Should it be static?
> samples/livepatch/livepatch-shadow-mod.c:107:23: warning: symbol
> 'dummy_alloc' was not declared. Should it be static?
> samples/livepatch/livepatch-shadow-mod.c:128:15: warning: symbol
> 'dummy_free' was not declared. Should it be static?
> samples/livepatch/livepatch-shadow-mod.c:136:15: warning: symbol
> 'dummy_check' was not declared. Should it be static?
>
> CHECK samples/livepatch/livepatch-shadow-fix1.c
> samples/livepatch/livepatch-shadow-fix1.c:74:14: warning: symbol
> 'livepatch_fix1_dummy_alloc' was not declared. Should it be static?
> samples/livepatch/livepatch-shadow-fix1.c:111:6: warning: symbol
> 'livepatch_fix1_dummy_free' was not declared. Should it be static?
>
> CHECK samples/livepatch/livepatch-shadow-fix2.c
> samples/livepatch/livepatch-shadow-fix2.c:53:6: warning: symbol
> 'livepatch_fix2_dummy_check' was not declared. Should it be static?
> samples/livepatch/livepatch-shadow-fix2.c:81:6: warning: symbol
> 'livepatch_fix2_dummy_free' was not declared. Should it be static?
>
> Patch was compile tested with: x86_64_defconfig + FTRACE=y
> FUNCTION_TRACER=y, EXPERT=y, LATENCYTOP=y, SAMPLES=y,
> SAMPLE_LIVEPATCH=y
>
> Patch was runtested with:
> insmod samples/livepatch/livepatch-shadow-mod.ko
> insmod samples/livepatch/livepatch-shadow-fix1.ko
> insmod samples/livepatch/livepatch-shadow-fix2.ko
> echo 0 > /sys/kernel/livepatch/livepatch_shadow_fix2/enabled
> echo 0 > /sys/kernel/livepatch/livepatch_shadow_fix1/enabled
> rmmod livepatch-shadow-fix2
> rmmod livepatch-shadow-fix1
> rmmod livepatch-shadow-mod
> and dmesg output compared with the run before the patch was
> applied.
next prev parent reply other threads:[~2018-12-17 12:03 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-16 13:07 Nicholas Mc Guire
2018-12-17 12:03 ` Petr Mladek
2018-12-17 12:03 ` Miroslav Benes [this message]
2018-12-17 15:44 ` Joe Lawrence
2018-12-17 19:23 ` Nicholas Mc Guire
2018-12-18 9:00 ` Miroslav Benes
2018-12-18 8:49 ` Miroslav Benes
2018-12-18 15:18 ` Joe Lawrence
2019-01-22 16:30 ` Joe Lawrence
2019-01-23 1:10 ` Nicholas Mc Guire
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.1812171256390.3087@pobox.suse.cz \
--to=mbenes@suse.cz \
--cc=hofrat@osadl.org \
--cc=jeyu@kernel.org \
--cc=jikos@kernel.org \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--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
all inboxes | Powered by JetHome®