lkml.org 
[lkml]   [2014]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] kernel: add support for live patching
On Fri, Nov 07, 2014 at 02:13:37PM +0100, Jiri Kosina wrote:
> On Fri, 7 Nov 2014, Josh Poimboeuf wrote:
>
> > > Also, lpc_create_object(), lpc_create_func(), lpc_create_patch(),
> > > lpc_create_objects(), lpc_create_funcs(), ... they all are pretty much
> > > alike, and are asking for some kind of unification ... perhaps iterator
> > > for generic structure initialization?
> >
> > The allocation and initialization code is very simple and
> > straightforward. I really don't see a problem there.
>
> This really boils down to the question I had in previous mail, whether
> three-level hierarchy (patch->object->funcs), which is why there is a lot
> of very alike initialization code, is not a bit over-designed.

Oh sorry, I missed that point :-) See below.
>
> > > I am not also really fully convinced that we need the
> > > patch->object->funcs abstraction hierarchy (which also contributes to
> > > the structure allocation being rather a spaghetti copy/paste code) ...
> > > wouldn't patch->funcs be suffcient, with the "object" being made just
> > > a property of the function, for example?

The patched object represents the module being patched (or "vmlinux").
It is much more than a property of the function. Multiple functions can
be patched in the same object. There are several things we do on a
per-object basis, including try_module_get(), deferred module patching
(patching from the module notifier), and dynamic relocations.

> > >
> > > > Plus, I show that kernel/kgraft.c + kernel/kgraft_files.c is
> > > > 906+193=1099. I'd say they are about the same size :)
> > >
> > > Which is still seem to me to be a ratio worth thinking about improving
> > > :)
> >
> > Yes, this code doesn't have a consistency model, but it does have some
> > other non-kGraft things like dynamic relocations,
>
> BTW we need to put those into arch/x86/ as they are unfortunately not
> generic. But more on this later independently.
>
> > deferred module patching,
>
> FWIW kgraft supports that as well.
>
> > and a unified API. There's really no point in comparing lines of code.
>
> Oh, sure, I didn't mean that this is any kind of metrics that should be
> taken too seriously at all. I was just expressing my surprise that
> unification of the API would bring so much code that it makes the result
> comparably sized to "the whole thing" :)
>
> Thanks,
>
> --
> Jiri Kosina
> SUSE Labs

--
Josh


\
 
 \ /
  Last update: 2014-11-07 14:41    [W:0.189 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site