Ver Mensaje Individual
  #1  
Viejo 24/12/15, 20:23:56
Array

[xs_avatar]
alecuba16 alecuba16 no está en línea
Usuario muy activo
 
Fecha de registro: jun 2009
Localización: BCN
Mensajes: 602
Modelo de smartphone: ZukEdge,RedmiPro,IUNI u3,Umi X3/zero,Jiayu...
Tu operador: Oceans
Iuni U3 Optimización gestión de cpu. (ganar batería)

Buenas,

Primero hago una intro de las motivaciones:

Después de 6 meses muy contento con mi iuni y tras pasar por varias roms, todavía no he podido lograr ejecutar la cyanogend desde mi repo para iuni , necesito los device tree y los muy cabrones de iuni no lo sueltan, a ver si os animáis y lo pedís en el forum de iuni chino.

La mejor rom por fluidez, después de odexear todo y limpiarla tengo que decir que es la original iunios pero la ultima del mes pasado, con el WSM tools y el modulo exposed immerseme consigues toda la pantalla para cualquier app, algo que me encanta.

Siguiendo con esto he estado trasteando con el governador interactive que de fabrica viene super mal optimizado tanto que hace que el movil chupe un cojón de batería y se caliente otro cojón con nada de carga.

La cosa es que pese a reportarlo en los forums de iuni y inclusive aportando parte de mi scripts cierran el post o lo ignoran y sigue mal optimizado.

La cosa es que como podreís ver en el siguiente link:

MINI ESTUDIO DE LAS FRECUENCIAS Y VOLTAJES

El MSM8974 AA pro consume lo mismo a 300mhz que a 729mhz, por lo que tiene sentido hacerlo trabajar a 729mhz de entrada o que escale muy fácilmente y lo antes posible de 300mhz a 729mhz.

Por otro lado interesa que de 729 a 1.03Ghz se lo tome con mas calma pero sea el punto mas o menos óptimo para cargas medias tirando para altas, ya que en algún caso que una cpu se pusiera a 1.03ghz arrancaría las demás, un procesador suele ser mas eficiente utilizando varios cores a un determinado voltaje y para ese voltaje deben estar a la frecuencia que le pertoca, si uno de los 4 cores se va a una frecuencia mas alta pese a que los demás esta mas baja, el regulador de voltaje le aplica el maximo voltaje que toque entre todas las frecuencias que esten ahora mismo, por lo que interesa que antes de saltar de frecuencia se lo repiense cada core, de ahí que cada vez se penaliza mas en tiempo y porcentaje de load el salto a una frecuencia superior.

Si que es cierto que puede penalizar a aplicaciones que utilicen librerías nativas no optimizadas para multicore, pero con el tiempo que lleva el mercado multicore ya son pocos casos.

Siguiendo con esto el script que hará esta optimización en cada arranque y que debéis pegar en /system/etc/init.d/ es el siguiente, sólo se ejecuta una vez arrancado el teléfono y los cambios son mantenidos hasta que no se vuelva a reiniciar en teoría, se necesita soporte para init.d(las últimas roms que sólo están en ingles/chino) lo tienen , sino instalais el universal init.d del market.
Código:
#!/system/bin/sh
if [ -e /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load ]; then
busybox echo "90" > /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
busybox echo "1036800" > /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
busybox echo "20000 1036800:800000 1190400:900000 1267200:900000 1497600:100000 1574400:100000 1728000:100000 1958400:120000 2265600:120000" > /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
busybox echo "100000">/sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
busybox echo "40000" > /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
busybox echo "30000" > /sys/devices/system/cpu/cpufreq/interactive/timer_rate
busybox echo "300000" > /sys/devices/system/cpu/cpufreq/interactive/sync_freq
busybox echo "95 300000:5 422400:5 652800:5 729600:50 883200:80 960000:85 1036800:90 1190400:93 1267200:94 1497600:97 1574400:98 1728000:98 1958400:98 2265600:98" > /sys/devices/system/cpu/cpufreq/interactive/target_loads
busybox echo "80000">/sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
busybox echo "80000">/sys/devices/system/cpu/cpufreq/interactive/timer_slack
busybox echo "1574400">/sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_freq
busybox echo "80">/sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_load
fi
Los valores han sido sacados de la tabla del link que mas o menos he ido probando, si veis que se puede hacer algún ajuste (con el 3c cpu manager se pueden ir probando) me lo decís.

Con esta configuración he superado el día con el uso normal fácilmente con bastante uso he llegado al día (antes duraba la mitad), y con nada de uso he llegado a dos días y algún caso de dos días y unas horas.

Si lo quiere insertar directamente desdel 3c cpu manager para probar son los siguientes datos:
Código:
above_hispeed_delay=20000 1036800:800000 1190400:900000 1267200:900000 1497600:100000 1574400:100000 1728000:100000 1958400:120000 2265600:120000
boost=0
boostpulse_duration=80000
go_hispeed_load=95
hispeed_freq=1036800
io_is_busy=0
min_sample_time=40000
sampling_down_factor=100000
sync_freq=300000
target_loads=95 300000:5 422400:5 652800:5 729600:50 883200:80 960000:85 1036800:90 1190400:93 1267200:94 1497600:97 1574400:98 1728000:98 1958400:98 2265600:98
timer_rate=30000
timer_slack=80000
up_threshold_any_cpu_freq=1574400
up_threshold_any_cpu_load=80
Un saludo!!

Última edición por alecuba16 Día 24/12/15 a las 20:43:48.
Responder Con Cita