Un recente aggiornamento rilasciato da Intel su Linux aumenta notevolmente l’efficienza dei suoi ultimi processori ibridi Lunar Lake per portatili, con l’abilitazione di una funzionalità denominata Energy Aware Scheduling.
I processori Lunar Lake rappresentano la quarta generazione, insieme ad Arrow Lake, a far uso di un’architettura ibrida composta da P-Core ed E-Core, che consente di dividere i carichi di lavoro pesanti e quelli più leggeri ai vari nuclei dedicati, ottimizzando notevolmente l’efficienza computazionale ed energetica.
Intel Lunar Lake più efficiente con una nuova patch su Linux
La nuova patch su Linux abilita la funzionalità Energy Aware Scheduling nel driver che regola la frequenza del processore. La funzione consente allo scheduler del kernel Linux di prevedere l’impatto delle decisioni sul consumo energetico dei singoli nuclei. Questa tecnologia è stata ideata da ARM diversi anni fa per i suoi processori big.LITTLE ed è ora stata adottata da Intel, che da ormai alcuni anni fa uso della stessa architettura progettuale, sul suo driver P-State per migliorare ulteriormente i consumi e l’efficienza delle CPU ibride x86.
L’ingegnere Intel, nonché responsabile dello sviluppo al sottosistema della gestione dell’alimentazione su Linux, spiega nel dettaglio la patch:
“L’osservazione di fondo è che sulle piattaforme prese di mira da queste modifiche, Lunar Lake al momento della stesura di questo articolo, le CPU “piccole” (E-core), quando eseguite allo stesso livello di prestazioni, sono sempre più efficienti dal punto di vista energetico rispetto alle CPU “grandi” o “prestazionali” (P-core). Ciò significa che, indipendentemente dall’utilizzo invariante di scala di un’attività, finché c’è abbastanza capacità di riserva sugli E-core, il costo relativo per eseguirla è sempre inferiore.
Quindi l’idea è di registrare un dominio perf per tipo di CPU, che attualmente sono P-core ed E-core, per rappresentare i costi relativi di esecuzione delle attività sulle CPU di ciascun tipo. La tabella degli stati in ciascuno di questi domini perf è un elemento e quell’elemento contiene solo il valore del costo, il che fa sì che EAS confronti il ”costo E-core” con il “costo P-core” ogni volta che deve prendere una decisione e poiché il “costo E-core” è inferiore, preferirà sempre gli E-core finché c’è abbastanza capacità di riserva per eseguire l’attività data su uno di loro.
Il driver intel_pstate conosce il tipo di ogni CPU, quindi può creare le cpumask necessarie per registrare i domini perf come sopra, ma il codice di registrazione del modello energetico deve essere adattato per gestire i domini perf con tabelle di stati a un elemento (in seguito denominati domini perf stub). Deve anche consentire di aggiungere una nuova CPU a un dominio perf esistente per gestire il caso in cui alcune CPU sono offline per iniziare e vengono portate online in seguito tramite sysfs. Le prime 4 patch della serie apportano la modifica al modello energetico necessario.
La patch [5/6] aggiorna il codice di configurazione EAS per consentirgli di funzionare senza il governor schedutil cpufreq che non deve essere utilizzato quando intel_pstate è in uso (nella modalità “attiva”, intel_pstate utilizza un governatore integrato che può funzionare con EAS senza problemi perché adatta anche il livello di prestazioni della CPU all’utilizzo).
L’ultima patch modifica intel_pstate per registrare i domini perf descritti sopra e aggiornarli quando nuove CPU diventano disponibili per la prima volta.
Tutti i dettagli della nuova patch Intel su Linux per i recenti processori sono disponibili nella pagina dedicata.