Autore Topic: Patch miracolosa per il kernel 2.6.38  (Letto 1159 volte)

Descrizione:

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline sly3000

  • Moderatore
  • *
  • Post: 1365
  • Karma: +162/-0
    • E-mail
Patch miracolosa per il kernel 2.6.38
« il: Novembre 21, 2010, 00:54:44 am »
Una patch miracolosa, a dir poco: poco più di duecento linee di codice (244 per l’esattezza) scritte da Mike Gallbraith e apprezzate esplicitamente anche dallo stesso Linus Torvalds rivoluzioneranno completamente l’esperienza degli utenti del pinguino. Vi basterà sapere che la compilazione di un kernel attraverso 64 jobs paralleli, la visualizzazione di un video e qualche altra operazioncina mangia-memoria non sono bastate per bloccare un sistema patchato. Non scenderò nei dettagli tecnici, ma cercherò di spiegarvi un poche e semplici parole cosa combina questa patch.
 
Da premettere che la patch va ad agire in kernel-context e non in user-context, cosa che in teoria dovrebbe essere una bella mazzata per la sicurezza del kernel. Il gioco, però, vale la candela: c’è da dire che il “pericolo”, se così possiamo definirlo, riguarda un algoritmo di accesso al kernel che esiste praticamente da sempre. In parole povere applicare la patch non comprometterà la sicurezza del vostro sistema, bensì andrà a toccare qualcosa che – attenzione, in linea squisitamente teorica – non dovrebbe essere toccata.

La patch in questione va ad agire sul raggruppamento dei task relativi a ciascun TTY ( la “bash text-only”, visualizzabile premendo i tasti CTRL+ALT+<F1> o <F2>…. fino a <F8>). Anche il server X viene eseguito su un TTY (solitamente il TTY numero sette – o quello numero otto), di conseguenza un visibilissimo miglioramento sarà tangibile anche a livello grafico. Tornando a noi, attraverso questa patch il kernel riesce a raggruppare i processi relativi a ciascun TTY, andando ad aiutare il lavoro dello scheduler di sistema, riducendo quindi sensibilmente il tempo di latenza massima (che viene ridotta a circa 1/10 di quella attuale) e riducendo drasticamente quello di latenza media (che può arrivare ad essere ridotto addirittura ad 1/60 di quella attuale). Riducendo così tanto il tempo di latenza, quindi, il sistema riesce a reagire in maniera assolutamente più scorrevole anche in situazioni di sovraccarico consistente della memoria. Roba da far rabbrividire, davvero.

E ve ne darò prova mostrandovi due video di un test eseguito da Phoronix http://www.phoronix.com/scan.php?page=article&item=linux_2637_video&num=2: il primo con il sistema “senza patch” (raggruppamento disabilitato) e l’altro con il sistema “patchato” (a cui è stato abilitato il raggruppamento automatico). Il sistema è nelle condizioni che vi ho descritto sopra: ricompilazione del kernel con 64 jobs concorrenti, visualizzazione di un video, test Open-GL e qualche altra cosetta.

nel primo caso in cui la patch non è applicata, il refresh dello schermo è lento e lascia in giro molte finestre che non fanno in tempo ad aggiornarsi
[youtube][/youtube]


nel secondo in cui la patch è attiva, il refresh è quasi normale
[youtube][/youtube]

Proprio niente male, eh? Avete notato che, nel secondo video, il file riprodotto scatta poco o niente? Ed avete notato come, trascinando la finestra, le interferenze grafiche sono pressochè impercettibili?
Bene, questo è il miracolo! Ora però la brutta notizia: la patch non è presente nei kernel della serie 2.6.36, nè nei kernel della serie 2.6.37-rc1 o rc2. Ragion per cui vi toccherà patcharlo a mano, ma noi non lo vogliamo, siamo un po pigri e certe cose le facciamo fare ai Neo di turno.

Per fortuna un altro super genio dell’informatica ci viene in soccorso e ci dà un metodo facile facile che ci semplifica la vita, come descritto in questa guida http://giornaledisistema.blogspot.com/2010/11/linux-far-volare-il-kernel-senza-patch.html, con pochi semplici passaggi, ovviamente, mi raccomando, bisogna avere un po di cognizione di causa altrimenti facilmente si possono fare disastri e io non vi voglio sulla coscienza, quindi se non capite bene i passaggi, ovviamente, non potete tornare indietro in caso di problemi.


Bene dopo le raccomandazioni del caso veniamo ai passaggi da compiere:

>>> Modifiche solo per Ubuntu<<<

Aprite il terminale da Applicazioni → Accessori → Terminale e date il comando:

sudo gedit /etc/rc.local

Prima di exit 0 in fondo aggiungete le righe:

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo “/usr/local/sbin/cgroup_clean” > /dev/cgroup/cpu/release_agent


Salvate e chiudete.

Rendere eseguibile il file rc.local appena modificato con il comando:

sudo chmod +x /etc/rc.local

Ora aggiornate il file bash.rc della vostra home con:

gedit ~/.bashrc

ed in fondo al file aggiungete, inseritele anche se il file è vuoto, potrebbe capitare nel caso si usasse Linux Mint:

if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasksecho "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi


Salvate e chiudete.

Per assicurarsi che i cgroups (è una questione tecnica, tranquilli se non è chiaro) vengono cancellati ogni volta dopo l’ultimo task:

sudo gedit /usr/local/sbin/cgroup_clean

e (il file dovrebbe essere vuoto) aggiungete le righe

#!/bin/sh
rmdir /dev/cgroup/cpu/$*


poi salvate, uscite, e rendetelo eseguibile con

sudo chmod +x /usr/local/sbin/cgroup_clean

Riavviate per applicare le modifiche. Avete finito.


>>> Modifiche per tutte le distribuzioni TRANNE Ubuntu<<<

Aprite il terminale da Applicazioni → Accessori → Terminale e date il comando:

gedit ~/.bashrc

In fondo al file aggiungete le righe:

if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi


Salvate ed uscite.

Ora diventate amministratore con il comando
su
e date i comandi:

mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777 /sys/fs/cgroup/cpu/user


Infine riavviate. Avete finito.

 :pollicione:

da "linuxdifficile.wordpress.com"
http://linuxdifficile.wordpress.com/2010/11/20/rendiamo-linux-piu-performante/

da "chimerarevo.com"
http://www.chimerarevo.com/2010/11/18/kernel-2-6-38-arriva-una-patch-che-dara-nuova-vita-al-vostro-sistema/

da "giornaledisistema.blogspot.com/"
http://giornaledisistema.blogspot.com/2010/11/linux-far-volare-il-kernel-senza-patch.html
« Ultima modifica: Novembre 21, 2010, 12:05:42 pm da sly3000 »
 


Cliccate il BANNER sopra, sarete di grande Aiuto. GRAZIE !