|
||
#1
|
||||
|
||||
![]()
El objetivo de este hilo es aprender un poco más acerca de la configuración de los kernels y de sus parámetros.
Viendo que por estos lugares no tenemos nada referente a las configuraciones de los diferentes governos que vienen en los kernels, me he decidido a terminar con esto y que todo el mundo pueda tener una noción básica al respecto. En primer lugar hay que decir que la información la he sacado de este hilo de XDA creado por droidphile y que todo el mérito va para él principalmente. Yo simplemente me he limitado a traducirlo como buenamente he podido, y puede que haya alguna cosa que no esté del todo clara. El hilo está dividido en tres partes (desde aquí se puede ir a cualquiera de ellas):
No pretende ser un tutorial, ni un hilo en el que preguntar qué es un governor o un scheduler o para cómo se configura un kernel, etc. Simplemente es una guía para entender y tener claros algunos de los parámetros que nos brindan los kernels para poder configurarlos a nuestros gusto y exprimir al máximo el potencial de los mismos, y de nuestros teléfonos. GOVERNORS 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:
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 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 la sleep_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 PREGUNTAS P. “Muy bien, basta de explicaciones. Dime qué governor es mejor para rendimiento y cual es mejor para la batería.” R. Lulzactive y SmartassV2 para un equilibrio entre rendimiento y batería. Para tareas ligeras, Lulzactive debería ser mejor en cuanto a batería, y para tareas más pesadas, Lulzactive debería ser mejor para rendimiento también. Para obtener un rendimiento máximo usa un Ondemand retocado o un Conservative, pero nunca te quejes de la batería entonces. NOTA: no es fácil hacerse con el Lulzactive. Si no estás seguro de cómo configurarlo sigue leyendo los siguientes posts. P. “Casi lo olvido, ¿cómo puedo cambiar los governors?" R. La mejor manera es usando un script en init.d si tu kernel está preparado para ello. Otra opción, mucho más fácil, es usando aplicaciones como NSTools, Voltage Control, Pimp my CPU, etc. P. “¿Cómo se qué governor es el mejor para mí?” R. Depende de lo que necesites según el uso que le des al teléfono a diario: rendimiento o batería. La mejor elección es un governor que tenga un equilibro entre las dos opciones. O modificar un governor para obtener un mayor rendimiento en detrimento de la batería. Siempre podemos recargar la batería: en el coche cuando vamos al trabajo, en casa por la noche. Lo que no podemos es recargar el rendimiento. Si, como lo oyes. Prueba a disfrutar del teléfono, no le pongas barreras con tal de que gaste menos y te dura la batería 2 o 3 días. Si la batería te aguanta desde que te levantas hasta que te acuestas dale caña. P. “Bien, he elegido me governor favorito para cuando se enciende la pantalla y otro para cuando se apaga. ¿Por qué el teléfono no se enciende al salir del reposo? Tengo que reiniciarlo pulsando el botón power durante unos 10 segundos…¿He tenido un SOD (sleep of death)?” R. Si. No uses dos governos distintos para pantalla apagada/encendida si ambos tienen limitada la frecuencia máxima para la pantalla apagada. ¿No lo has entendido?
P. "Noto cierto lag con un governor. Por ejemplo cuando hago scroll en el menú de aplicaciones o en el navegador web, etc. Me encanta este governor y no me digas que use otro…¿Puedo deshacerme del lag?" R. Si…puedes. Básicamente lo que tenemos que hacer es que el governor muestree con menos frecuencia cuándo bajar la velocidad de la CPU. Incrementar el tiempo de muestro para bajar la frecuencia hace que la CPU esté durante más tiempo en una misma frecuencia antes de disminuirla. Esto podría eliminar el lag. P. “Ok, quiero modificar el governor según mi uso habitual, porque no estoy a gusto con la configuración predetermianda.” R. Se pueden modificar los governors usando un script en init.d, por ejemplo: /sys/devices/system/cpu/cpufreq/name-of-active-governor/name-of-the-paramater-to-tweak. La manera más fácil y cómoda, sin duda, es usando la aplicación NSTools, la cual permite ajustar los parámetros de todos los governors que lo permitan. P. “Voy a elegir como frecuencia mínima 100 mhz porque mi kernel me da la opción. Espero que no haya nada malo en hacer esto.” R. ¡Espera! Posiblemente desees no usar la frecuencia mínima de 100 mhz con la pantalla apagada/encendida por tres razones:
P. “¿Cómo hacer mi teléfono más ágil? Me importa la duración de la batería…” R. Selecciona un rango de 500 mhz a 1200 mhz cuando la pantalla está encendida y uno de 200 mhz a 500 mhz cuando la pantalla está apagada. Usa un Performance o un Conservative/OndemanX modificados. La respuesta del teléfono será excelente y no te preocupes…un mínimo de 500 mhz con la pantalla encendida no gasta tanta batería como piensas. Última edición por zadock Día 12/04/12 a las 00:12:35. |
Los siguientes 207 usuarios han agradecido a zadock su comentario: | ||
|
#2
|
||||
|
||||
I/O SCHEDULERS (I/O = Imput/Output)
P. “¿Para qué sirve un I/O Scheduler?” R.
P. “¿Qué metas persigue cada I/O scheduler para tratar de conseguir un equilibrio?” R.
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 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 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 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 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 6) V(R) 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 PREGUNTAS P. “¿Cuál es el mejor I/O Scheduler? R. No hay ninguno mejor que otro. Depende del uso que le des y las aplicaciones y tareas que tengas en ejecución, usa diferentes schedulers. Es lo mejor que te puedo decir. Sin embargo, considerando un rendimiento general, batería, fiabilidad y menos retardo, se piensa que SIO > Noop > Deadline > VR > BFQ > CFQ, considerando que todos los schedulers son modificables y el almacenamiento usado es una memoria flash. P. “¿Cómo puedo cambiar los I/O Schedulers?” R. Con aplicaciones como NSTools o Voltage Control por ejemplo, ambas en el Market. Última edición por zadock Día 10/04/12 a las 13:34:43. |
Los siguientes 158 usuarios han agradecido a zadock su comentario: | ||
#3
|
||||
|
||||
Parámetros y ajustes
Solo voy a poner éstos para Ondemand, Conservative, SmartassV2, Lulzactive e Interactive ya que son los governors más utilizados. Diferentes governors tendrán diferentes parámetros, pero es fácil entenderlos. Normalmente un governor tendrá:
Antes de seguir, personalmente, recomiendo el uso de la aplicación NSTools, gratis en la Play Store. 1. ONDEMAND Parámetros
Ejemplos de configuración Batería Para obtener un ahorro de batería, selecciona valores altos de up_threshold y sampling_rate. De esta manera los muestreos se harán con menos frecuencia, lo mismo que las subidas/bajadas de frecuencia.
Rendimiento Para obtener mayor rendimiento, selecciona valores bajos de up_threshold y sampling_rate. De esta manera, el muestreo y las subidas/bajadas se harán más a menudo.
LULZACTIVE Parámetros
Ejemplos de configuración Batería Esta modificación hace que se aumente gradualmente la frecuencia de la CPU y se disminuya rápidamente.
Esta modificación hace que se aumente la frecuencia de la CPU rápidamente y baje de forma gradual.
Esta modificación hace que se muestree más a menudo y se suban 4 escalones sobre la frecuencia actual, pero solo cuando se alcanza el 90% de carga de la CPU. La CPU baja de frecuencia de manera normal.
SMARTASSV2 Parámetros
Ejemplos de configuración Batería
CONSERVATIVE Parámetros
Batería Selecciona un valor bajo para freq_step para ahorrar batería.
Para nada es irónico el configurar un governor Conservative para obtener un mayor rendimiento.
INTERACTIVE Parámetros
Ejemplos de configuración Batería
Última edición por zadock Día 22/02/13 a las 11:27:26. |
Los siguientes 144 usuarios han agradecido a zadock su comentario: | ||
#8
|
||||
|
||||
Este hilo ya fijo entre mis favoritos, me encanta el tema este, me he leido de arriba abajo el post de xda, bueno la parte para galaxy o aplicable a el mejor dicho, porque hay algunos govs que jamas veréis, y eso que zadock ha eliminado unos cuantos, y schedulers que ya están usandose cada vez menos por no decir nada como cfq, aunque todo configurado como debe, dependiendo de lo que se busque, dará resultado.
Va empiezo yo: Los scheduler mas fluidos para mi, Deadline y VR, pero vr es algo inestable. |
Gracias de parte de: | ||
#9
|
||||
|
||||
El tema es tener una guía para la gente que no esté muy familiarizada con todo esto. Lo suyo, y lo dejaré claro en el primer post es que este hilo no sea un tutorial o sea para dudas sobre qué es un governor, scheduler y cual es el mejor
![]() Igual me caliento y pongo una encuesta más adelante. |
Los siguientes 4 usuarios han agradecido a zadock su comentario: | ||
#11
|
||||
|
||||
Lo flipo en colores
![]() ![]() ![]() Si antes tenia dudas en poner uno u otro,ahora ya si que me has liado por completo ![]() ![]() Muy buen trabajo compi,una ayuda tremenda,seguire con mi smartassv2 por que no se ni por donde cogerlo jeje. Saludos. |
#12
|
||||
|
||||
Muy buena idea Zadock ,asi las cosas seran un poco menos liosos en esos temas.
Muy buen curro gracias. ![]() |
Gracias de parte de: | ||
#13
|
||||
|
||||
Pasa de dormir bien con pantalla apagada a ponerse a 1000 al activar y ya bajar gradualmente, pero si apagas pantalla cae hasta 100 y evita mas tiempo en otras frecuencias. Aquí hay chichaaaaa |
#14
|
||||
|
||||
Espérate a que ponga las configuraciones de los parámetros de cada governor...bueno de los más usados...ahí si que hay chicha.
El hilo está para eso, primero para saber un poco más de todo esto, y luego que cada uno si quiere exprese su opinión sobre lo que lleva dando sus razones o lo que quiera ![]() |
#15
|
||||
|
||||
Es que ese es un gov standard,a caballo entre bateria y fluidez, muy compensado, escala muy rapido de freq y también desciende rápido cuando el sistema no lo necesita.
Pasa de dormir bien con pantalla apagada a ponerse a 1000 al activar y ya bajar gradualmente, pero si apagas pantalla cae hasta 100 y evita mas tiempo en otras frecuencias. Aquí hay chichaaaaa ![]() Yo me quedo a cuadros viendo como hablais de esto como el que habla de cambiar la rueda del coche.Yo es que no tengo ni pajolera idea,solo porngo el smartassv2 con la fecuencia maxima a 1000 y minima a 100(bueno despues de leer el post,lo dejo a 200 que es lo unico que me he enterado) y activo los leds,todo desde el nstools,todo lo demás no se ni tocarlo,aun leyendo esto y seguro que me iría el movil increiblemente bien,porque ahora no me va nada mal... |
#16
|
||||
|
||||
Espérate a que ponga las configuraciones de los parámetros de cada governor...bueno de los más usados...ahí si que hay chicha.
El hilo está para eso, primero para saber un poco más de todo esto, y luego que cada uno si quiere exprese su opinión sobre lo que lleva dando sus razones o lo que quiera ![]() ![]() Saludos. |
#17
|
||||
|
||||
Espérate a que ponga las configuraciones de los parámetros de cada governor...bueno de los más usados...ahí si que hay chicha.
El hilo está para eso, primero para saber un poco más de todo esto, y luego que cada uno si quiere exprese su opinión sobre lo que lleva dando sus razones o lo que quiera ![]() ![]() Deadline + conservative = fluidez que te cagas? O piensas poner hasta el tema de los parámetros tipo: Awake_ideal_freq Sampling_rate Sampling_down_factor Y toda esta pesca? |
#18
|
||||
|
||||
Ahí si que va a haber trabajillo. |
Los siguientes 3 usuarios han agradecido a zadock su comentario: | ||
#19
|
||||
|
||||
Enhorabuena, me encanta, porque aún no tengo tiempo para traducir, pero para lo que quieras cuenta conmigo |
Gracias de parte de: | ||
|
#20
|
||||
|
||||
Gracias por el ofrecimiento, lo tendré en cuenta. Ya sabes que si tienes un rato me avisas
![]() Mañana estaré fuera todo el día, y el sábado no se cómo andaré, pero el domingo ya estoy libre. |
![]() |
![]() |
||||||
|
Herramientas | |