overclocking-android-devices,Z-Q-338246-13

 

Nesta postagem eu irei explicar os Governors,Modules e Schedulers I/O, assim todos poderão tirar o máximo de seu aparelho em jogos e no dia-a-dia.

 

 

 

 

 

 

 

P1. “OK eu flashei o kernel xyz. O que são todos esses governors? Como faço para saber qual é o melhor para mim? Como faço para ajustá-los para melhor Vida-Útil da bateria/Desempenho/Balanço entre os dois”.

 

P2. “Qual é o “parada” sobre estes governor? que vem com o kernel. Como faço para usá-los. Eles são bons? Ou devo deixa-los de lado?”

 

P3. “O que faz um Escalonador I/O? Qual o melhor?

 

P4. “Eu posso ter mais controle sobre a CPU? Mais informações e ajustes na CPU dual core, a freqüência de um ônibus, etc?”

 

P5. “Uma melhor compreensão sobre o impacto de diferentes valores para os parâmetros básicos / avançados do Kernel e configuração de Apps, para que eu possa ajustar as configurações de acordo com o meu gosto?”

 

1. GOVERNORS

Temos 19 governos populares em diferentes kernels
1) Ondemand(Vem na maioria dos kernel stock)
2) Ondemandx
3) Conservative
4) Interactive
5) Interactivex
6) Lulzactive
7) Lulzactiveq
8) Smartass
9) SmartassV2
10) Intellidemand
11) Lazy
12) Lagfree
13) Lionheart
14) LionheartX
15) Brazilianwax
16) SavagedZen
17) Userspacce
18) Powersave
19) Performance

 

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!

 

Assim, os reguladores podem ser classificados em 3/4 de um nível elevado:
1.a)Baseado no Ondemand:
Funciona em “ramp-up em carga alta” princípio. o tempo da CPU ocupado é levado em consideração para escalar as decisões.

Membros: Ondemand, OndemandX, Intellidemand, Lazy, Lagfree.

1.b)Baseado no Conservador:
Membros: Conservador, Lionheart, LionheartX

2) Com base no Interativo:
Funciona em “fazer a decisão de escala quando a CPU sai de idle loop-“.

Membros: interativos, InteractiveX, Lulzactive, Luzactiveq, smartass, SmartassV2, Brazilianwax, SavagedZen.

3) Categoria estranha:
Membros: Userspace, PowerSave, Performance.

 

HORA DE PERGUNTAS:

 

P.”Ok . Chega de explicações . Diga-me qual é governador para o desempenho e qual é para a vida da bateria.”
R. Pergunta difícil! o lulzactive e smartassV2 são para um equilíbrio entre desempenho e bateria. Para tarefas leves , lulzactive deve ser melhor para a bateria. E para as tarefas de peso elevado, lulzactive deve ser melhor para o desempenho também. Para obter o máximo desempenh , use um ondemand ajustado ou o conservador, mas nunca se queixem da bateria.

NOTA: Não é tão fácil de domar luzactive . Se você não sabe exatamente como fazê-lo, fique longe dele, ou você vai acabar reclamando sobre o consumo da bateria!

 

P.”Como é que eu sei que o governador X é o melhor para mim? “
R. Depende do que você precisa e seu padrão de uso diário. Desempenho ou bateria. Melhor escolher um governador que está equilibrada para a bateria/performance. Ou ajustar um governador para dar um desempenho superior-mão em relação a bateria. Podemos sempre voltar a carregar o telefone: No carro quando vai para o trabalho, ou durante a noite. Mas não podemos recarregar o desempenho! Afinal de contas, nós compramos aparelhos melhores para apreciá-lo á pura energia.

 

P. “O que é e para o que serve um i/o scheduler? “
R.Minimizar a latência do disco rígido.
Priorizar as solicitações de Entrar/Sair de processos.
Alocar a largura da banda de disco para os processos em execução.
É garantia de que certos pedidos será servido antes de um prazo.

Assim, no mais simples de forma mais simples: Kernel controla o acesso ao disco usando I/O Scheduler.

 

P.”Que metas cada I/O tenta equilibrar?”
R.Fairness (que cada processo tem a sua quota de acesso ao disco)
Performance (tentar atender as solicitações perto de posição da cabeça do disco atual em primeiro lugar, processando as informações mais rápido)
Em tempo real (garantia de que o pedido é atendido em um determinado momento)

 

P. “Descrição, vantagens e desvantagens de cada I/O Scheduler ? “

1) Noop

Insere todos os pedidos I/O de entrada para uma fila de ‘”um a um”. Melhor usado com dispositivos de armazenamento que não dependem de movimento mecânico para acessar dados (sim, como os nossos pen drives). Vantagem aqui é que os pendrives não requer a reordenação de vários pedidos de E/S ao contrário de discos rígidos normais.

Vantagens:
Serve pedidos I/O com menor número de ciclos de CPU. (Amigável a bateria?Eu não sei, mais deixa o aparelho lento)
Boa taxa de transferência em sistemas de DataBases.
Desvantagens:
Redução do número de ciclos da CPU utilizada é proporcional à queda no desempenho.

 

2) Deadline

O objetivo é minimizar a latência de pedidos do I/O. O mesmo é conseguido através da política de rodízio para ser justo entre os vários pedidos de E/S. Cinco filas são agressivamente usada para reordenar as solicitações de entrada.

Vantagens:
Quase um programador em tempo real.
Destaca na redução da latência de qualquer I/O.
Melhor agendador para acessar banco de dados e consultas.
Exigência de largura de banda em um processo de porcentagem que a CPU precisa, é facilmente calculado.
Como o noop, um bom programador para as unidades/PenDrives/Cartão SD.
Desvantagens:
Quando o sistema está sobrecarregado, um conjunto de processos que podem perder dados é eminente.

 

3) CFQ

Agendador Queuing Completely Fair ele mantém uma fila escalável por processo de E/S e as tentativas de distribuir o I/O na largura da banda disponível igualmente entre todos os pedidos de E/S. Cada fila por processo contém solicitações de processos. Cada fatia de tempo alocado para cada fila depende da prioridade do processo “pai”. V2 de CFQ tem algumas correções que resolve o consumo exagerado do i/o a uma pequena “parcela” , na esperança de melhorar a capacidade de resposta.

Vantagens:
Considerado para entregar um desempenho equilibrado, estável e não falhar quase nunca.
Mais fácil de ajustar.
Distingue-se em sistemas com múltiplos processadores.
Melhor desempenho do sistema de banco de dados após longos prazos.
Desvantagens:
Alguns usuários relatam que a digitalização de mídia leva mais tempo para ser concluída com o CFQ. Isso pode ser por causa das propriedades, desde a largura de banda igualmente distribuída a todos os I/O as operações durante a inicialização, a digitalização de mídia não é dada qualquer prioridade especial.
Jitter (pior caso de demora) às vezes pode ser alta , por causa do número de tarefas que competem para o disco.

 

4) BFQ

Em vez da alocação em “fatias” que o CFQ , O BFQ atribui orçamentos. O disco é concedido um processo ativo até que o orçamento(número de setores) expirar. O BFQ atribui altos orçamentos para tarefas “não- lidas”.  Atribuído a um processo varia ao longo do tempo em função de seu comportamento .

Vantagens:
Acredita-se ser muito bom para a taxa de transferência de dados USB.
Acredita-se ser o melhor programador para gravação de vídeo HD e vídeo streaming. (por causa de menos instabilidade, em comparação com o CFQ e outros)
Considerado um i/o preciso.
Atinge cerca de 30% a mais no rendimento do que na maioria das cargas de trabalho do CFQ.
Desvantagens:
Não é o melhor programador para benchmarking.
A carga maior atribuída a um processo pode afetar a interatividade e aumento da latência.

 

5) SIO

Um Simples I/O  tem como objetivo manter o mínimo de sobrecarga para atingir baixa latência para atender as solicitações de E/S. Sem conceitos de prioridade, só o básico. Sio é uma mistura entre noop & deadline. Sem reordenamento ou triagem dos pedidos.

Vantagens:
Simples, de modo confiável.
Inanição minimizada de pedidos.
Desvantagens:
Baixa velocidade de leitura aleatórios no USB, em comparação com outros programadores.
Velocidades sequencial de leitura no USB também não é tão boa.

 

6) V(R)

Ao contrário de outros programadores, as solicitações síncronas e assíncronas não são tratados separadamente, O próximo pedido para ser servido, é com base na distância do último pedido.

Vantagens:
Pode ser melhor para o benchmarking, porque no auge dele o VR executa melhor.

Desvantagens:
Resultados de flutuação de Desempenho em desempenho abaixo da média em alguns momentos.
Pelo menos confiável/mais instável.

 

7) Anticipatory

Com base em dois fatos
i)A Procura dos discos é muito lento.
ii)As operações de gravação pode acontecer sempre, mas há sempre algum processo à espera de operação de leitura.

Então ele prioriza as operações antecipatórias de leitura e gravação. Ele antecipa as operações de leitura síncronizadas.

Vantagens

Os pedidos de leitura de processos nunca estão sedentos.
Tão bom quanto noop por desempenho lido em armazenamento USB.
Desvantagens

Pode não ser sempre confiável.
Redução da escrita e desempenho em discos de alta velocidade.

 

P.”Qual o melhor I/O intão?”
R. Não existe “melhor” programados i/o. Dependendo do seu ambiente de uso e as tarefas/apps sendo executado, use diferentes programadores para ver qual melhor se em caixa no seu dia-a-dia. Isso é o melhor que eu posso sugerir.
No entanto, considerando o desempenho global, bateria, confiabilidade e baixa latência, acredita-se que o CFQ é o melhor na minha opinião.

P.”Como faço para mudar de O/I?”
R. Antutu CPU Master, Set CPU ou No-Frills CPU podem ajudar, mais se você usa cyanogenmod não precisa de nenhum programa pois ela vem com um painél para essas configurações.

 

P. “Isso pode estragar o processador do meu aparelho?”

R. Toda operação desconhecida pode vir com riscos, overclock por exemplo é o que mais danifica o aparelho, do resto só ir com calma e ir testando”

 

Atenção eu não me responsabilizo por danos no seu aparelho, essa postagem foi escrita para tirar dúvidas a respeito disso

 

Antutu CPU master

Set CPU

 

Se for postar no seu blog de os créditos para o pessoal que fez essa postagem:

 

Eusouandroid.com

JaysonGalbin

XdaDevelopers

Wikipedia

 

Informações com bases retiradas da Xda Developers e Wikipedia.