Re: [PATCH 2/2] kernel: add support for live patching
From: Jiri Kosina
Date: Fri Nov 07 2014 - 08:13:46 EST
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.
> > 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?
> >
> > > 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/