.\" Libor Pechacek .\" .TH KLP 8 2017-12-13 "SLES 15" "SLE Live Patching" .SH NAME kgr \- compatibility wrapper for migration from kGraft / SLE 12 .SH SYNOPSIS .ll +8 .B kgr .RB [ " \-hv " ] .RI COMMAND .ll -8 .SH DESCRIPTION .I kgr is a lightweight wrapper for the new klp tool. It is provided for smooth migration from SLE 12 and will be removed in future SLE releases. .SH COMMANDS .TP .B status See klp(1) for description. .TP .B check See klp(1) for description. .TP .B patches See klp(1) for description. .TP .B blocking See klp(1) for description. Unlike the SLE 12 implementation, this command displays execution threads. Processes display is known to be incomplete for multi-threaded applications. .TP .B blocking_threads Obsolete command. Same as .I kgr .IR blocking . .TP .B poke Obsolete command. Send STOP and CONT signals to processess that are blocking kGraft progress. See .SM .B CAVEATS for discussion about this method. .SH OPTIONS .TP .B \-h --help Display a help screen and quit. .TP .B \-v --verbose Verbose. Makes .I kgr print out process command line with .B blocking and .B blocking_threads commands. Another .B \-v will display also strack traces. .TP .B \--version Version. Display the version number. .SH EXIT STATUS With .B check command the exit status is 0 when system is ready for kernel live patching and 1 when patching is in progress. For other commands the exit status is 0 upon successful command completion and 1 upon error. .SH CAVEATS By design, kGraft technology requires the processes to cross the user space/kernel boundary to present them with the patched kernel code. Processes that sleep in kernel code at the time the patch module is loaded will prevent patching process from finishing until they leave kernel space. These processes usually leave kernel after the event, for which they are waiting, happens or timeout elapses. .P Sending regular processes STOP signal followed by CONT signal achieves the goal of making them to cross the user space/kernel boundary immediately. However, this method may not be suitable for all processes running in the system and does not apply to kernel threads and processess in .B D process state. This method is also known to interfere with shell job control.