kernel live patch

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
sya54M
Master
Master
Messaggi: 1657
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

kernel live patch

Messaggio da sya54M »

Ciao, avevo letto di questo nuovo sistema di patch che non richiede il riavvio della macchina e ora mi sono accorto che non rilasciano più le patch incrementali.
kpatch dicono che sia testato solo su poche distribuzioni, tra cui non slackware, io ho attivato CONFIG_LIVEPATCH nel kernel ma la compilazione del pacchetto kpatch trovato su gitub https://github.com/dynup/kpatch non va a buon fine:

Codice: Seleziona tutto

bash-4.3$ make
make -C kpatch-build
make[1]: Entering directory `/mnt/wd2/Sviluppo/Linux/SlackBuild/kpatch-master/kpatch-build'
gcc -MMD -MP -I../kmod/patch -Iinsn -Wall -g -c -o create-diff-object.o create-diff-object.c
In file included from create-diff-object.c:49:0:
list.h:33:0: warning: "offsetof" redefined
 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
 ^
In file included from /usr/include/unistd.h:226:0,
                 from create-diff-object.c:47:
/usr/lib64/gcc/x86_64-slackware-linux/4.9.2/include/stddef.h:413:0: note: this is the location of the previous definition
 #define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
 ^
create-diff-object.c: In function ‘kpatch_elf_open’:
create-diff-object.c:487:22: error: ‘ELF_C_READ_MMAP’ undeclared (first use in this function)                                
  elf = elf_begin(fd, ELF_C_READ_MMAP, NULL);                                                                                
                      ^                                                                                                      
create-diff-object.c:487:22: note: each undeclared identifier is reported only once for each function it appears in          
make[1]: *** [create-diff-object.o] Errore 1                                                                                 
make[1]: Leaving directory `/mnt/wd2/Sviluppo/Linux/SlackBuild/kpatch-master/kpatch-build'                                   
make: *** [build-kpatch-build] Errore 2
sbaglio io o gli utenti di distribuzioni diverse da quelle che dicono loro sono tagliati fuori sia dal vecchio sistema di patch incrementali che da questo nuovo?

Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: kernel live patch

Messaggio da conraid »

Non mi son messo ancora a smanettare con il live patching, anche se mi sembra di aver letto che è ancora in fase embrionale nel kernel di default. Sulle patch incrementali non me ne ero accorto, porc...
però un modo è tornare al "vecchio modo", cioè fare un revert dell'ultima patch, tornare al kernel versione iniziale ed applicare la patch.
Cioè per esempio faccio il revert di 4.0.1, torno a 4.0 ed applico la 4.0.2
Se non sbaglio è anche il modo ancora indicato nella documentazione del kernel.
Oppure, forse ancor meglio, usi git usando i tag per la versione da te desiderata.
https://git.kernel.org/cgit/linux/kerne ... inux-4.0.y

So che non è la soluzione che chiedevi.

Avatar utente
sya54M
Master
Master
Messaggi: 1657
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: kernel live patch

Messaggio da sya54M »

Ci avevo pensato a fare il revert alla prima versione, probabilmente mi arrangerò così, ma usando git come si fa?

Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: kernel live patch

Messaggio da conraid »

per creare il primo repository

Codice: Seleziona tutto

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
e dopo, quando esce l'aggiornamento, per aggiornare

Codice: Seleziona tutto

git pull
poi dipende se vuoi mantenerti un tag seperato per ogni versione, quindi ci aggiungi per esempio

Codice: Seleziona tutto

--branch linux-4.0.y
ora però non ho ben capito l'uso dei tag nel kernel, per esempio vedo che ci son due repository stable
https://git.kernel.org/cgit/linux/kernel/git/stable/
il secondo stable-queue.git è relativo alle patch, forse agendo su qualche comando git ti crei la tua patch incrementale

tieni presente che il principale è
https://git.kernel.org/cgit/linux/kerne ... linux.git/
ma son le versioni in sviluppo.

Insomma, studiaci un po' :-)

Avatar utente
sya54M
Master
Master
Messaggi: 1657
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: kernel live patch

Messaggio da sya54M »

ahh ok, grazie, farò alla vecchia maniera :)

Avatar utente
sya54M
Master
Master
Messaggi: 1657
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: kernel live patch

Messaggio da sya54M »

ho aggiornato il mio script facendo il reverse patch nel caso il kernel sia superiore al 3.x :) http://www.sya54m.eu/kernel.php

rik70
Iper Master
Iper Master
Messaggi: 2207
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: kernel live patch

Messaggio da rik70 »

Non ho capito la questione:
non rilasciando più le patch incrementali, che si deve fare ad es. per passare dal kernel 4.0.1 al 4.0.2?

Avatar utente
sya54M
Master
Master
Messaggi: 1657
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: kernel live patch

Messaggio da sya54M »

si deve ritornare al 4.0 applicando la patch del 4.0.1 "al contrario" e poi patchare alla 4.0.2

Codice: Seleziona tutto

xzcat patch-4.0.1.xz |patch -R -p1
xzcat patch-4.0.2.xz |patch -p1
...oppure scaricare l'intero tarball...

rik70
Iper Master
Iper Master
Messaggi: 2207
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: kernel live patch

Messaggio da rik70 »

sya54M ha scritto:si deve ritornare al 4.0 applicando la patch del 4.0.1 "al contrario" e poi patchare alla 4.0.2

Codice: Seleziona tutto

xzcat patch-4.0.1.xz |patch -R -p1
xzcat patch-4.0.2.xz |patch -p1
Oh.... grazie mille! :)
Scaricare e decomprimere ogni volta i sorgenti è una bella rottura.

P.s.
Ma perché quando ci son delle cose che funzionano bene e semplificano la vita le tolgono: ci provano gusto? :D

Avatar utente
sya54M
Master
Master
Messaggi: 1657
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: kernel live patch

Messaggio da sya54M »

è probabile, quindi sono più onanisti delle scimmie di openbsd? :D

rik70
Iper Master
Iper Master
Messaggi: 2207
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: kernel live patch

Messaggio da rik70 »

sya54M ha scritto:è probabile, quindi sono più onanisti delle scimmie di openbsd? :D
:lol:

rik70
Iper Master
Iper Master
Messaggi: 2207
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 64-current
Kernel: 5.4.x
Desktop: Xfce 4.14
Distribuzione: Arch Linux

Re: kernel live patch

Messaggio da rik70 »

P.s.
Che c'abbiano senito? :D

Noto che son rispuntate fuori le patch incrementali.

Avatar utente
sya54M
Master
Master
Messaggi: 1657
Iscritto il: mer 6 giu 2007, 14:44
Nome Cognome: Andrea Peluso
Slackware: 64-current
Kernel: ultimo
Desktop: KDE
Località: (Salerno)
Contatta:

Re: kernel live patch

Messaggio da sya54M »

ah è vero :roll:

Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: kernel live patch

Messaggio da conraid »

solitamente alla prima non la mettono, tanto è uguale, per la seconda si saran dimenticati :-)

Avatar utente
conraid
Staff
Staff
Messaggi: 13526
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: kernel live patch

Messaggio da conraid »

Ho notato una cosa mentre "studiavo" cgit. Basta poco per creare una patch dal diff segnalato da kernel.org con "view diff", in pratica aggiungere raw alla stringa del diff
da
https://git.kernel.org/cgit/linux/kerne ... 4.0.1&dt=2
a
https://git.kernel.org/cgit/linux/kerne ... 4.0.1&dt=2

Rispondi