Messages in this thread | | | Date | Tue, 6 May 2014 13:03:12 +0200 | From | Pavel Machek <> | Subject | Re: [RFC 06/16] kgr: add Documentation |
| |
Hi!
> This is a text provided by Udo and polished. > > Signed-off-by: Jiri Slaby <jslaby@suse.cz> > Cc: Udo Seidel <udoseidel@gmx.de> > --- > Documentation/kgr.txt | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > create mode 100644 Documentation/kgr.txt > > diff --git a/Documentation/kgr.txt b/Documentation/kgr.txt > new file mode 100644 > index 000000000000..5b62415641cf > --- /dev/null > +++ b/Documentation/kgr.txt > @@ -0,0 +1,26 @@ > +Live Kernel Patching with kGraft > +-------------------------------- > + > +Written by Udo Seidel <udoseidel at gmx dot de> > +Based on the Blog entry by Vojtech Pavlik > + > +April 2014 > + > +kGraft's developement was started by the SUSE Labs. kGraft builds on > +technologies and ideas that are already present in the kernel: ftrace > +and its mcount-based reserved space in function headers, the > +INT3/IPI-NMI patching also used in jumplabels, and RCU-like update of > +code that does not require stopping the kernel. For more information > +about ftrace please checkout the Documentation shipped with the kernel > +or search for howtos and explanations on the Internet.
This should really provide filename in Documentation/ directory it is refering to.
> +A kGraft patch is a kernel module and fully relies on the in-kernel > +module loader to link the new code with the kernel. Thanks to all > +that, the design can be nicely minimalistic.
I feel some more details would be nice here.
> +While kGraft is, by choice, limited to replacing whole functions and > +constants they reference, this does not limit the set of code patches > +that can be applied significantly. kGraft offers tools to assist in > +creating the live patch modules, identifying which functions need to > +be replaced based on a patch, and creating the patch module source > +code. They are located in /tools/kgraft/.
For what functions it does not work? Anything used in interrupt context? What about assembly? What happens if that function uses &label to do some magic?
-- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
| |