sexta-feira, 18 de julho de 2014

Governors de Todas as kernels

Temos 19 governos populares em diferentes kernels


1) Ondemand :
Governor padrão em quase todos os kernels . Um objetivo principal do governador ondemand é mudar para freqüência máxima , logo que há uma atividade “pesada” é detectada ele tenta fazer o processador usar força total no aplicativo. Então Ondemand salta à frequência máxima quando a CPU está ocupada e diminui a freqüência gradualmente quando a CPU é menos sobrecarregada. Mesmo que muitos de nós consideram este um governador de confiança, fica aa desejar em economia de bateria e desempenho nas configurações padrão. Uma razão para o governador ondemand não ser muito eficiente.

2) Ondemandx:
Basicamente um ondemand com perfis de suspender/despertar mais eficiente. Este governador foi feito para ser mais “amigo da bateria”. Quando a tela está desligada, a freqüência máxima é limitada a 500 mhz. Mesmo que ondemand é o governador padrão em muitos kernel e é considerado seguro/estável, o suporte para ondemand/ondemandX depende da capacidade da CPU para fazer a comutação de frequência rápida, que são transições de freqüência com latência muito baixa. Eu li em algum lugar que o desempenho do ondemand/ondemandx foram variando significativamente para diferentes programadores I/O. Isso não é verdade para a maioria dos outros governadores. Pessoalmente, sinto que ondemand/ondemandx vai melhor com scheduler I/O “SIO”.

3) Conservative:
A Ondemand mais lento que dimensiona-se lentamente para economizar bateria. O governador conservador baseia-se no governador ondemand. Ele funciona como o governador Ondemand ajustando dinamicamente as frequências com base na utilização do processador. No entanto, os conservadores aumenta governador e diminui a velocidade do CPU de forma mais gradual. Simplificando, este governador aumenta a frequência passo a passo sobre a carga da CPU e pula para a menor freqüência. Governador conservador visa ajustar dinamicamente a frequência da CPU para a utilização atual, sem saltar a freqüência máxima. O valor sampling_down_factor atua como um multiplicador negativo de sampling_rate para reduzir a frequência que as amostras de planejador a utilização da CPU. Por exemplo, se sampling_rate igual a 20.000 e sampling_down_factor é 2, as amostras governador a utilização da CPU cada 40.000 microssegundos.

4) Interative:
Pode ser considerada uma ondemand mais rápido. Então, mais suave , menos bateria. Interativo é projetado para ser sensível à latência, com cargas de trabalho interativas. Em vez de provar a cada intervalo como ondemand , ele determina como ampliar a quando ela fica ociosa. O governador tem as seguintes vantagens :
1) Rampa mais consistente, porque governadores existentes fazem sua amostra de carga em um contexto WorkQueue, mas o governador interativo faz isso em um contexto de timer, o que dá a amostra de carga mais consistente.
2) maior prioridade para aumento de freqüência da CPU, dando assim, as tarefas restantes o benefício de desempenho da CPU , ao contrário de governadores existentes que cronograma um “start-up” de trabalho para ocorrer após as tarefas foram concluídas. Interativo É uma Ondemand inteligente por causa de otimizações de estabilidade. Por que?
Ele “aloca” a carga da CPU a cada X ms (como o Ondemand) pode levar a sub- alimentação da CPU para X ms , levando a perda de quadros , UI “picotando” , etc Em vez da CPU em uma taxa especificada , o governador interativo irá verificar e dimensionar a freqüência da CPU logo depois que sai do inativo. Quando a CPU fica ociosa, um temporizador é configurado para disparar dentro de 1-2 instantes. Se a CPU é muito movimentada entre sair ociosa e quando o cronômetro dispara , então assumimos que a CPU é de fraca potência e rampa de freqüência máxima.

5) Interactivex: Este é um governador interativo com um perfil de esteira. Mais amigável a bateria do que o interativo.

6) Lulzactive:
Esta nova descoberta da Tegrak é baseado no interativo e Smartass governadores e é um dos favoritos.
Versão antiga: Quando a carga de trabalho é maior ou igual a 60% , o governador escalas até CPU para a próxima etapa superior. Quando a carga de trabalho é inferior a 60% , o governador escalas para baixo CPU para o próximo passo menor. Quando a tela está desligada , a frequência é bloqueada para frequência mínima de escala global.
Nova Versão: Mais três parâmetros configuráveis ​​pelo usuário : inc_cpu_load , pump_up_step , pump_down_step . Ao contrário de versão mais antiga, este dá mais controle para o usuário. Podemos definir o limite em que o governador decide escalar para cima/baixo. Nós também podemos definir o número de passos da frequência a ser ignorado enquanto a votação cima e baixo .
Quando a carga de trabalho é igual ou superior a inc_cpu_load, escala o pump_up_step. Quando a carga de trabalho é menor do que o inc_cpu_load , ele escala o pump_down_step para baixo.
exemplo :
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
Se a freqüência atual=200, Cada up_sampling_time vai para > = 70%, a cpu é escalada até 2 etapas - a 800.
Se a freqüência atual=1200, Cada down_sampling_time desce para <70% , e a cpu é reduzida de 1 passo - a 1000.

7) Lulzactiveq:
Lulzactiveq é um governador lulzactive modificado de autoria do mebro da XDA robertobsc e é adaptado no kernel do Siyah para GS2 e GS3 . Lulzactiveq visa otimizar a segunda versão do luzactive da Tegrak para fornecer um parâmetro extra (dec_cpu_load) para fazer a escala para baixo mais sensata, a incorporação da lógica hotplug com o governador. Luzactiveq é o primeiro governador baseadono interativo e embutido a lógica hotplugging (pelo menos o primeiro de seu tipo para a plataforma Exynos). Quando CPU sai do loop ocioso e é hora de tomar uma decisão de escalar, se a carga > = CPU inc_cpu_load é escalada para cima (como luzactive original) e se a carga < dec_cpu_load , CPU é reduzida . Isto possivelmente elimina a frequência de corte único escrito para luzactiveq para tomar decisões de escalonamento da CPU. Além disso, se a lógica hotplug é executada como um segmento separado com o governador para que a lógica hotplugging externa não é necessária para controlar o hotplug dentro e para fora (ligar e desligar) da CPU em dispositivos multi-core como o GS2 ou GS3 . Apenas um governador multi núcleo ciente faz sentido real em dispositivos muti -core. Lulzactiveq e pegasusq pretendem fazer isso.

8) Smartass: Resultado do Erasmux(XDA) reescrever o código completo do governador interativo. O objetivo principal é otimizar a vida da bateria sem comprometer o desempenho. Ainda assim, não é tão amigável com a bateria o smartassV2 desde a tela ligada a frequência mínima é maior do que as freqüências utilizadas durante a tela desligada. Smartass saltaria para a maior freqüência muitas vezes também.

9) SmartassV2: A versão 2 do governador smartass original do Erasmux. Outro favorito para muitos. O governador aponta para uma "freqüência ideal", e o ramp up de forma mais agressiva para esta frequencia menos agressiva depois. Ele utiliza frequências diferentes ideais para tela e fora da tela, ou seja, awake_ideal_freq e sleep_ideal_freq. Este governador escalas para baixo a CPU muito rápidamente (para bater sleep_ideal_freq breve) enquanto a tela está desligada e dimensiona-se rapidamente para awake_ideal_freq (500 MHz para o GS2 por padrão) quando a tela está ligada. Não há limite superior para a freqüência enquanto a tela está desligada (ao contrário do Smartass). Então, toda a faixa de freqüência está disponível para o governador de usar durante o estado de tela ligada/desligada e. O lema deste governador é um equilíbrio entre desempenho e bateria.

10) Intellidemand: Intellidemand ou Ondemand Inteligente de Faux é mais um governador que é baseado em ondemand. Ao contrário do que alguns usuários acreditam, este governador não é o substituto do OC Daemon (A existência de diferentes governadores para sono e vigília). O intellidemand original comporta de forma diferente de acordo com a utilização de GPU. Quando a GPU é muito ocupado (jogos, mapas, benchmarking, etc) intellidemand se comporta como o ondemand. Quando GPU é “marcha lenta” (ou moderadamente ocupada) , intellidemand limita a freqüência máxima a um passo de acordo com as frequências disponíveis no dispositivo/kernel para poupar bateria. Isso é chamado de modo de navegação. Podemos ver alguns " traços " do governador interativo aqui. É feita de decisões scale-up de freqüência com base no tempo de CPU em marcha lenta. Tempo em marcha lenta mais baixa ( <20% ) faz com que a CPU se expandir a partir da frequência atual. Frequência escala -down acontece em etapas = 5 % da freqüência máxima. (Este parâmetro é ajustável apenas em conservador , entre os governadores populares)
Em suma, esta é uma ondemand inteligente que entra em modo de navegação para limitar freqüência máxima quando GPU está em marcha lenta, e em saídas (modo de navegação) se comporta como ondemand quando a GPU está ocupada, para oferecer desempenho para jogos e tal. Não Intellidemand não salta para a maior freqüência quando a tela está desligada.

11) Lazy:
Este governador de Ezekeel é basicamente um ondemand com um min_time_state parâmetro adicional para especificar as estadias da CPU em uma freqüência antes de escalar para cima/baixo. A idéia aqui é para eliminar quaisquer instabilidades causadas pela freqüência de comutação rápida pelo ondemand. Esse é um governador preguiçoso mais frequentemente do que ondemand, mas as mudanças de freqüência depois de completar min_time_state em um intervalo de amostragem a passo primordial. Lazy também tem um parâmetro screenoff_maxfreq que quando ativado fará com que o governador selecione sempre a freqüência máxima, enquanto a tela está desligada.

12 ) Lagfree:
Lagfree é semelhante ao ondemand. Principal diferença é que é a otimização para tornar-se mais amigável a bateria. A freqüência é graciosamente diminuida e aumentada, ao contrário do ondemand que salta para 100% com muita freqüência. Lagfree não pula nenhuma etapa de frequência enquanto se escala para cima ou para baixo. Lembre-se que se há um requisito para súbita explosão de energia, lagfree não pode satisfazer, que, uma vez que tem que levantar cpu através de cada passo de frequência mais alta do atual. Alguns usuários relatam que a reprodução de vídeo usando lagfree “picota” um pouco.

13) Lionheart: Lionheart é um governador conservador à base que se baseia na fonte Update3 da Samsung. Ajustes vem de
1) Knzo
2) Morfic.
A idéia original vem de Netarchy. Veja aqui. Os ajustáveis ​​(tais como os limiares e taxa de amostragem) foram alteradas de modo que o governador se comporta mais como o desempenho, ao custo de bateria como a escala é muito agressiva.

14) LionheartX
LionheartX é baseado em Lionheart, mas tem algumas mudanças nos ajustáveis ​​e apresenta um perfil baseado em suspender o governador Smartass.

15) Brazilianwax: Semelhante a smartassV2. Rampa mais agressiva, de modo com mais desempenho, menos bateria.

16) SavagedZen: Outro governador baseado no smartassV2. Atinge bom equilíbrio entre desempenho e bateria em comparação com brazilianwax.

17) Userspace: Em vez de determinar automaticamente as freqüências, permite as freqüências em conjunto de usuários.

18) PowerSave: Este “tranca” a freqüência máxima para a minima. Não pode ser utilizado como a tela ligada/desligada ou mesmo (se escala minima é muito baixa).

19) Performance: Define o mínimo de freqüência para a freqüência máxima. Utilize para jogos pesados e benchmarking!

Nenhum comentário:

Postar um comentário

LEIA ANTES DE COMENTAR
1) Antes de fazer um comentário verifique se algum dos outros comentários (Se estiver disponível) ira responder sua pergunta.
2) Evite que seu comentário seja duplicado, pois iremos tratar como SPAM não iremos ler ao menos responder caso isso aconteça.
3) Evite divulgar sites e blogs no mesmo pois aqui não é nenhum agregador de links!
4) Seu comentário poderá ser moderado a qualquer momento antes de ser publicado.
5) Insultos ou qualquer tipo de ofensa nos comentários sera ignorado...
6) Comente, sempre estaremos ajudando você.