• Hola, con los nuevos cambios del sitio he puesto diferentes tipos de publicidad que podrian resultar algo molestas. Sin embargo, luego de registrarte e interactuar un poco con la pagina, van a ser reemplazados por otros mas sutiles y pequeños! * A mi tampoco me gusta la publicidad, pero es una de las piezas para que el sitio esté disponible. Si bloqueas la publicidad, probá desactivarla unos dias.
    Gracias

DroidX CPU Governors and SIO Kernel Scheduler V2.2

Estado
Cerrado para nuevas respuestas.

aesniper

Signs misleading to nowhere
#1
¿Que es el Governor?

Primeramente vamos a hablar de los governors más conocidos, los que suelen incluir la mayoría de los kernels. Un kernel no tiene por que incluir todos estos, eso depende del desarrollador. Son los siguientes:

1) Ondemand

2) Ondemandx

3) Conservative

4) Interactive

5) Interactivex

6) Lulzactive

7) Smartass

8) SmartassV2

9) Intellidemand

10) Lazy

11) Lagfree

12) Lionheart (*)

13) LionheartX (*)

14) Brazilianwax (*)

15) SavagedZen

16) Userspacce

17) Powersave

18) Performance

(*) Los menciono pero no voy a hablar de ellos, ya que no se suelen utilizar.

1) Ondemand

Es el governor por defecto en la mayoría de los kernels stock. Uno de los objetivos principales del Ondemand es que cambia a la máxima frecuencia tan pronto como haya actividad en la CPU para asegurar la capacidad de respuesta del sistema, para que se entienda funciona en plan “lo importante es el rendimiento aquí y ahora”. Por lo tanto, escala a la máxima frecuencia cuando la CPU está trabajando y decrece gradualmente cuando la CPU se va quedando más libre. A pesar de que muchos consideran Ondemand como un governor fiable, se queda a mitad de camino entre ofrecer un buen rendimiento del teléfono y un ahorro de batería.

2) Ondemandx

Este governor se supone que es mejor que el Ondenand en cuanto a gasto de batería. Cuando la pantalla está apagada, la frecuencia máxima está limitada a 500 mhz. Aunque Ondemand es el governor por defecto en varios kernels y es considerado como seguro y estable, el soporte para Ondemand/OndemandX depende de la capacidad de la CPU para hacer rápidas variaciones de frecuencia.

3) Concervative

Es un Ondemand más lento que escala frecuencias más lentamente para ahorrar batería. Funciona como aquel, al ajustar dinámicamente las frecuencias según la utilización del procesador. Sin embargo, el Conservative aumenta y disminuye la velocidad de la CPU más gradualmente. Más fácil de entender, este governor aumenta la frecuencia de la CPU paso por paso (100mhz>200mhz>400mhz>etc), y salta a la frecuencia más baja cuando la CPU entra en idle (1000mhz>100mhz).

4) Interactive

Se puede considerar con un Ondemand rápido. Al ser más rápido gasta más batería. Tiene las siguientes ventajas:

  • Escala frecuencias de manera más consistente, debido a que los otros governors hacen su muestreo de carga de la CPU en un contexto de espera (primero uno, hasta que no acabe con ese no pasa el siguiente), pero el Interactive asigna unos tiempos a cada muestreo haciéndolo más consistente.
  • Mayor prioridad para el incremento de frecuencia de la CPU, dando así un mayor beneficio al incremento de rendimiento.

5) Interactivex

Es un Interactive con un perfil de arranque. Más ahorro de la batería que el Interactive.

6) Lulzactive

Está basado en los governors Interactive y Smartass y es uno de los más usados.

Versión antigua

Cuando la carga de la CPU es igual o superior al 60%, el governor hace que la CPU aumente hasta la siguiente frecuencia. Cuando la carga es inferior al 60%, el governor hace que la CPU disminuya hasta la frecuencia anterior a la que está. Cuando la pantalla está apagada, la frecuencia es la mínima a la que esté configurada la CPU.

Versión nueva

Existen tres nuevos parámetros configurables: inc_cpu_load, pump_up_step y pump_down_step. Esto dota de más control por parte del usuario. Podemos establecer el umbral en el que governor decide escalar hacia arriba o hacia abajo. De la misma manera, podemos fijar el número de frecuencias que se saltará hacia arriba o hacia abajo. Por ejemplo: cuando la carga esté por encima del 60% pasar de 200mhz a 800mhz.



Otro ejemplo

Considerad los siguientes parámetros:
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
Si la frecuencia actual=200mhz, cuando la CPU tenga una carga del 70% escalará 2 frecuencias hasta llegar a los 800mhz.
Si la frecuencia actual=1200mhz, cuando la CPU tenga una carga menor al 70% bajará 1 frecuencia hasta llegar a los 1000mhz.
7) Smartass

Es el governor resultante de que Erasmux reescribiese completamente el código del Interactive. El principal objetivo es optimizar la duración de la batería sin comprometer el rendimiento. Aun así, el gasto de batería es algo mayor que el SmartassV2 dado que la frecuencia mínima con la pantalla encendida es mayor que las frecuencias utilizadas con la pantalla apagada. Salta a la máxima frecuencia en intervalos de tiempo muy cortos, y esta operación la repite continuamente.

8) SmartassV2

Es la Versión 2 del Smartass original de Erasmux. Otro de los favoritos de mucha gente. El objetivo de este governor es el de utilizar la frecuencia ideal, y subir de forma bastante agresiva hasta esa frecuencia, para después bajar más suavemente. Usa diferentes frecuencias ideales para perfiles de pantalla apagada/encendida, llamados awake_ideal_freq y sleep_ideal_freq. Este governor baja de frecuencia de CPU muy rápidamente (para alcanzar cuanto antes lasleep_ideal_freq) mientras la pantalla está apagada, y sube de frecuencia de la CPU rápidamente hasta la awake_ideal_freq cuando la pantalla se enciende. No hay un límite superior de frecuencia mientras la pantalla está apagada (a diferencia del Smartass). Por lo tanto, el governor tiene disponible todo el rango entero de frecuencias para usarlas durante los estados de pantalla apagada/encendida. El lema de este governor es un equilibrio entre rendimiento y batería.

9) Intellidemand

Intellidemand, o también conocido como Intelligent Ondemand es otro governor basado en el Ondemand. El Intellidemand original se comporta de manera diferente según el uso de la GPU. Cuando la GPU está realmente ocupada (por juegos, Maps, benchmarking, etc) Intellidemand se comporta como un Ondemand. Cuando la GPU está “idling” (al ralentí, por así decirlo), o no tan ocupada como antes, Intellidemand limita la frecuencia máxima en función de las frecuencias disponibles del dispositivo/kernel para ahorrar batería. Esto se denomina modo de navegación. Podemos apreciar aquí algunos aspectos del governor Interactive. La frecuencia con la que se toman las decisiones de escalar hacia arriba está basada en el tiempo de inactividad de la CPU. Un tiempo de inactividad bajo (<20%) hace que la CPU aumente la frecuencia actual. En resumen, se trata de un Ondemand inteligente que entra en el modo navegación para limintar la frecuencia máxima cuando la GPU entra en inactividad, y se comporta con un Ondemand cuando la GPU está ocupada para ofrecer rendimiento para juegos, por ejemplo. Intellidemand no salta a la frecuencia más alta cuando la pantalla está apagada.

10) Lazy

Este governor creado por Ezekeel es básicamente un Ondemand con unos parámetros adicionales min_time_state para especificar el tiempo mínimo que la CPU está en una frecuencia antes de subirla/bajarla. La idea es eliminar cualquier inestabilidad causada por el rápido cambio que usa Ondemand. Lazy también tiene un parámetro screenoff_mazfreq que cuando está activado hará que el governor siempre seleccione la máxima frecuencia cuando la pantalla está apagada.

11) Lagfree

Lagfree es similar al Ondemand. La única diferencia es que no está optimizado para mejorar el gasto de batería. La frecuencia aumenta y disminuye suavemente, a diferencia del Ondemand. Lagfree no omite ningún escalón en la frecuencia mientras la aumenta o la disminuye. Hay que tener presente que si hay un requerimiento repentino de energía Lagfree no puede satisfacerlo ya que tiene que pasar por todas y cada una de las frecuencias. Algunos usuarios han reportado que la reproducción de vídeo usando Lagfree da algunos pequeños tirones.

12)Lionheart 13) LionheartX 14) Brazilianwax

15) SavagedZen

Es otro governor basado en el SmartassV2. Logra un buen equilibrio entre rendimiento y batería, en comparación con al Brazilianwax.

16) Userspace

En lugar de determinar automáticamente las freuencias, deja a los usuarios elegirlas.

17) Powersave

Bloquea la frecuencia máxima a la mínima frecuencia. No se puede usar como un perfil de pantalla encendida o incluso apagada si la frecuencia mínima es demasiado baja.

18) Performance

Ajusta la mínima frecuencia a la máxima frecuencia. ¡Úsalo mientras haces un benchmarking! :p

.

¿Que es el Schudeler?

P. “¿Para qué sirve un I/O Scheduler?”

R.

  • Reducir al mínimo la latencia de búsqueda del disco duro.
  • Dar prioridad a las operaciones de I/O de algunos procesos.
  • Asignar más espacio en disco para los procesos en ejecución.
  • Garantizar que ciertas peticiones se ejecutan antes de un tiempo límite.
Para entenderlo de una forma más simple: el kernel controla los accesos al disco usando un I/O Scheduler (Scheduler = planificador).

P. “¿Qué metas persigue cada I/O scheduler para tratar de conseguir un equilibrio?”

R.

  • Equidad (que cada proceso tenga su parte asignada de acceso al disco).
  • Rendimiento (tratar de atender las solicitudes que se encuentren en primer lugar, haciendo la búsqueda más rádida).
  • Tiempo real (garantizar que las solicitudes son atendidas en un tiempo dado).

1) Noop

Gestiona todas las peticiones siguiendo el método FIFO (First In First Out), o dicho de otra forma, las primeras en llegar son las primeras en salir/ser atentidas. Lo mejor es utilizarlo con dispositivos de almacenamiento que no dependen de movimiento mecánico para acceder a los datos (si, como nuestras tarjetas flash). La ventaja aquí es que las unidades flash no requieren un reordenamiento de las múltiples peticiones I/O, a diferencia de los discos duros normales.



Ventajas
  • Sirve las peticiones I/O con un menor número de ciclos de la CPU (¿mejora de la batería?).
  • Es el mejor para unidades flash.
  • Buen rendimiento en los sistemas db.


Inconvenientes
  • La reducción en el número de ciclos de la CPU es proporcional a la pérdida de rendimiento.


2) Deadline

El objetivo es minimizar la latencia de I/O o la necesidad de una petición. Esto se logra medianta una política de “todos contra todos”, para ser justos entre múltiples peticiones de I/O. Se utilizan 5 colas de espera para reordenar las solicitudes entrantes.



Ventajas
  • Se acerca bastante a un planificador a tiempo real.
  • Excelente en la reducción de latencia de peticiones I/O.
  • El mejor planificador para el acceso a bases de datos y consultas.
  • El requerimiento de “ancho de banda” de un proceso (el porcentaje de CPU que necesita) se puede calcular fácilmente.
  • Al igual que Noop, es un buen planificador para memorias flash.


Inconvenientes
  • Cuando el sistema está sobrecargado, la elección de procesos se puede volver impredecible.


3) CFQ

Completely Fair Queuing (o dicho de manera cutre “cola completamente equitativa”) mantiene una cola de procesos estable, repartiendo el porcentaje necesitado de la CPU en partes iguales entre todas las peticiones I/O. El intervalo de tiempo asignado a cada cola depende de la prioridad del proceso primario.



Ventajas
  • Considerado el mejor ofreciendo un equilibrado rendimiento I/O.
  • El más fácil de configurar.
  • Excelente en sistemas multiprocesador.
  • El mejor rendimiento del sistema en bases de datos, después de Deadline.


Inconvenientes
  • Algunos usuarios reportan que el escáner de medios tarda bastante en completarse usando CFQ. Esto podría deberse a que la distribución del uso de la CPU se reparte equitativamente entre todas las operaciones I/O durante el arranque y no se conceden prioridades.
  • Jitter (el peor caso de retardo) puede llegar a ser alto debido a la cantidad de tareas que necesitan acceso al disco.


4) BFQ

En lugar de asignar intervalo de tiempo como CFQ, BFQ asigna como unos “presupuestos” estimativos. Garantiza el disco para el proceso activo hasta que el presupuesto expira. El presupuesto asignado a un proceso varía con el tiempo como una función de su comportamiento. (la traducción deja mucho que desear, si alguien la puede hacer mejor que me lo comente por PM).



Ventajas
  • Se cree que es muy bueno para la tasa de transferencia de datos vía USB.
  • Se cree que es el mejor scheduler para la grabación de videos de HD y video streaming (por el menor “jitter” en comparación con CFQ y los otros).
  • Es considerado un scheduler I/O muy preciso.
  • Alcanza alrededor de un 30% más de rendimiento que CFQ.


Inconvenientes
  • No es el mejor scheduler para hacer benchmarking.
  • El mayor “presupuesto” asignado a un proceso puede afectar a la experiencia de usuario y aumentar la latencia (retardos).


5) SIO

Es un scheduler I/O simple cuyo objetivo es mantener unos consumos mínimos y lograr un escaso restardo al atender solicitudes. Sio es una mezcla entre Noop y Deadline. No existe un reordenamiento de las peticiones.



Ventajas
  • Simple, muy seguro.
  • Minimiza la necesidad de atención de las solicitudes.


Inconvenientes
  • Velocidades lentas de lectura en memorias flash, en comparación con los otros schedulers.
  • La velocidad de las lecturas secuenciales en memorias flash tampoco es buena.


6)

A diferencia de los otros schedulers, las peticiones síncronas y asíncronas no se tratan de forma separada. La siguiente solicitud en ser atendida será la que más cercana esté a la última atendida.



Ventajas
  • Quizás es el mejor para benchmarking porque en el mejor de sus comportamientos el rendimiento es mejor.


Inconvenientes
  • Los resultados de las variaciones de rendimiento pueden ser que esté por debajo del promedio a veces.
  • Menos fiable y más inestable.


Ahora vamos a lo practico, este es un simple update.zip que flashea lo necesario para usar el schudeler SIO en el equipo, y algunos nuevos governors que no estan presentes por defecto en el kernel del mm2

estuve probando la combinacion de governor smartassv2 y schudeler SIO y la verdad es que mejora mucho la respuesta y fluidez del equipo, asi como la duracion de la bateria ya que optimiza el escalado del cpu con respecto al governor OMDEMAND

_Flashear por CWM este zip

[hide]http://forum.xda-developers.com/attachment.php?attachmentid=1065258&d=1337197528[/hide]

_Instalar esta aplicacion

https://play.google.com/store/apps/details?id=com.darekxan.voltagecontrol&hl=es

_Desde la antes mencionada aplicacion corroborar que el schudeler sio esta como default, luego selecionar el governor smartassv2 y desplegando opciones seleccionar que se aplique en cada inicio ya sea como servicio o como init.d script, personalmente probe el script que me parece mejor por que de esa manera no se ejecuta la applicacion al inicio
 

ramelco

Usuario con historia
#2
Hay algun otro requisito para la instalacion? hice una instalacion limpia de cm10 y no podia hacer que el voltage control me reconozca los governors y scheduler nuevos. Metiendo mano se me ocurrio abrir el titanium backup que segun tengo entendido instala el busybox, y recien ahi cuando cargue el zip por enesima vez los tomo. Perdon si es algo sabido, pero es asi?
 


max_choco

Padrino de payasos
#3
funciona en cm7?? funcara en mi motorola pro?? bueno eso lo vamos a ver jejeje<br /><br />Enviado desde mi DROID Pro usando Tapatalk 2<br />
 
Última edición por un moderador:
OP
OP
A

aesniper

Signs misleading to nowhere
#4
Hay algun otro requisito para la instalacion? hice una instalacion limpia de cm10 y no podia hacer que el voltage control me reconozca los governors y scheduler nuevos. Metiendo mano se me ocurrio abrir el titanium backup que segun tengo entendido instala el busybox, y recien ahi cuando cargue el zip por enesima vez los tomo. Perdon si es algo sabido, pero es asi?
la verdad no se... para descartar podrias haber probado setcpu y ver si desde ahi se veian... en una de esas el problema era con el voltage control?

o tal vez como decis vos a esa cm10 le falta busybox

funciona en cm7?? funcara en mi motorola pro?? bueno eso lo vamos a ver jejeje<br /><br />Enviado desde mi DROID Pro usando Tapatalk 2<br />
no creo, los binarios son para mm2 pero podrias probar previo backup y avisar
 

ramelco

Usuario con historia
#5
a verdad no se... para descartar podrias haber probado setcpu y ver si desde ahi se veian... en una de esas el problema era con el voltage control? o tal vez como decis vos a esa cm10 le falta busybox
Ahora que lo decis me acuerdo que probe con la app "no frills cpu control" x las dudas sea problema del voltage control y tampoco las reconocia. La rom en cuestion es cm10 de tezet, tal vez sea necesario tener el busybox previamente
 
#9
si veran actualize la ultima version del cyanogen10 la mas ultima si se fijan

http://code.google.com/p/cm-milestone2/downloads/list = CM10-20121009-NIGHTLY-milestone2

core algun riesgo en mi smarth

que me recomendas que eliga

1) Ondemand

2) Ondemandx

3) Conservative

4) Interactive

5) Interactivex

6) Lulzactive

7) Smartass

8) SmartassV2

9) Intellidemand

10) Lazy

11) Lagfree

12) Lionheart (*)

13) LionheartX (*)

14) Brazilianwax (*)

15) SavagedZen

16) Userspacce

17) Powersave

18) Performance

despues de planchar la room que devo hacer los wipes?
 

Venito

Intento de Algo
Staff
#10
, Los unicos disponibles por ahora para nuestro MM2 que estan en el zip flasheable en el post son el SmartAssv2, BoostedAssV2 y el SIO Scheduler..Saludos

Enviado desde el ñoba usando Tapatalk 2.2.8
 

miki

Usuario con historia
#11
buenas! como se hace para flashear x el cwm el archivo ese? la verdad que no entiendo bien!!, muchas gracias
 

miki

Usuario con historia
#14
@miki, Entonces si no entendes nada amigo, te recomiendo que leas todos los post marcados como importante en esta sección http://www.grupoandr...ng-milestone-2/, ya que esto es algo tan simple y habitual para los que "tocamos" nuestros celulares... Vas a ver que vas a salir entendiendo todo


Ademas es mejor prevenir que lamentar..

Saludos!
muchas gracias!!! ahi encontre un tutorial y ya lo aplique, salio todo perfecto!


va no todo perfecto xq flashie el zip y en control voltage no me aparece como opcion el SIO ni el smartss (asi como tampoco me aparece para regular los voltajes, ni overclocking), pero por lo menos ya se como usar el CWM jaja
 
Última edición por un moderador:

Active

Let's finish our holiday cheer...
#15
No lo pienso probar, pero la informacion es excelente! Gracias por compartirla


EDIT: Al final lo probé, sólo se puede usar SmartAss V2 y el BoostAss? Éste último del cual no hablaste, lo puse como Update.zip y desde Configuración -> Rendimiento -> Procesador -> Patrones CPU se puede elegir el Governors! (Desde CyanoMod 9)

Veremos que tal anda.
 
Última edición por un moderador:
Estado
Cerrado para nuevas respuestas.