Puntos a tener en cuenta al tweakear el Pegasusq:
- El intervalo de muestreo real no es el valor de "sampling_rate", ya que este valor se multiplicará por el número de muestras que se tomen ("cpu_up_rate" o "cpu_down_rate"). Por esta razón si pones valores demasiado altos de "sampling_rate" no ahorraras batería y en cambio sí provocaras lag.
- Deja el valor del down_differencial entre 5 y 10, o al menos entre 5 y 15. La diferencia entre "upthreshold" y "down_differential" está considerado como el porcentaje de la frecuencia actual de la que resultará la frecuencia a la que se escalará hacia abajo cuando la CPU esté en "max_load_frequency" (esta "max_load_frequency" no es la "scaling_max_frequency", sino que es una frecuencia arbitraria algo más baja)
- Los gobernadores basados en OnDemand saltan directamente a la máxima frecuencia demasiado a menudo. una situación donde ocurriría esto es cuando "max_load_freq" sea mayor que el porcentaje "up_threshold" de la frecuencia actual. Por esto es mejor no poner valores demasiado bajos de "up_threshold"
- "sampling_down factor" es el número de muestras que pasarán a la máxima frecuencia de la CPU antes de re-evaluar la carga. Un valor de 1 puede ser bueno para el consumo pero también causará escalados hacia abajo incluso si la CPU está muy ocupada. Un valor compensado es 2. Tampoco es necesario que la CPU permanezca a la máxima frecuencia para siempre...
- Un valor para "freq_step" de 100 anula la razón de su existencia. Podría estar entre 20 y 50/60 dependiendo de tus necesidades. "smooth_scaling" y "freq_step" hacen lo mismo. Usa sólo uno de ellos y no los dos a la vez.
- El valor de "hotplug_freq_1_1" debe ser mayor que "hotplug_freq_2_0". Además, "hotplug_down" debe ser mayor que tu frecuencia mínima o de otra forma el segundo núcleo no se apagaría despues de encenderse.
- Los valores de "hotplug_rq_1_1" y "hotplug_rq_2_0" afectan a las decisiones de encendido y apagado del segundo núcleo basadas en el número de procesos que se encuentren en la cola de ejecución. Manten sus valores entre 200 y 350. Si prefieres que el segundo núcleo se encienda antes y tarde más en apagarse usa valores más bajos.
- "freq_for_responsiveness" es la frecuencia que ayuda a recalcular la "frequency_next" o siguiente frecuencia para escalar hacia abajo a partir de la frecuencia máxima. Cuando esa "frequency_next" es menor que "freq_for_responsiveness" o mediante el escalado hacia abajo hasta esa frecuencia, el siguiente muestreo no va a causar otro escalado hacia abajo, entonces la "frequency_next" será la "freq_for_responsiveness". Esto previene el escalado hasta una frecuencia demasiado baja que cause un escalado hacia arriba en el siguiente muestreo. Una frecuencia correcta para "freq_for_responsiveness" es aquella que se encuentre de la mitad hacia abajo de tu tabla de frecuencias. Para desactivar este parámetro ajústalo a tu frecuencia mínima de escalado.
- "up_threshold_at_min_freq" es el umbral de escalado arriba para frecuencias por debajo de "freq_for_responsiveness". El valor de este parámetro deberá depender de cuan alto o bajo sea tu "freq_for_responsiveness". Si necesitas un escalado suave hasta la "freq_for_responsiveness", usa valores altos para "up_threshold_at_min_freq". Y viceversa.