Een samenwerking op de Linux Plumbers Conference 2014 tussen ontwikkelaars van Red Hat en SUSE heeft geleid tot een opensourcepakket om updates voor de Linux-kernel te installeren zonder dat het systeem herstart hoeft te worden.
In het verleden zijn al vaker tools uitgebracht om te kunnen patchen zonder te moeten herstarten. Tweakers berichtte in 2008 bijvoorbeeld over Ksplice, maar dat werd in 2011 door Oracle overgenomen om de dienst vervolgens alleen beschikbaar te maken voor Premier Support-klanten. CloudLinux sprong in 2014 in dat gat met KernelCare, alleen maakt dat programma deels gebruik van propriëtaire software en moeten gebruikers een maandelijkse vergoeding betalen.
Dat laatste zinde zowel Red Hat als SUSE niet en beide bedrijven begonnen met het ontwikkelen van opensourcecode om Linux te kunnen patchen zonder herstarten van het systeem. Red Hat ontwikkelde kpatch en SUSE kGraft. Beide programma's maken gebruik van ftrace om te kijken of de patch veilig kan worden doorgevoerd. Ondanks dat het eindresultaat hetzelfde is, zijn er wel duidelijke prestatieverschillen. Bij kpatch duurt het van één tot veertig milliseconden, terwijl het bij kGraft tot enkele minuten kan duren voor een patch is doorgevoerd. Bij beiden is nooit last van downtime.
ZDnet schrijft dat de twee groepen op de Linux Plumbers Conference in oktober 2014 de handen ineensloegen om uiteindelijk code uit beide programma's in de Linux-kernel 4.0 te verwerken. Volgens een van de ontwikkelaars van SUSE, Jiri Kosina, gaat het om een relatief simpele en minimalistische methode omdat zo veel mogelijk gebruikgemaakt wordt van de bestaande kernel-infrastructuur, aangevuld met een api voor kernelmodules waar de eigenlijke patches inzitten, en een api voor de gebruikersomgeving om te kunnen werken aan de patches. "Het is ook opzichzelfstaand in de zin van dat het niet aan andere kernel-subsystemen aanhaakt", verklaart de ontwikkelaar.
Met het uitkomen van de release candidate van de Linux-kernel 4.0 is het nu alleen voor x86 geïmplementeerd als referentiearchitectuur, maar ondersteuning voor powerpc, s390 en ARM komt eraan. Dat de code nu in de kernel zit, wil niet zeggen dat het direct bij alle Linux-distributies werkt, aangezien de patches er ook gebruik van moeten gaan maken.
Update, donderdag, 13.45: Tweaker HiGHGuY merkt terecht op dat de patches van kGraft of kpatch zelf niet in de kernel zitten. Er moet nog heel wat werk verzet worden voordat het mogelijk is een live-patch door te voeren. De toegevoegde code in de 4.0-kernel is gedeelde code tussen kGraft en kpatch. Er is nu een api die modules met een patch kan toestaan in de kernel gevoegd te worden. Het consistency model mist in dit verhaal. Dat model is nodig om veilig te kunnen wisselen tussen versies van een functie in een draaiende kernel. De behandeling van dat model verschilt tussen kGraft en kpatch, waardoor die eerst samengebracht moet worden.
Het uitgebreide artikel op lwn.net haalt verschillende obstakels aan. Het besluit met het vermoeden dat het werk aan een live-patching-mogelijkheid voortgezet wordt, maar dat het nog niet duidelijk is welke kant het op zal gaan. De hoop wordt uitgesproken dat de code van het consistency model klaar is voor de 4.1-kernel-merge. Anderzijds is er nog steeds twijfel óf een dergelijke mogelijkheid wel ingebouwd moet worden.