23 sept. 2014

Nexus 5 (2)

Cand am prezentat m-am laudat in primul post cu telefonul, reusisem sa scot 14 ore de baterie si 4 ore jumatate de ecran. Asta s-a intamplat cu kernelul stock.

Cu kernelul stock, telefonul are inclus in el un binar numit MPDecision (Make Poor Decision) care iti porneste/opreste nucleele procesorului atunci cand nu e nevoie, ca sa nu stea toate nucleele pornite tot timpul.
Cu kernelul preluat de mine pentru polish, aveai un replacement in-kernel pentru MPDecision. Acest replacement nu era pe gustul meu. Aveai tot timpul pornite doua nuclee. Nu e rau pentru performanta, dar chiar e nevoie de asta? Pe langa alea doua nuclee pornite tot timpul, hotplugerul nu era chiar asa destept. Simtea load, pornea si ultimele doua nuclee. Chiar daca in cod scria ca se porneau pe rand, in orice aplicatie as fi masurat, nucleul 3 si 4 porneau cam de fiecare data impreuna. Chiar e nevoie de asta?
Am incercat sa modific codul, mi-a iesit ceva, dar tot nu era pe gustul meu. Asa ca am implementat (a se citi introdus din alt kernel) un alt hotplugger. Foarte misto. Destul de bun, poti seta tu cate nuclee sa iti porneasca, destul de dragut, etc.

Dar am spus ca as vrea sa incerc un kernel si cu ce a gandit qualcomm: mpdecision. Asa ca am scos toate hotpluggerele din config, am activat mpdecision, am modificat ramdisk-ul pentru a porni binarul dupa ce booteaza telefonul si l-am testat timp de cateva zile.

Rezultate:



Pretty cool, right? Eu asa zic. O zi de cand am incarcat telefonul, si 4 ore jumatate de ecran, adica cat am scos si cu kernelul stoc ca timp de ecran, doar ca am putut avea telefon vreo 10 ore in plus.