Re: [PATCH 0/2] Kernel Live Patching

From: Greg KH
Date: Sun Nov 09 2014 - 15:18:20 EST


On Thu, Nov 06, 2014 at 08:39:06AM -0600, Seth Jennings wrote:
> This patchset 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 [1] and kGraft [2] and can
> accept patches built using either method. This solution was discussed in the
> Live Patching Mini-conference at LPC 2014 [3].
>
> The model consists of a live patching "core" that provides an interface for
> other "patch" kernel modules to register patches with the core.
>
> Patch modules contain the new function code and create an lp_patch
> structure containing the required data about what functions to patch, where the
> new code for each patched function resides, and in which kernel object (vmlinux
> or module) the function to be patch resides. The patch module then invokes the
> lp_register_patch() function to register with the core module, then
> lp_enable_patch() to have to core module redirect the execution paths using
> ftrace.
>
> An example patch module can be found here:
> https://github.com/spartacus06/livepatch/blob/master/patch/patch.c
>
> The live patching core creates a sysfs hierarchy for user-level access to live
> patching information. The hierarchy is structured like this:
>
> /sys/kernel/livepatch
> /sys/kernel/livepatch/<patch>
> /sys/kernel/livepatch/<patch>/enabled
> /sys/kernel/livepatch/<patch>/<object>
> /sys/kernel/livepatch/<patch>/<object>/<func>
> /sys/kernel/livepatch/<patch>/<object>/<func>/new_addr
> /sys/kernel/livepatch/<patch>/<object>/<func>/old_addr

You are creating sysfs attributes with no Documentation/ABI/ entries,
please fix that in future patches.

thanks,

greg k-h
--
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/