Como é que conseguimos este patch de 200 linhas para melhorar o desempenho?

66

Eu leia hoje no Phoronix que há um 200 patch de linha para o kernel do Linux, que melhora drasticamente a capacidade de resposta do desktop.

Como os usuários do Ubuntu podem obter isso de maneira compatível?

    
por popey 17.11.2010 / 00:13

6 respostas

59

A discussão sobre este patch específico ocorreu na lista de discussão da equipe do kernel do Ubuntu:

link

Mas deixe-me tentar elaborar ainda mais genericamente sobre a melhor maneira de qualquer patch entrar no kernel do Ubuntu ...

Primeiro, é a política preferida da Equipe do Kernel do Ubuntu que os patches sejam enviados e aceitos pelo desenvolvedor antes de serem colocados no kernel do Ubuntu. É uma grande sobrecarga de manutenção para a equipe do Kernel do Ubuntu ter que manter fora dos consertos de árvores. Além disso, se o patch beneficiará toda a Comunidade do Kernel, ele deverá ser transferido primeiro para o desenvolvedor.

Uma vez que o patch tenha sido aceito no upstream, ele eventualmente entrará no kernel do Ubuntu automaticamente. Um pedido de escolha ou pull pode também ser feito se desejado, veja a página, KernelPatches , para mais informação.

Se o patch precisar ser aplicado como um SRU ( atualização de versão estável ) a uma versão anterior do Ubuntu, é melhor obter o patch aceito na árvore 2.6.xy estável a montante correspondente. Como parte do nosso processo normal de kernel SRU, nós continuamente rebase para o mais recente kernel estável upstream. Assim, novamente, obteríamos o patch automaticamente.

    
por Leann Ogasawara 17.11.2010 / 00:37
20

Acabei de ler o tópico lkml e espero poder oferecer algumas informações - embora não seja sobre como obter o patch no Ubuntu. Como um post na lista do Ubuntu link diz, provavelmente vai estar na versão 2.6.38.

O patch agrupa automaticamente o processo com base em TTYs. Há muita discussão / argumento no lkml que diz que isso não é relevante para o uso típico de desktop - que não faz diferença para aplicativos interativos. Os casos de teste são todos baseados em "iniciar uma tarefa intensiva da CPU a partir de um terminal e, em seguida, verificar a capacidade de resposta de outra tarefa". Então, compilando um kernel e tentando assistir a um vídeo, por exemplo.

Isso não quer dizer que não seja bom, mas as manchetes do tipo "responsabilidade da área de trabalho aprimorada por uma ordem de grandeza" podem ser enganosas se você nunca executar tarefas intensivas da CPU conectadas a um TTY. Eu posso estar errado, é claro!

Houve algumas menções sobre as formas de alcançar um resultado muito semelhante adicionando aos seus scripts bash e permitindo que todos os usuários criem cgroups. Isso só funcionará se os kernels atuais do Ubuntu tiverem cgroups habilitados. Os posts relevantes são:

  • link
  • link

Obviamente, isso não está respondendo a pergunta, mas pode ser usado para determinar se o patch é tão mágico quanto o esperado.

    
por Roger Light 17.11.2010 / 12:23
12
  

Como os usuários do Ubuntu podem obter isso de uma forma que seja suportada ?

Ênfase minha. A única maneira de obtê-lo de forma suportada é aguardar que o Ubuntu o coloque no kernel do Ubuntu. Como isso é realmente apenas chegar à lista de discussão do kernel, é recente ao ponto em que todos os testes são bastante anedóticos e imagino que levará algum tempo até que esteja pronto para ser implantado em massa.

Em algum lugar entre o próximo lançamento e um longo período, seria meu palpite inculto.

Mas se você é um grande garoto (ou garota) e você pode lidar com um kernel quebrado se as coisas derem errado (ie você sabe como usar o grub), você pode corrigir e compilar seu próprio kernel.

  1. Faça o download de um patch. Existem versões diferentes, mas o melhor por conta própria foi postado abaixo por outro usuário: link

  2. Faça o download do código-fonte do kernel para a versão que seu patch segmenta. Neste caso 2.6.36. Você pode obter fontes de kernel vanilla (que são originais, não modificadas pela equipe do kernel do Ubuntu) de kernel.org e extraí-las.

  3. Salve o patch em algum lugar e aplique-o por cd ing no diretório de origem do kernel e execute: patch -p1 < /path/to/patch (você precisa do pacote patch para isso ... O que eu acho vem como parte do build-essential se não estiver instalado por padrão)

  4. E continue com o resto do processo de construção "antiquado" ... Eu realmente não me preocuparia com os métodos mais recentes, pois eles são direcionados para fontes de kernel sancionadas pelo Ubuntu / Debian ... Além disso, o jeito antigo parece mais fácil ( para mim).

Construir kernels não é difícil, mas você pode estragar tudo se você se afastar muito do caminho aceito. E você não receberá suporte oficial se as coisas derem errado.

Alternativamente, existem mais e mais kernels surgindo com o patch embutido (ou pelo menos na árvore de fontes, aguardando a próxima versão).

  • Eu acredito que o Zen Kernel tenha esse patch em sua árvore, mas não tenho certeza se ainda está em construções.
  • O Kernel Liquorix também já está presente.

Nota: ambos os kernels (e provavelmente outros também) se desviam um pouco do modo de fazer kernels do Ubuntu. Você pode encontrar (como eu fiz quando me mudei para Liquorix) que a escala de frequência da CPU pára de funcionar ou a suspensão é interrompida. Geralmente existem correções e soluções alternativas, mas é provável que você não receba suporte do AskUbuntu ou do resto da comunidade do Ubuntu, já que não podemos verificar cada kernel por aí.

    
por Oli 17.11.2010 / 00:23
5

Você pode usar um simples "hack" postado por um desenvolvedor RedHat em uma lista de discussão, que não requer patch do kernel para obter a mesma coisa. Leia sobre isso aqui: Alternativa para o patch de kernel de 200 linhas que faz maravilhas "Que você pode usar imediatamente

    
por Alin Andrei 18.11.2010 / 16:43
1

A partir de 2011-01-18, o Linux 2.6.38-rc1 inclui o referido patch.
Veja as notícias da Phoronix relacionadas e Linus post .

A partir de 2011-01-29, o Natty Narwhal constrói diariamente navios com o Linux 2.6.38.

Existem duas soluções atualmente:

  • Obtenha a última imagem do Ubuntu 11.04 .
  • Ou espere pelo último lançamento oficial do Ubuntu 11.04 em abril de 2011.
por Maxime R. 19.01.2011 / 15:11
0

Acabei de escolher esta discussão agora e é muito interessante. Eu escrevi uma pequena postagem no blog sobre como habilitar o patch cgroup no Ubuntu 10.10.

Eu não testei realmente se funciona ou não, então o feedback seria ótimo!

    
por stefanlsd 17.11.2010 / 20:52