From: Balbir Singh <bsingharora@gmail.com>
To: Torsten Duwe <duwe@lst.de>
Cc: linuxppc-dev@ozlabs.org, pmladek@suse.com, jeyu@redhat.com,
jkosina@suse.cz, jikos@kernel.org, linux-kernel@vger.kernel.org,
rostedt@goodmis.org, kamalesh@linux.vnet.ibm.com,
live-patching@vger.kernel.org, mbenes@suse.cz
Subject: Re: [v5][PATCH] livepatch/ppc: Enable livepatching on powerpc
Date: Wed, 9 Mar 2016 00:52:03 +1100 [thread overview]
Message-ID: <56DED903.2000209@gmail.com> (raw)
In-Reply-To: <20160308104552.GA16502@lst.de>
On 08/03/16 21:45, Torsten Duwe wrote:
> On Tue, Mar 08, 2016 at 06:33:57PM +1100, Balbir Singh wrote:
>> Changelog v5:
>> 1. Removed the mini-stack frame created for klp_return_helper.
>> As a result of the mini-stack frame, function with > 8
>> arguments could not be patched
> Did you get my previous mails? Those functions only require special
> care, the _can_ be patched. In general, writing replacement functions
> always requires attention!
Yes, I did. We did think about documenting that limitation, but the big concern
was that the system can be panic'd with a simple test case. We expect live patches
to be tested and signed so we should be OK, but there still is a window
> Have you *tested* this patch? Replacing a function in the kernel?
> Replacing a function in a module? For local calls? For global calls?
> I strongly doubt so because it does not work this way.
Yes, if you care to read the changelog
"
I tested the sample in the livepatch and an additional sample
that patches int_to_scsilun. I'll post out that sample if there
is interest later. I also tested ftrace functionality on the
command line to check for breakage"
I've tested patching calls from module to module
(ibmvscsi to scsi_mod), within the kernel (livepatch-sample/
proc_cmdline_show). I must admit there is more testing to
be done
> To be fair, my last mail still was not 100% correct, but the conclusion
> that the mini frame is not needed at all is invalid. Please leave it as it
> was, I'm working on a test / demonstrator for how to handle these.
Why, the magic will be in the patched function? Please share the test/demonstrator
>> + * Why do we need this?
>> + * After patching we need to return to a trampoline return function
>> + * that guarantees that we restore the TOC and return to the correct
>> + * caller back
>> + */
>> + std r2, 24(r1) /* save TOC now, unconditionally. */
>> + subf r0, r2, r0 /* Calculate offset from current TOC */
>> + stw r0, 12(r1) /* Of the final LR and save it in CR+4 */
>> + bl 5f
>> +5: mflr r12
>> + addi r12, r12, (klp_return_helper + 4 - .)@l
>> + std r12, LRSAVE(r1)
> [...]
>> + * maybe inserting a klp_return_helper frame or not.
>> +*/
>> +klp_return_helper:
>> + ld r2, 24(r1) /* restore TOC (saved by ftrace_caller) */
>> + lwa r0, 12(r1) /* Load from CR+4, offset of LR w.r.t TOC */
>> + add r0, r0, r2 /* Add the offset to current TOC */
>> + std r0, LRSAVE(r1) /* save the real return address */
>> + mtlr r0
>> + blr
>> +#endif
> NAKed-by: Torsten Duwe <duwe@suse.de>
Why? For using CR+4 or removing the frame? Or you believe there is a better way to
handle this that work, IOW what is broken?
>
> Torsten
>
Balbir Singh
next prev parent reply other threads:[~2016-03-08 13:52 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-08 7:33 [v5][PATCH] livepatch/ppc: Enable livepatching on powerpc Balbir Singh
2016-03-08 10:45 ` Torsten Duwe
2016-03-08 13:52 ` Balbir Singh [this message]
2016-03-08 15:34 ` Torsten Duwe
2016-03-09 3:41 ` Balbir Singh
2016-03-09 16:10 ` Petr Mladek
2016-03-09 17:26 ` Torsten Duwe
2016-03-08 16:02 ` Petr Mladek
2016-03-09 3:37 ` Balbir Singh
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=56DED903.2000209@gmail.com \
--to=bsingharora@gmail.com \
--cc=duwe@lst.de \
--cc=jeyu@redhat.com \
--cc=jikos@kernel.org \
--cc=jkosina@suse.cz \
--cc=kamalesh@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=live-patching@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
/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;
as well as URLs for NNTP newsgroup(s).