Re: [PATCH 2/2] livepatch: Fix the bug if the function name is larger than KSYM_NAME_LEN-1

From: Minfei Huang
Date: Tue Apr 14 2015 - 12:59:23 EST


On 04/14/15 at 06:27pm, Petr Mladek wrote:
> On Tue 2015-04-14 23:55:36, Minfei Huang wrote:
> > On 04/14/15 at 10:11P, Josh Poimboeuf wrote:
> > > On Tue, Apr 14, 2015 at 01:45:49PM +0800, Minfei Huang wrote:
> > > > On 04/14/15 at 12:32P, Josh Poimboeuf wrote:
> > > > > On Tue, Apr 14, 2015 at 01:29:50PM +0800, Minfei Huang wrote:
> > > > > >
> > > > > > For end user, they may know litter about restriction of kallsyms and
> > > > > > livepatch. How can they know the restriction that function name is
> > > > > > limited to 127?
> > > > >
> > > > > As I mentioned above, I think kallsyms.c should fail the build if it
> > > > > encounters a symbol longer than KSYM_NAME_LEN.
> > > > >
> > > >
> > > > I dont think it is a good idea to handle this case like that. The
> > > > function name is only for human recognization. Why the compiler fails
> > > > to build it?
> > >
> > > Well, the function name isn't only for human recognition. kpatch-build
> > > generates patch modules automatically. It assumes that the compiled
> > > function name matches the kallsyms name. And I'd guess that a lot of
> > > other code (both in-kernel and user space tools) make the same
> > > assumption.
> > >
> > > Not to mention that most humans would also make the same assumption...
> >
> > Yes. The assumption is correct for most case.
> >
> > It is significance for livepatch to support extra module, because in my
> > opinion kernel is more stable than the third module.
> >
> > So it is more important, if the livepatch can patch all sorts of patch.
> > For dynamic function name, I think it is simple to avoid it.
>
> Do you have some really existing module with such a crazy long
> function names or is this debate pure theoretical, please?
>

No, I do not have such running module which function name is exceed to
127.

Again, we can not predict what end user do to name the function name. I
think the overlength function name is valid for linux kernel, if the
module can be installed.

> Also have you tested your patch and tried to apply livepatch
> for some really exiting module, please? I ask because it won't

The patched livepatch works well for my testing module which has the
overlength name function.

Thanks
Minfei

> be trivial to create such a patch. Also the patch would work
> only for the one running system.
>
> Best Regards,
> Petr
>
> > Usually, we will use ominity to handle a bunch of machines. So it is
> > simple, if we use script to get the function address and build the patch.
> >
> > Josh, is there any chance to accept my patches? It may be important
> > somewhile that system can not restart without schedule to reload the
> > fixed-module.
> >
> > Thanks
> > Minfei
> >
> > >
> > > --
> > > Josh
> > --
> > To unsubscribe from this list: send the line "unsubscribe live-patching" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> 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/
--
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/