Fair scheduler i lluites intestines a LKML
April 24, 2007 – 12:06 amFara ja quasi un any que la literatura associada al kernel de linux al meu blog es quasi inexistent, be suposo que hi han etapes de la vida per tot
Avui repassant els meus friendly blogs he trobat aquesta perla, he fet una lectura transeversal del tema hi he quedat impresionat de les lluites personals que hi ha a entre determinats membres desenvolupadors del kernel.
Tot ha vingut per l'anunci d'en Ingo Molnar del desenvolupament - en temps record faltaria menys - d'un nou scheduler pel kernel de linux per subsituir l'antic, també escrit per ell i que tenia la peculiaritat de realitzar l'elecció de la següent tasca en un temps de computació semblant a O(1).
Be tot i que estaria molt bé fer un analisis dels canvis produits, no tinc i crec que tampoc tindré capacitat per fer-ne un analisis que no sigui superficial. Pero seria bo com a mínim enumarar-ne algunes de les seves qualitats bàsiques.
Aquest nou algoritme just - fairnes scheduling - esta basat en la concepció de classes i la utilització d'arbres del tipus rbtree - red black tree - per a calcul del timeslice.
El tema de es classes es un concepte que ja podiem trobar en alguna part del kernel, exactament a l'apartat de scheduling de red hi ha suport per algoritmes de classes tipus CBQ o HTB, en la contextualització de les classes en el scheduler de procesos, la seva aportació és semantitzar les aplicacions a un modul - classe - determinada, per exemple en el patch aportat per Ingo s'inclou el modul per a scheduling de processos del tipus SCHED_OTHER que eren classificats com a processos interactius. Bàsicament el que intent-ho reflectir es que podem acoplar o desacoplar diferents moduls per a fer un scheduler contextualitzat a un conjunt d'aplicacions, per tant hauria de ésser força sensill per exemple crear algun tipus de SCHED_*, programar el modul i fer-lo correr al sistema
En ingo també comenta l'us dels red black tree - versió més eficient dels AVL - per al calcul de les linies de temp/execusió de tasques, en aquest cas la meva humil aportació no sera gaire ja que hem faria falta fer una ullada al codi.
Pero be tot això no és ni molt menys el mes interessant de l'article, només cal llegir el conjunt de retrets i desqualificacions que reb en Ingo a les poques hores de l'anunci del seu nou algoritme, les recriminacions parteixen basicament de la postura que havia pres en Ingor per evitar canvis substancials en l'antic scheduler - escrit per ell - fins al punt d'oposar una fer-ma resistencia a altres schedulers candidats que ja utilitzaven el concepte de classes.
No és la primera ni sera la ultima vegada que passen coses d'aquestes al kernel de linux, esperem pero que les aigues baixin i es deixin a part les necessitats personals..
Salut