YossYGalaxy
05/11/12, 18:45:45
Pegasusq es básicamente eun gobernador OnDemand que además controla el hotplugging. Es un gobernador originalmente desarrollado por samsung para dispositivos "quad core" y posteriormente modificado por Gokhan Moral en el kernel Siyah para adaptarlo a dispositivos "dual core".
PARÁMETROS PEGASUSQ
sampling_rate: frecuencia de muestreo en microsegundos.
up_threshold: cuando la carga de la CPU llega a este punto, la frecuencia de la CPU escalará hacia arriba. Está medido en porcentaje de 1 a 100. Mayor valor significa menos capacidad de respuesta y valores más bajos corresponden a mejor respuesta repercutiendo en el gasto de la batería.
sampling_down_factor: este valor actúa como multiplicador inverso para reducir la frecuencia de muestreo de utilización de la CPU (sampling_rate) cuando el procesador está realmente ocupado y está a la frecuencia máxima. Por ejemplo sampling_rate=10.000 con sampling_down_factor=2: el scheduler tomará muestras de utilización de la CPU cada 20.000 microsegundos. De esta forma se aumenta el tiempo que la CPU está a frecuencias altas cuando está realmente ocupada. Esto mejora el rendimiento mediante la reducción de los gastos generales de la evaluación de la carga y ayudando a la CPU permanecer en su frecuencia más alta cuando está ocupada, en vez de producir un efecto ping-pong en la velocidad. Este parámetro no tiene ningún efecto sobre el comportamiento a bajas frecuencias y bajas cargas de CPU.
Los valores que puede tomar este parámetro son enteros positivos. El valor 1 hace que no haya diferencias de muestreo a frecuencia maxima.
down_differencial: es un factor utilizado para calcular de forma indirecta el escalado hacia abajo del gobernador OnDemand. Se introduce básicamente para evitar que en algunos casos se produzca un efecto ping-pong de escalados abajo-arriba con el consiguiente aumento de consumo. Este parámetro actúa como un factor que previene escalados demasiado agresivos hacia frecuencias bajas.
Los valores que puede tomar este parámetro son enteros positivos. Los valores más altos retrasarán el escalado hacia abajo. Normalmente no son necesarios estos valores altos ya que por la estructura del algoritmo en que interviene este parámetro ya se producen varios redondeos al alza que hacen que la CPU normalmente esté "sobrada" utilizando este gobernador.
freq_step: define cuanto (en % de la máxima velocidad de la CPU) incrementará o disminuirá el gobernador la velocidad de la CPU cada vez que la carga de la CPU llega a un umbral.
cpu_up_rate: número de muestras de la carga que son tomadas para escalar hacia arriba la velocidad de la CPU.
Este parámetro toma valores enteros positivos.
cpu_down_rate: número de muestras de la carga que son tomadas para escalar hacia abajo la velocidad de la CPU.
Este parámetro toma valores enteros positivos.
hotplug_freq_1_1: es la frecuencia umbral a partir de la que se encenderá el segundo núcleo, cuando otras condiciones necesarias también se cumplan.
Se mide en Kilohertzios. Cuanto mayor sea este valos más se retrasará el encendido del segundo núcleo.
hotplug_freq_2_0: es la frecuencia umbral a partir de la que se apagará el segundo núcleo, cuando otras condiciones necesarias también se cumplan.
Se mide en Kilohertzios. Cuanto menor sea este valos más se retrasará el apagado del segundo núcleo.
hotplug_rq_1_1: es el umbral de longitud de la cola de procesos a partir del que se encenderá el segundo núcleo.
Toma valores enteros positivos.
hotplug_rq_2_0:es el umbral de longitud de la cola de procesos a partir del que se apagará el segundo núcleo.
Toma valores enteros positivos.
freq_for_responsiveness: hasta que se llega a "freq_for_responsiveness" el umbral de escalado hacia arriba es "up_threshold_at_min_freq".
También, cuando el procesador está a la frecuencia máxima, el gobernador necesita encontrar cuál será la frecuencia óptima a establecer como siguiente frecuencia, que no desencadene un escalado hacia arriba en el siguiente muestreo. Cuando esta "siguiente frecuencia" resulta ser inferior a "freq_for_responsiveness", no se activará el escalado hacia abajo en la siguiente muestra y "freq_for_responsiveness" se establecerá como "frecuencia óptima"
up_threshold_at_min_freq: es el umbral de escalado hacia arriba cuando estemos en valores de frecuencia menores que "freq_for_responsiveness". Por encima de esta frecuencia se utilizará el umbral normal "up_threshold". Esto nos da la opción de un escalado más agresivo o suave (según las necesidades) hasta una frecuencia y la normal para frecuencias más altas.
ignore_nice_load: si este valor es 1 el sistema no tendrá en cuenta la carga debida a los "procesos de baja prioridad" para cambiar la velocidad del procesador: será útil activar esta opción si no importa el tiempo que se tarden en completar estos procesos.
Nota: los procesos de baja prioridad serán aquellos que así establezca el planificador (I/O Scheduler)
Este parámetro toma valores 0 ó 1.
io_is_busy: este parámetro tiene que ver con el comportamiento y la reacción cuando la pantalla está apagada. El valor 1 hace que el tiempo de espera I/O sea tratado como tiempo ocupado de la CPU y el sistema no estará inactivo (idle).
Este parámetro toma valores 0 ó 1. Un valor 1 puede resultar beneficioso para una reacción más rápida pero puede causar aumento en la frecuencia y por lo tanto del consumo.
Este parámetro toma valores 0 ó 1.
max_cpu_lock: con el valor por defecto 0 se encenderá y apagará el segundo núcleo cuando sea apropiado. Valores de 1 ó 2 especifican el número de núcleos a tener en cuenta para el hotplugging.
Este parámetro toma valores 0, 1 ó 2.
hotplug_lock: con valores diferentes de valor por defecto 0 se cancela el hotplug del segundo núcleo. Si el valor es distinto de 0 sera mayor que el valor "max_cpu_lock"
Este parámetro toma valores 0, 1 ó 2.
TWEAKS PEGASUSQ
* Partimos de la base de que la tabla de frecuencias es de 18 pasos, la frecuencia mínima no es mayor de 200 mhz y la máxima no es menor de 1000 mhz
BATERÍA
up_threshold: 90
up_threshold_at_min_freq: 80
sampling_rate: 60000
sampling_down_factor: 1
down_differential: 5
freq_step: 20
freq_for_responsiveness: 300000
cpu_up_rate: 15
cpu_down_rate: 15
hotplug_freq_1_1: 500000
hotplug_freq_2_0: 300000
hotplug_rq_1_1: 350
hotplug_rq_2_0: 200
ignore_nice_load: 0
io_is_busy: 1
max_cpu_lock: 0
hotplug_lock: 0
RENDIMIENTO
up_threshold: 75
up_threshold_at_min_freq: 65
sampling_rate: 40000
sampling_down_factor: 2
down_differential: 10
freq_step: 60
freq_for_responsiveness: 400000
cpu_up_rate: 10
cpu_down_rate: 20
hotplug_freq_1_1: 400000
hotplug_freq_2_0: 300000
hotplug_rq_1_1: 200
hotplug_rq_2_0: 150
ignore_nice_load: 0
io_is_busy: 1
max_cpu_lock: 0
hotplug_lock: 0
EQUILIBRADO
up_threshold: 80
up_threshold_at_min_freq: 40
sampling_rate: 40000
sampling_down_factor: 2
down_differential: 5
freq_step: 40
freq_for_responsiveness: 200000
cpu_up_rate: 10
cpu_down_rate: 20
hotplug_freq_1_1: 400000
hotplug_freq_2_0: 300000
hotplug_rq_1_1: 300
hotplug_rq_2_0: 200
ignore_nice_load: 0
io_is_busy: 1
max_cpu_lock: 0
hotplug_lock: 0
Tu Kernel y tú: kernel, gobernadores y schedulers (http://www.htcmania.com/showthread.php?t=484697)
PARÁMETROS PEGASUSQ
sampling_rate: frecuencia de muestreo en microsegundos.
up_threshold: cuando la carga de la CPU llega a este punto, la frecuencia de la CPU escalará hacia arriba. Está medido en porcentaje de 1 a 100. Mayor valor significa menos capacidad de respuesta y valores más bajos corresponden a mejor respuesta repercutiendo en el gasto de la batería.
sampling_down_factor: este valor actúa como multiplicador inverso para reducir la frecuencia de muestreo de utilización de la CPU (sampling_rate) cuando el procesador está realmente ocupado y está a la frecuencia máxima. Por ejemplo sampling_rate=10.000 con sampling_down_factor=2: el scheduler tomará muestras de utilización de la CPU cada 20.000 microsegundos. De esta forma se aumenta el tiempo que la CPU está a frecuencias altas cuando está realmente ocupada. Esto mejora el rendimiento mediante la reducción de los gastos generales de la evaluación de la carga y ayudando a la CPU permanecer en su frecuencia más alta cuando está ocupada, en vez de producir un efecto ping-pong en la velocidad. Este parámetro no tiene ningún efecto sobre el comportamiento a bajas frecuencias y bajas cargas de CPU.
Los valores que puede tomar este parámetro son enteros positivos. El valor 1 hace que no haya diferencias de muestreo a frecuencia maxima.
down_differencial: es un factor utilizado para calcular de forma indirecta el escalado hacia abajo del gobernador OnDemand. Se introduce básicamente para evitar que en algunos casos se produzca un efecto ping-pong de escalados abajo-arriba con el consiguiente aumento de consumo. Este parámetro actúa como un factor que previene escalados demasiado agresivos hacia frecuencias bajas.
Los valores que puede tomar este parámetro son enteros positivos. Los valores más altos retrasarán el escalado hacia abajo. Normalmente no son necesarios estos valores altos ya que por la estructura del algoritmo en que interviene este parámetro ya se producen varios redondeos al alza que hacen que la CPU normalmente esté "sobrada" utilizando este gobernador.
freq_step: define cuanto (en % de la máxima velocidad de la CPU) incrementará o disminuirá el gobernador la velocidad de la CPU cada vez que la carga de la CPU llega a un umbral.
cpu_up_rate: número de muestras de la carga que son tomadas para escalar hacia arriba la velocidad de la CPU.
Este parámetro toma valores enteros positivos.
cpu_down_rate: número de muestras de la carga que son tomadas para escalar hacia abajo la velocidad de la CPU.
Este parámetro toma valores enteros positivos.
hotplug_freq_1_1: es la frecuencia umbral a partir de la que se encenderá el segundo núcleo, cuando otras condiciones necesarias también se cumplan.
Se mide en Kilohertzios. Cuanto mayor sea este valos más se retrasará el encendido del segundo núcleo.
hotplug_freq_2_0: es la frecuencia umbral a partir de la que se apagará el segundo núcleo, cuando otras condiciones necesarias también se cumplan.
Se mide en Kilohertzios. Cuanto menor sea este valos más se retrasará el apagado del segundo núcleo.
hotplug_rq_1_1: es el umbral de longitud de la cola de procesos a partir del que se encenderá el segundo núcleo.
Toma valores enteros positivos.
hotplug_rq_2_0:es el umbral de longitud de la cola de procesos a partir del que se apagará el segundo núcleo.
Toma valores enteros positivos.
freq_for_responsiveness: hasta que se llega a "freq_for_responsiveness" el umbral de escalado hacia arriba es "up_threshold_at_min_freq".
También, cuando el procesador está a la frecuencia máxima, el gobernador necesita encontrar cuál será la frecuencia óptima a establecer como siguiente frecuencia, que no desencadene un escalado hacia arriba en el siguiente muestreo. Cuando esta "siguiente frecuencia" resulta ser inferior a "freq_for_responsiveness", no se activará el escalado hacia abajo en la siguiente muestra y "freq_for_responsiveness" se establecerá como "frecuencia óptima"
up_threshold_at_min_freq: es el umbral de escalado hacia arriba cuando estemos en valores de frecuencia menores que "freq_for_responsiveness". Por encima de esta frecuencia se utilizará el umbral normal "up_threshold". Esto nos da la opción de un escalado más agresivo o suave (según las necesidades) hasta una frecuencia y la normal para frecuencias más altas.
ignore_nice_load: si este valor es 1 el sistema no tendrá en cuenta la carga debida a los "procesos de baja prioridad" para cambiar la velocidad del procesador: será útil activar esta opción si no importa el tiempo que se tarden en completar estos procesos.
Nota: los procesos de baja prioridad serán aquellos que así establezca el planificador (I/O Scheduler)
Este parámetro toma valores 0 ó 1.
io_is_busy: este parámetro tiene que ver con el comportamiento y la reacción cuando la pantalla está apagada. El valor 1 hace que el tiempo de espera I/O sea tratado como tiempo ocupado de la CPU y el sistema no estará inactivo (idle).
Este parámetro toma valores 0 ó 1. Un valor 1 puede resultar beneficioso para una reacción más rápida pero puede causar aumento en la frecuencia y por lo tanto del consumo.
Este parámetro toma valores 0 ó 1.
max_cpu_lock: con el valor por defecto 0 se encenderá y apagará el segundo núcleo cuando sea apropiado. Valores de 1 ó 2 especifican el número de núcleos a tener en cuenta para el hotplugging.
Este parámetro toma valores 0, 1 ó 2.
hotplug_lock: con valores diferentes de valor por defecto 0 se cancela el hotplug del segundo núcleo. Si el valor es distinto de 0 sera mayor que el valor "max_cpu_lock"
Este parámetro toma valores 0, 1 ó 2.
TWEAKS PEGASUSQ
* Partimos de la base de que la tabla de frecuencias es de 18 pasos, la frecuencia mínima no es mayor de 200 mhz y la máxima no es menor de 1000 mhz
BATERÍA
up_threshold: 90
up_threshold_at_min_freq: 80
sampling_rate: 60000
sampling_down_factor: 1
down_differential: 5
freq_step: 20
freq_for_responsiveness: 300000
cpu_up_rate: 15
cpu_down_rate: 15
hotplug_freq_1_1: 500000
hotplug_freq_2_0: 300000
hotplug_rq_1_1: 350
hotplug_rq_2_0: 200
ignore_nice_load: 0
io_is_busy: 1
max_cpu_lock: 0
hotplug_lock: 0
RENDIMIENTO
up_threshold: 75
up_threshold_at_min_freq: 65
sampling_rate: 40000
sampling_down_factor: 2
down_differential: 10
freq_step: 60
freq_for_responsiveness: 400000
cpu_up_rate: 10
cpu_down_rate: 20
hotplug_freq_1_1: 400000
hotplug_freq_2_0: 300000
hotplug_rq_1_1: 200
hotplug_rq_2_0: 150
ignore_nice_load: 0
io_is_busy: 1
max_cpu_lock: 0
hotplug_lock: 0
EQUILIBRADO
up_threshold: 80
up_threshold_at_min_freq: 40
sampling_rate: 40000
sampling_down_factor: 2
down_differential: 5
freq_step: 40
freq_for_responsiveness: 200000
cpu_up_rate: 10
cpu_down_rate: 20
hotplug_freq_1_1: 400000
hotplug_freq_2_0: 300000
hotplug_rq_1_1: 300
hotplug_rq_2_0: 200
ignore_nice_load: 0
io_is_busy: 1
max_cpu_lock: 0
hotplug_lock: 0
Tu Kernel y tú: kernel, gobernadores y schedulers (http://www.htcmania.com/showthread.php?t=484697)