![]() |
|
ROMs y desarrollo Samsung Galaxy S Plus ROMs y desarrollo Samsung Galaxy S Plus |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Tipos de gobernadores, I/O y Parámetros
![]() ¿Qué son los gobernadores? Los gobernadores serían los encargados de gestionar el uso de las frecuencias de la CPU. Dicho de otro modo, es el que decide cuándo utilizar la frecuencia máxima (en el Galaxy S+ por defecto es de 1400Mhz) para sacar todo el rendimiento de nuestro "bicharraco". Diferentes tipos de gobernadores y sus características: 1) lazy: Este gobernador de ezekeel es básicamente un gobernador ondemand con un parámetro adicional min_time_state para especificar el tiempo mínimo que la CPU se mantiene en una frecuencia antes de escalar hacia arriba/abajo. La idea aquí es eliminar cualquier inestabilidad causada por el rápido cambio de frecuencia del ondemand. El gobernador Lazy escanea más frecuentemente que el ondemand, pero cambia de frecuencia sólo después de completar min_time_state en un paso. Lazy también tiene un parámetro de screenoff_maxfreq que puede ser configurado para especificar la frecuencia máxima con la pantalla apagada. 2) lulzactive: Este gobernador de tegrak está basado en los gobernadores interactive y smartass. Es uno de los gobernadores favoritos. Versión vieja: cuando la carga de trabajo es mayor o igual al 60%, el gobernador escala hacia arriba la cpu hasta el siguiente paso más alto. Cuando la carga de trabajo es menor al 60%, el gobernador escala hacia abajo la cpu hasta el siguiente paso más bajo. Cuando la pantalla está apagada, la frecuencia está bloqueada a la frecuencia mínima de escalado. Nueva versión: tres parámetros adicionales configurables por el usuario: inc_cpu_load, pump_up_step, pump_down_step. Este gobernador ofrece mayor control para el usuario. Podemos configurar el umbral en el cual el gobernador decide si escala arriba/abajo. También podemos configurar el número de pasos de frecuencia. También puede fijar el número de pasos de frecuencia que hay que saltar mientras escanea arriba y abajo. 3) lagfree: El gobernador Lagfree es similar a ondemand. La diferencia principal es su optimización para llevarse mejor con la batería. Lagfree no se salta ningún paso de frecuencia mientras escala arriba o abajo. Recuerde que si hay un requerimiento para un repentino gasto de energía grande, lagfree no puede satisfacerlo mientras eleva la cpu a través de cada paso de alta frecuencia desde el actual. Algunos usuarios han reportado problemas de tirones en la reproducción de vídeo utilizando Lagfree. 4) smartassV2: Versión 2 del gobernador smartass original de erasmux. Otro gobernador favorito para mucha gente. Este gobernador escala hacia abajo muy rápido cuando la pantalla está apagada y escala hasta 500Mhz muy rápido cuando la pantalla está encendida. No hay límite de frecuencia superior cuando la pantalla está apagada. El objetivo de este gobernador es buscar la "frecuencia ideal", y aumentar gradualmente de una manera más agresiva hacia esta frecuencia y menos agresiva después. Utiliza diferentes frecuencias ideales cuando la pantalla está apagada o encendida, es decir, awake_ideal_freq y sleep_ideal_freq. Garantiza un equilibrio entre rendimiento y batería. 5) ondemandx: Básicamente es un gobernador ondemand con un perfil de suspensión/despertar. Este gobernador es un ondemand con mejor comportamiento con la batería. Cuando la pantalla está apagada, la frecuencia máxima son 500Mhz. 6) intellidemand: Intellidemand o también conocido como el "ondemand inteligente" de Faux, es otro gobernador basado en "ondemand". A diferencia de lo que algunos usuarios creen, este gobernador no es el equivalente a "OC Daemon" (Teniendo distintos gobernadores para suspensión y despertar). El comportamiento original de "intellidemand" es diferente según el uso de la GPU. Cuando la GPU está muy saturada (con juegos, mapas, benchmarks...) el comportamiento de intellidemand es como el del gobernador "ondemand". Cuando la GPU está inactiva o con un uso muy moderado, "intellidemand" limita la frecuencia máxima a un paso dependiendo de las frecuencias disponibles en tu kernel/teléfono para salvar batería. Esto se conoce como el modo navegación. Podemos ver algunos "rastros" del gobernador "interactive" aquí. La decisión de escalar la frecuencia está basada en el tiempo de inactividad de la CPU. Un menor tiempo de inactividad (<20%) hace que la CPU escale hacia arriba desde la frecuencia actual. El escalado descendente de frecuencia ocurre en los pasos = 5% de la frecuencia actual. En resumen, se trata de un "ondemand inteligente" que entra en modo de navegación para limitar la frecuencia máxima cuando la GPU está inactiva y se comporta como "ondemand" cuando la GPU está muy ocupada, ofreciendo un buen rendimiento para juegos y similares. "Intellidemand" no salta a la frecuencia más alta cuando la pantalla está apagada. 7) lionheart: Lionheart es un gobernador "conservative" modificado por Knzo. Permite modificar el umbral mínimo y máximo y la menor frecuencia de muestreo disponible en el "conservative". Lo que busca este gobernador es la capacidad de respuesta extrema y el rendimiento, a costa de la batería. Cuando se trata de suavidad (sin considerar la descarga de la batería), un "conservative" ajustado ofrece mayor suavidad en comparación con un "ondemand" afinado. Esto podría ser la razón del nacimiento de Lionheart. 8) brazilianwax: Similar al gobernador smartassv2. Más agresivo incrementando la frecuencia, por lo que ofrece mejor rendimiento y por lo tanto, menos batería. 9) SavagedZen: Otro gobernador basado en smartassv2. Logra un buen equilibrio entre rendimiento y batería en comparación con savagedzen. 10) smartass: Versión inicial de smartassv2. Dispone de un límite de frecuencia con la pantalla apagada. No se comporta tan bién con la batería como smartassv2 ya que la frecuencia mínima con la pantalla encendida es mayor que la frecuencia utilizada mientras la pantalla está apagada. 11) conservative: Un ondemand más lento el cual escala despacio para salvar batería. 12) userspace: En lugar de determinar automáticamente las frecuencias, permite al usuario configurar las frecuencias. 13) powersave: Bloquea la frecuencia máxima a la frecuencia mínima. No se puede utilizar con la pantalla encendida o incluso con la pantalla apagada (si la frecuencia mínima de escalado es demasiado baja). 14) ondemand: El gobernador por defecto en la mayoría de kernels originales. Es lo mismo que ondemandx pero sin perfiles de suspensión/despertar. A pesar de que muchos de nosotros consideramos que éste es un gobernador fiable, carece de ahorro de batería y el rendimiento es el que viene configurado por defecto. 15) performance: Establece la frecuencia mínima como la máxima. Utiliza este gobernador para realizar los benchmarks! 16) Interactive: Es considerado como un ondemand más rápido. Más ágil, menos batería. En lugar de realizar muestreos en cada intervalo como ondemand, éste determina la manera de escalar la cpu cuando sale de reposo. Es un ondemand inteligente por las optimizaciones de estabilidad. 17) Interactivex: Es un gobernador Interactive con un perfil para despertar. Mejor comportamiento con la batería que el Interactive. ¿Cómo cambiar el gobernador? Una vez que nos decantamos por un gobernador entre la gran variedad existente, vamos a explicar cómo cambiarlo. Se pueden cambiar de varias formas, una de ellas es utilizando scripts, pero voy a explicar la manera más sencilla a mi juicio, que es mediante la utilización de aplicaciones disponibles en el Market. Hay bastantes aplicaciones para este cometido, pero voy a citar las más conocidas. - SetCPU Link al Market Descarga gratuíta en su hilo oficial de XDA Posts sacado de nuestro compañero sergy330 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. Ventajas2) 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. Ventajas3) 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. Ventajas4) 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). Ventajas5) 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. Ventajas6) 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. VentajasPará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
Gracias a zadock |
Los siguientes 20 usuarios han agradecido a Stikes su comentario: | ||
|
#3
|
||||
|
||||
Lo pasamos a ROMs y Desarrollo ok?
Muchas gracias @dj_stickes! |
#4
|
||||
|
||||
Cita:
![]() |
Los siguientes 5 usuarios han agradecido a Stikes su comentario: | ||
#5
|
||||
|
||||
Gracias por toda la info compi un Saludo.
Por cierto cual seria la configuracion general mas o menos? para hacerme una idea. |
#6
|
||||
|
||||
No existen parametros standar, pues depende de la RAM del terminal, el procesador, y capacidad general del dispositivo.
Ademas de ello, cada ROM, e internamente cada kernel, gestiona el terminal de un modo distinto. Un saludo. |
#7
|
||||
|
||||
Me he quedado loco, que pedazo de manul para entender un poquito como funcionan los sistemas
|
#8
|
||||
|
||||
![]() Gracias compi, haceis unos tutos para torpes como yo que son la ostiaaaaa. ![]() |
#9
|
||||
|
||||
No lo había visto hasta hoy... menuda aportación... genial
A tus pies |
Gracias de parte de: | ||
#10
|
Sin comentarios, enorme!
![]() |
#11
|
||||
|
||||
Muy currado, me ha venido muy bien para entender esto de los gobernadores que no tenia nidea jaajaja
Estoy probando varios ahora a ver si lo noto en el rendimiento y la batería, también estoy probando el I/O deadline. |
#12
|
Cómo cambio los Thresholds y los Sampling Time/Rate ?????
Tengo SetCPU y NSTools instalados pero no sé cómo cambiar los parámetros en general Concretamente tengo la Ehndroix II 13.2.1 y el castagnalITkernel_10.2 (el de stock por asi decirlo) y querría ahorrar batería poniendo esta configuración de parámetros: Batería Esta modificación hace que se aumente gradualmente la frecuencia de la CPU y se disminuya rápidamente. inc_cpu_load = 90 pump_up_step = 1 pump_down_step = 2 up_sample_time = 50000 down_sample_time = 40000 screen_off_min_step = 5 Necesito saber eso por favor, muchas gracias de antemano! Salu2 y gracias por el post! |
#13
|
||||
|
||||
Y con NoFrillsCPU Control? Es otra aplicacion, mira haber.
Es que no recuerdo si se podia o no, al menos en la version free. |
#14
|
||||
|
||||
Hola, he visto en el nexus kernel que viene el IO scheduler "row" he intentado buscar algo sobre él en google por curiosidad, pero no vi nada, ni en ingles ni español. Alguien sabría decirme al igual que en el post principal de este hilo sus principales ventajas e inconvenientes?
muchas gracias de antemano ![]() ![]() ![]() ![]() ![]() PD: lo unico que encontre fue esto, pero es el algoritmo entero. https://patchwork.kernel.org/patch/1274761 |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
Herramientas | |
|
|
Hora actual: 16:58:34 (GMT +2)
HTCMania: líderes desde el 2007