Applichiamo la patch CFS al Kernel GNU/Linux

Non mi dilungo su cosa è la patch CFS (Completely Fair Scheduler) e cosa fa e non fa, è ampiamente documentato in giro per la rete (ad esempio qui), dico brevemente che serve ad ampliare le scarse attitudini del Kernel Vanilla alla bassa latenza, cosa che faceva fino a poco tempo fa la patch non ufficiale -ck di Con Kolivas, rendendo il kernel più responsivo ad alti carichi di lavoro e anche per un uso multimediale, includendo anche una gestione della memoria in modo diverso, infatti queste patch utilizzano un po’ più la swap, e di conseguenza la memoria fisica, di un Kernel GNU/Linux “pulito”.
Ingo Molnar, che si occupa della CFS, ha fatto dei “backport” per i kernel che non includono questa patch, il tutto è disponibile qui.
Prendendo per assodato che voi sappiate già compilare un kernel, la patch è di facile applicazione, scaricate quella che fa per il vostro kernel e nella cartella dei sorgenti inoltrate questo comando:

patch -p1 -i /percorso/sched-cfs-v2.6.22.9-v22.patch


Se volete compilare un kernel che è più nuovo della versione della patch, nel caso sopra si fa riferimento alla patch per il kernel 2.6.22.9 ed invece è disponibile un 2.6.22.12, basta modificare la stessa per adattarla ad un kernel più nuovo. Aprite la patch con gEdit (o Kate, o quello che usate), cercate e sostituite tutte le voci che si riferiscono al kernel 2.6.22.9 con il 2.6.22.12, usate la apposita funzione.
Ad esempio:

Index: linux-cfs-2.6.22.9.q/Documentation/kernel-parameters.txt

Diventerà:

Index: linux-cfs-2.6.22.12.q/Documentation/kernel-parameters.txt

E così via. Non è sicuro che funzioni, ma c’è una alta probabilità che vada, io stesso non ho avuto problemi ad applicarla su un 2.6.22.10 e l’attuale 2.6.22.12.
Le opzioni importanti da abilitare nel kernel per avere una patch funzionante al 100% sono: “General Setup > Fair group CPU scheduler” e relativo sotto menù, “Block Layer > IO Schedulers > CFQ I/O scheduler“, qui assicurativi che sia abilitato solo il “CFQ”, “Processor type and features > Preemption Model“, qui scegliete fra “Voluntary Kernel Preemption (Desktop)” o “Preemptible Kernel (Low-Latency Desktop)“, tutti gli altri consigliano la seconda, ma io penso che per un uso desktop giornaliero la migliore sia la prima, quella volontaria. Infine in “Processor type and features > Timer frequency” selezionate “1000 HZ”, è più che sufficiente.
Buona compilazione :)

5 Risposte a “Applichiamo la patch CFS al Kernel GNU/Linux”


  1. 1 furester

    ..e perché non passare direttamente a un kernel 2.6.23 che include già questa patch?, tanto ricompilare per ricompilare ..

  2. 2 sfinge

    @furester, perchè uno sfortunato possessore di una ATIX1800 (come me) ha la sfortuna che il modulo fglrx non si compila con un kernel 2.6.23 (o almeno non ho trovato patch che lo permettano) quindi se desidero un kernel performante applico la suddetta patch CFS.

  3. 3 Janvitus

    Non solo per quello, nel 2.6.23 non è inclusa la patch completa, solo nel 2.6.24 sarà inclusa totalmente. Poi non tutti vogliono passare ad un kernel nuovo se si trovano bene con uno meno recente, come me ad esempio, se non c’è un reale bisogno non è obbligatorio passare ad un kernel più nuovo, anche perchè con i kernel ultimamente non si capisce più nulla, cambiano cose troppo in fretta, lasciando spiazzati anche i “veterani” =)

  4. 4 Andrea

    Ciao, scusa per l’off topic, ma vorrei chiederti, che tema per gtk e per emerald usi?

  5. 5 Janvitus

    mmm? O.o
    MrrinaGiloucheDuo e Shiny per Metacity.

Lascia una risposta

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>