Le gouverneur par défaut sur le GT-I9500 s'appelle "ondemand-sec". J'exécute le firmware XXUEMJ9 (Android 4.3). C'est une version modifiée du gouverneur ondemand. Voici une liste dans /sys/devices/system/cpu/cpufreq
:
root@ja3g:/sys/devices/system/cpu/cpufreq # ls -al
drwxr-xr-x 5 0 0 0 Nov 14 12:38 .
drwxr-xr-x 9 0 0 0 Nov 14 12:38 ..
drwxr-xr-x 2 0 0 0 Nov 14 12:38 iks-cpufreq
drwxr-xr-x 2 0 0 0 Nov 14 12:38 ondemand
drwxrwxrwx 2 0 0 0 Nov 14 12:39 ondemand-sec
root@ja3g:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_governor
ondemand-sec
Mises en correspondance des fréquences
Pour ce qui est de savoir quelle fréquence active quels cœurs, je ne me souviens pas si vous pouvez le demander via sysfs
mais je m'en souviens :
- En dessous de 600 Mhz, seuls les cœurs A7 sont actifs, et ils fonctionnent à un facteur 2x. Par exemple, à 400 Mhz, les cœurs A7 tournent en fait à 800 Mhz.
- Au-dessus de 600 Mhz, seuls les cœurs A15 sont actifs, et ils fonctionnent avec un facteur 1x. Par exemple, à 1,2 Ghz, les cœurs A15 fonctionnent réellement à 1,2 Ghz.
La cartographie des fréquences se trouve dans les sources du noyau à l'adresse suivante drivers/cpufreq/exynos-ikcs-cpufreq.c
, autour de la ligne ~56 :
#define ACTUAL_FREQ(x, cur) ((cur == CA7) ? (x) << 1 : (x))
#define VIRT_FREQ(x, cur) ((cur == CA7) ? (x) >> 1 : (x))
La première ligne trouve la fréquence réelle du noyau. Si le noyau actuel est un A7, alors nous effectuons un décalage de bits sur la "fréquence virtuelle" de 1 vers la gauche. Ceci est en fait une multiplication par 2.
Une grande partie du reste du code consiste à interroger les fréquences CPU supportées pour chaque type de cœur et à les fusionner pour obtenir le résultat suivant cpufreq
(voir cpufreq_merge_tables
autour de la ligne 197).
Vous trouverez plus d'informations à ce sujet sur cette série de diapositives par Linaro.
Statut de base
Vous pouvez vérifier quels cœurs sont actifs en utilisant un nœud de périphérique à l'adresse /dev/bL_status
.
root@ja3g:/dev # cat bL_status
0 1 2 3 L2 CCI
[A15] 0 0 0 0 0
[A7] 1 1 1 1 1
La sortie ci-dessus indique que seuls les noyaux A7 sont actifs.
1 votes
Quelle méthode avez-vous utilisée pour régler les régulateurs ? Avez-vous vu cette question ?
0 votes
Je pense que le gouverneur OnDemand est le gouverneur par défaut, mais je n'en suis pas sûr à 100 %.
0 votes
@ dotVezz J'ai rooté le périphérique en utilisant oDin et j'écris dans /sys/devices/system/cpu/cpuX/cpufreq/scaling_governor le gouverneur requis, mais j'ai oublié ce qu'il était par défaut. Dans le Quadcore (GT-I9500) c'est onDemand mais je ne suis pas sûr dans ce périphérique. Je fais quelques expériences liées à la consommation d'énergie et j'ai besoin de garder les paramètres par défaut aussi proches que possible.