From: Petr Mladek <pmladek@suse.cz>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
Seth Jennings <sjenning@redhat.com>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Jiri Kosina <jkosina@suse.cz>, Vojtech Pavlik <vojtech@suse.cz>,
Miroslav Benes <mbenes@suse.cz>,
Christoph Hellwig <hch@infradead.org>,
Greg KH <gregkh@linuxfoundation.org>,
Andy Lutomirski <luto@amacapital.net>,
live-patching@vger.kernel.org, x86@kernel.org, kpatch@redhat.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCHv3 2/3] kernel: add support for live patching
Date: Tue, 25 Nov 2014 18:04:31 +0100 [thread overview]
Message-ID: <20141125170431.GE22487@pathway.suse.cz> (raw)
In-Reply-To: <20141125115210.4d7cfca3@gandalf.local.home>
On Tue 2014-11-25 11:52:10, Steven Rostedt wrote:
> On Tue, 25 Nov 2014 17:39:43 +0100
> Petr Mladek <pmladek@suse.cz> wrote:
>
> > On Fri 2014-11-21 11:39:24, Masami Hiramatsu wrote:
> > > (2014/11/21 7:29), Seth Jennings wrote:
> > > > This commit introduces code for the live patching core. It implements
> > > > an ftrace-based mechanism and kernel interface for doing live patching
> > > > of kernel and kernel module functions.
> > > >
> > > > It represents the greatest common functionality set between kpatch and
> > > > kgraft and can accept patches built using either method.
> > > >
> > > > This first version does not implement any consistency mechanism that
> > > > ensures that old and new code do not run together. In practice, ~90% of
> > > > CVEs are safe to apply in this way, since they simply add a conditional
> > > > check. However, any function change that can not execute safely with
> > > > the old version of the function can _not_ be safely applied in this
> > > > version.
> > >
> > > Thanks for updating :)
> > >
> > > BTW, this still have some LPC_XXX macros, those should be KLP_XXX.
> > >
> > > Also, as I sent a series of IPMODIFY patches (just now), could you consider
> > > to use the flag? :)
> >
> > Hmm, it would cause problems with the current LivePatch, kGraft
> > implementation, and probably also with kPatch. They register more
> > than one ftrace handler with IPMODIFY at the same time.
>
> But are they hooked to the same functions? That would be a big problem,
> and should be avoided. Why would you want too ftrace_ops returning two
> different IPs for one function? That causes a paradox. Why would you
> want that?
We does not mind which one wins. The two functions are registered only
temporarily. It is guaranteed that they both sets the same regs->ip
address during this time frame.
> > They pass pointer to the func-related structure via the "private" field
> > in struct ftrace_ops. The structure provides information where the old
> > and new code is.
> >
> > They need to update the structure when new patch for the same functions
> > appears. It is done by registering a new ftrace function related to the
> > new patch and unregistering an old ftrace function from the old patch.
> >
> > We would need to maintain some patch-independent list of ftrace_ops
> > and the related private fields to avoid the double registration.
>
> Yes, that would make sense.
>
> You could create one ftrace_ops per function. That would be ideal
> because then you get to take advantage of having your own trampoline
> per function and no need to worry about what function needs to go with
> another function.
I adds some complexity but I think that we will need to go this way.
The check for IPMODIFY conflicts makes sense. It helps to avoid any
misuse.
My main intention was to point out the problem and that we would need
to handle it somehow J
Best Regards,
Petr
next prev parent reply other threads:[~2014-11-25 17:04 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-20 22:29 [PATCHv3 0/3] Kernel Live Patching Seth Jennings
2014-11-20 22:29 ` [PATCHv3 1/3] kernel: add TAINT_LIVEPATCH Seth Jennings
2014-11-20 22:29 ` [PATCHv3 2/3] kernel: add support for live patching Seth Jennings
2014-11-21 0:22 ` Jiri Kosina
2014-11-21 14:44 ` Miroslav Benes
2014-11-21 15:00 ` Josh Poimboeuf
2014-11-21 15:46 ` Miroslav Benes
2014-11-21 16:13 ` Seth Jennings
2014-11-21 15:21 ` Josh Poimboeuf
2014-11-21 15:27 ` Jiri Kosina
2014-11-21 15:35 ` Josh Poimboeuf
2014-11-21 16:40 ` Seth Jennings
2014-11-21 17:35 ` Jiri Slaby
2014-11-21 18:29 ` Seth Jennings
2014-11-21 17:53 ` Andy Lutomirski
2014-11-21 2:39 ` Masami Hiramatsu
2014-11-25 16:39 ` Petr Mladek
2014-11-25 16:52 ` Steven Rostedt
2014-11-25 17:04 ` Petr Mladek [this message]
2014-11-25 17:16 ` Steven Rostedt
2014-11-25 19:29 ` Jiri Kosina
2014-12-03 8:09 ` Masami Hiramatsu
2014-11-24 11:13 ` Thomas Gleixner
2014-11-24 13:21 ` Jiri Kosina
2014-11-24 13:26 ` Thomas Gleixner
2014-11-24 13:31 ` Vojtech Pavlik
2014-11-24 14:25 ` Masami Hiramatsu
2014-11-24 13:31 ` Jiri Kosina
2014-11-24 13:23 ` Vojtech Pavlik
2014-11-24 13:24 ` Josh Poimboeuf
2014-11-24 13:27 ` Masami Hiramatsu
2014-11-20 22:29 ` [PATCHv3 3/3] kernel: add sysfs documentation " Seth Jennings
2014-11-21 2:49 ` Masami Hiramatsu
2014-11-21 16:41 ` Seth Jennings
2014-11-21 2:44 ` [PATCHv3 0/3] Kernel Live Patching Masami Hiramatsu
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=20141125170431.GE22487@pathway.suse.cz \
--to=pmladek@suse.cz \
--cc=gregkh@linuxfoundation.org \
--cc=hch@infradead.org \
--cc=jkosina@suse.cz \
--cc=jpoimboe@redhat.com \
--cc=kpatch@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=live-patching@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mbenes@suse.cz \
--cc=rostedt@goodmis.org \
--cc=sjenning@redhat.com \
--cc=vojtech@suse.cz \
--cc=x86@kernel.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 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.