Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!

Iniciado por Hqxriven, 24 de Dezembro de 2007, 13:26

tópico anterior - próximo tópico

Andreson Goveia

Estou compilando novamente mas agora com o patch do ubuntu que tem otimizações para intel,
http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-intel-next/current/0001-base-packaging.patch
Apareceu algumas opções "a mais" de coisa da intel (ou eu que não tinha reparado)
interessante também é que depois de dar o comando
ps ax | grep gcc | grep match
para verivicar se ele pegou tudo certo, dei o comando

ps ax | grep gcc | grep mtune

e o bom é que apareceu mtune=core2 em todos.(era para ser assim??)


Andreson Goveia

Citação de: Andreson online 18 de Janeiro de 2011, 03:50
Citação de: 4d4c47 online 18 de Janeiro de 2011, 02:36
@galactus,

vi que usa processador intel, já ouviu falar do linuxDna ?

é um projeto que usa o icc (compilador da intel de alta peformance) para compilação do kernel linux, se algum dia tiver tempo, faça uns testes aé pra gente e vê se isso presta mesmo, aqui vai o link:

http://www.linuxdna.com/


To baixando o compilador da intel

http://software.intel.com/en-us/articles/non-commercial-software-development/

Vou tentar instalar e compilar o Kernel com ele, vamos ver no isso vai dar.
Eu baixei esse compilador ai, mas o problema é que os pacotes que vem dentro é tudo em .rpm, ai nem tentei instalar.

Gunss

não notei um um aumento tão grande no desempenho como o galactus.
Ok, o VLC ficou melhor, agora passando o vídeo freneticamente ele não distorce a imagem. Porém não vi um ganho tão grande assim.

Não sei se é pq sempre aparece
-march=native -march=core2 -march=i686.

Não sei pq aqui isso sempre aparece, sendo que as mesmas modificações que eu fiz o galactus também fez.

galactus

Citação de: Gunss online 18 de Janeiro de 2011, 12:21
não notei um um aumento tão grande no desempenho como o galactus.
Ok, o VLC ficou melhor, agora passando o vídeo freneticamente ele não distorce a imagem. Porém não vi um ganho tão grande assim.

Não sei se é pq sempre aparece
-march=native -march=core2 -march=i686.

Não sei pq aqui isso sempre aparece, sendo que as mesmas modificações que eu fiz o galactus também fez.

Você não usa mais patchs do que eu?  Tipo o do RCU?  Eu não uso isso, talvez por isso você não sente tanta diferença! Você já disse que o RCU deixou o seu Core2 igual ao i7!
Você também tá compilando para 32 bits né?
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

#3259
Citação de: galactus online 18 de Janeiro de 2011, 12:42
Citação de: Gunss online 18 de Janeiro de 2011, 12:21
não notei um um aumento tão grande no desempenho como o galactus.
Ok, o VLC ficou melhor, agora passando o vídeo freneticamente ele não distorce a imagem. Porém não vi um ganho tão grande assim.

Não sei se é pq sempre aparece
-march=native -march=core2 -march=i686.

Não sei pq aqui isso sempre aparece, sendo que as mesmas modificações que eu fiz o galactus também fez.

Você não usa mais patchs do que eu?  Tipo o do RCU?  Eu não uso isso, talvez por isso você não sente tanta diferença! Você já disse que o RCU deixou o seu Core2 igual ao i7!
Você também tá compilando para 32 bits né?

é verdade, eu uso 32bits, e o Classic RCU realmente deu um up bem legal. (Alias, não estou achando esse patch para o 2.6.37)

Mas o que me deixa pensando é que aqui todos estão conseguindo compilar e no comando "ps ax | grep gcc | grep march" ele mostra que está compilando para core2 native e i686 enquanto todos aqui só aparece native e as vezes a core2 (ou arquitetura do processador, como amd10). Isso é que me deixa com a pulga atras da orelha, pq aqui fica assim?

Não estou achando ruim o desempenho, muito longe disso, minha máquina está ótima, abri programas beem rápido, inicia com um tempo muito bom, até o plymouth ta funcionando  :P

MSXManiac

#3260
Bom! Eu fiz duas compilações na madruga:
As duas com o kernel 2.6.37+patch do kolivas no Linux Mint 10.10 com o cpp4.5_+_g++4.5_+_gcc4.5_+_gcov4.5 por default!
A machinna é um Core2Duo E4700 a 2.66 com 3 Gb a 667 MHz! O chipset é o i945 da Intel, menos o de vídeo que é bem mais antigo, o 852/855 também da intel.
Depois de patcheado o kernel source, saí a caça dos -march, -mtune e -mcpu! Eu não troquei os -mtune e -mcpu por -march, mas botei todos eles em native! Só não troquei onde era comentário!
Também saí a caça da opção de compilação -O2 e troquei por -Os em todos os arquivos pois a compilação é parecida com a -O2 só que se o compilador decidir, algumas rotinas podem ser otimizadas mais ainda! Só não troquei onde era comentário!
Agora vem a parte gostosa!
No config, eu setei performance, Core 2, Low Latency e...
Na primeira tentativa marquei 10.000! Isso mesmo! 10 mil! Cara, eu nunca vi a ventoinha da fonte e do processador girarem tanto e fazerem tanto barulho! Como o gabinete tava deitado, tive a impressão que iria sair voando, tal a sucção de ar!
O grep revelou o que eu esperava! Quando -march=native não mostrava -mtune! Quando -march=core2, mostrava -mtune=core2! Perfeitamente normal p/ mim!
Chamou atenção também as chamadas quanto ao uso do -mcpu, alertando para trocar por -march e -mtune! Isso nunca ocorreu com tanta insistência nas compilações anteriores.
O processo até que correu meio lento em função da opção -Os creio eu. Esta lentidão no entanto foi mais sentida na hora de montar o vmlinuz e os dois debs!
Inclusive este processo fez a pasta onde estava o source do 2.6.37 engordar de pouco mais 300 megas para algo acima de 6.7 Gb! Isso depois que eu removi os debs para outro local para não dar uma bela enrolada nos vínculos!

Apaguei as pastas e instalei os debs e aí veio o teste! Cruzei os dedos e fiquei na maior torcida! A barulheira prometia! Reboot, entra o grub, começa a carregar o kernel e aí demooooooooooooraaaaaaaaa! Entra o GDM, escolho o usuário, digito senha+[ENTER] e aí demooooooooooooraaaaaaaaa!

Enfim, estamos no Gnome e até que o Opera, apesar de não ter aberto num zás-trás, abriu com todas as abas já compostas, sem nenhuma carga em andamento! É bem verdade que uma internet de 10 megas ajuda e muuuuuuuuuuitoooooooooooo!
O que percebi é que após um uso mais intensivo, principalmente usando o Synaptic ao invés do terminal, os processo de instalar e remover ficaram bem mais rápidos!
Mas não fiquei contente, rebootei e pelo kernel do Mint o removi usando o Ubuntu-Tweak!
Parti de novo, copiando para o /usr/src o kernel já modificado (aha, fiz cópia seu abestado! Inclusive da config do make config), recriei o atalho (vulga pasta linux que na verdade é um atalho), dei um kpkg-make-clean e rodei o xconfig! Só tive o trabalho de trocar de 10.000 para 3.000 (que eu testei antes sem essas firulas e me agradou muito), salvei e mandei ver de novo e de novo a mesma coisa. Quer dizer, eu acho pq daí fui dormir (maior sono) e só acordei as 07:30 com tudo pronto.
Rebootei e a demora se repetiu, embora um pouco menor! O desempenho também melhorou em relação ao anterior! Como eu ativei o compiz e essa instalação é nova (a anterior deu pau no compiz) e eu ainda não instalei o openbox (esquecimento) e o comparativo ficou meio que capenga, mas no geral valeu a pena!
Talvez eu tente fazer só com 1.000 prá ver se piora. melhora ou fica no não fede nem cheira!
Prá terminar o relato (ou seria um testamento) só lembrando que aqui ninguém é C.D.T. mas tá cheio de doido varrido como eu e outros piores, hahahahahahahahahaha!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

galactus

MSXManiac, rapaz, gostei do "testamento" !  Tenho certeza que se procurar um pouco mais acha um C.D.T.  aqui sim! Huahuahuahuahuha

Meu, o que você relata quanto ao -Os é bem o que li a respeito disso na documentação do Gentoo e do GCC. 

Esse -Os é um tiro no escuro!  Pode melhorar ou piorar a performance, não é tão bem testado como a -O2 ou a -O3! Diz que serve melhor para máquinas com pouca memória e processadores com pouco cache!   Daí não usei no meu i7!  Será que não é o seu caso também?

Ainda dei uma lida nas funções que ele ativa ou desativa, e na maior parte dos casos ele implementa ou retira funções que vão se repetindo ao longo da compilação!  Diz também que você deve usar apenas um dos 3 ( -Os ou -O2 ou -O3) e nunca dois deles, se isso ocorrer ele vai usar a última a ser especificada! Mas especificada onde? Portanto, se você não achou todos os -O2, pode ter misturado as coisas! 

Eu tirei foi todos os mtune!   O march=native é bem melhor para a minha configuração! Só o native ativa todas as instruções do meu i7!

Meu, 10000 ou 3000 é insanidade!  Huahuahuahuaha

Com 1000 o meu i7 em Over já fica lá em cima, é como tu disse, o seu Core 2 ia decolar ou fritar! Huahuahuahuah



BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

4d4c47

#3262
fiz uns testes aqui com o kernel puro 2.6.36.3, acrescentei a cflag -march=native -ffast-math, o bicho ficou até um poquim mais esperto, mas queria mais

testei no zen2 essa cflag, mas o resultado aqui não achei muita coisa não, parece até que ficou um pouco mais lento

aqui vai alguma informação do -ffast-math :

manual do gcc 4.4.5:

Citar
-ffast-math

Sets '-fno-math-errno', '-funsafe-math-optimizations', '-ffinite-math-only',
'-fno-rounding-math', '-fno-signaling-nans' and '-fcx-limited-range'.
This option causes the preprocessor macro __FAST_MATH__ to be defined.
This option is not turned on by any '-O' option since it can result in incorrect
output for programs which depend on an exact implementation of IEEE or ISO
rules/specifications for math functions. It may, however, yield faster code for
programs that do not require the guarantees of these specifications.


--------------------------------------------------------------------------------------------


Citar-ffast-math

Habilita varias opcoes do GCC para auxiliar em processamentos matematicos. Pode acarretar problemas com programas que dependem de precisoes exatas. O Help do GCC nao explica direito os tipos de problemas, mas deve ser algo parecido com a gambiarra que a nVidia e ATI fazem com os drivers para eles terem resultados bom nos 3DMark da vida.

http://www.forumpcs.com.br/comunidade/viewtopic.php?f=6&t=93160


ou seja, faz o processador trabalhar no modo burro, arredondando os calculos matematicos, fazendo-os mais rápido.

testem aé e postem aqui o resultado.


MSXManiac

Citação de: galactus online 18 de Janeiro de 2011, 17:14
MSXManiac, rapaz, gostei do "testamento" !  Tenho certeza que se procurar um pouco mais acha um C.D.T.  aqui sim! Huahuahuahuahuha

Meu, o que você relata quanto ao -Os é bem o que li a respeito disso na documentação do Gentoo e do GCC. 

Esse -Os é um tiro no escuro!  Pode melhorar ou piorar a performance, não é tão bem testado como a -O2 ou a -O3! Diz que serve melhor para máquinas com pouca memória e processadores com pouco cache!   Daí não usei no meu i7!  Será que não é o seu caso também?

Ainda dei uma lida nas funções que ele ativa ou desativa, e na maior parte dos casos ele implementa ou retira funções que vão se repetindo ao longo da compilação!  Diz também que você deve usar apenas um dos 3 ( -Os ou -O2 ou -O3) e nunca dois deles, se isso ocorrer ele vai usar a última a ser especificada! Mas especificada onde? Portanto, se você não achou todos os -O2, pode ter misturado as coisas! 

Eu tirei foi todos os mtune!   O march=native é bem melhor para a minha configuração! Só o native ativa todas as instruções do meu i7!

Meu, 10000 ou 3000 é insanidade!  Huahuahuahuaha

Com 1000 o meu i7 em Over já fica lá em cima, é como tu disse, o seu Core 2 ia decolar ou fritar! Huahuahuahuah


Próximo teste é trocar todos os -mcpu e -mtune por -march!
Tenho certeza que troquei todos os -O2 por -Os pq conferi um por um as strings encontradas! Inclusive no Makefile do raiz do kernel source tem uma infraestrutura tipo if then else onde ou -O2 ou -Os e no caso ficou -Os nas duas opções haushaushaush!
Mas derrepente boto tudo de volta para -O2!
Vou dar mais umas lidas e derrepente posto algo! Mas com 3.000 tá bombando bem pra um desktop! Só não faço isso num note!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

MSXManiac

#3264
Citar
Tipo o que me resta agora é usar um tux commander ou um total commander (windows) rastrear todos os arquivos atrás das expressões -mtune= e -mcpu= e trocar por -march= pq todas já estão em native
E posso mandar trocar todas as expressões -Os para -O2 sem remorso!
Aí com a cópia do config junto, basta ...
nada
o config já tá pronto! só se eu quiser mudar de 3.000 prá outro vou precisar do xconfig!
Voilá!

Pois é! E eu fiz! E se não bastasse, ainda botei o tal patch do repo ppa que um amigo aí postou um pouco atrás, aquele para melhorar a performance nos intel!
passei tudo para -march e o -Os para -O2
também baixei para 1000 para ficar como o da maioria por aí!
A compilação demorou um pouco menos!
Demorou um poquito menos para bootar e para logar!
Tá fluindo bem!
Vou deixar assim por uns dias!
Se não me bater nehuma loucura antes, rsrsrsrsrsrsrs!
Mas nada assim que se diga oooooooooooooooooooooooooooooooooooh!
Talvez só comece a fazer grandes diferenças num iX da vida!
Talvez eu tente com o icc quem sabe!
Se bem que ainda não instalei o openbox!
Vou fazer agora!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

4d4c47

#3265
aqui vai uns testes de cflags de quando eu brincava com isso no passado, ainda usava o debian 4.0, usei um programa chamado ubench, que está totalmente desatualizado e não funciona mais nesses kernels mais novos, mas vale a pena ver uma comparação entre o gcc e o icc, é bem interessante

a coluna AVG é o que importa aqui, é uma especie de media aritimetica entre os valores da cpu e a memoria:


http://uploaddearquivos.com.br/download/grafico_gcc_x_icc.ods



reparem no icc, isso na época já era uma máquina, e hoje então, o codigo-fonte compilado é do proprio ubench mesmo


Andreson Goveia

minha compilação, deu problema, fica travando com videos flashs, minha placa grafica está se tornando um "pequeno problema",
Muitos que usam KDE reclamam dela.
Pelo menos com o kernel padrão está normal.
Vou tentar outra compilação depois e vê no que vai dar.
Gunss, você disse a auguns postes atrás que usa 300 hz, pois achou que fica melhor do que com 1000, seu processador é um
Core2  E7500 né???(o meu também é esse).

Pelo que você comentou também em outro post, aqui também não notei nenhum ganho perceptível e aqui uso 64 bis (4 gigas de memória)


Gunss

Citação de: 4d4c47 online 18 de Janeiro de 2011, 17:33
fiz uns testes aqui com o kernel puro 2.6.36.3, acrescentei a cflag -march=native -ffast-math, o bicho ficou até um poquim mais esperto, mas queria mais

testei no zen2 essa cflag, mas o resultado aqui não achei muita coisa não, parece até que ficou um pouco mais lento

aqui vai alguma informação do -ffast-math :

manual do gcc 4.4.5:

Citar
-ffast-math

Sets '-fno-math-errno', '-funsafe-math-optimizations', '-ffinite-math-only',
'-fno-rounding-math', '-fno-signaling-nans' and '-fcx-limited-range'.
This option causes the preprocessor macro __FAST_MATH__ to be defined.
This option is not turned on by any '-O' option since it can result in incorrect
output for programs which depend on an exact implementation of IEEE or ISO
rules/specifications for math functions. It may, however, yield faster code for
programs that do not require the guarantees of these specifications.


--------------------------------------------------------------------------------------------


Citar-ffast-math

Habilita varias opcoes do GCC para auxiliar em processamentos matematicos. Pode acarretar problemas com programas que dependem de precisoes exatas. O Help do GCC nao explica direito os tipos de problemas, mas deve ser algo parecido com a gambiarra que a nVidia e ATI fazem com os drivers para eles terem resultados bom nos 3DMark da vida.

http://www.forumpcs.com.br/comunidade/viewtopic.php?f=6&t=93160


ou seja, faz o processador trabalhar no modo burro, arredondando os calculos matematicos, fazendo-os mais rápido.

testem aé e postem aqui o resultado.



você conseguiu fazer a compilação no 2.6.36.3????
Aqui NUNCA da certo com esse kernel. Na compilação sempre aparece "-march=native" depois "-march=core2" depois "-march=i686"??

4d4c47

Citação de: Gunss online 18 de Janeiro de 2011, 23:51
Citação de: 4d4c47 online 18 de Janeiro de 2011, 17:33
fiz uns testes aqui com o kernel puro 2.6.36.3, acrescentei a cflag -march=native -ffast-math, o bicho ficou até um poquim mais esperto, mas queria mais

testei no zen2 essa cflag, mas o resultado aqui não achei muita coisa não, parece até que ficou um pouco mais lento

aqui vai alguma informação do -ffast-math :

manual do gcc 4.4.5:

Citar
-ffast-math

Sets '-fno-math-errno', '-funsafe-math-optimizations', '-ffinite-math-only',
'-fno-rounding-math', '-fno-signaling-nans' and '-fcx-limited-range'.
This option causes the preprocessor macro __FAST_MATH__ to be defined.
This option is not turned on by any '-O' option since it can result in incorrect
output for programs which depend on an exact implementation of IEEE or ISO
rules/specifications for math functions. It may, however, yield faster code for
programs that do not require the guarantees of these specifications.


--------------------------------------------------------------------------------------------


Citar-ffast-math

Habilita varias opcoes do GCC para auxiliar em processamentos matematicos. Pode acarretar problemas com programas que dependem de precisoes exatas. O Help do GCC nao explica direito os tipos de problemas, mas deve ser algo parecido com a gambiarra que a nVidia e ATI fazem com os drivers para eles terem resultados bom nos 3DMark da vida.

http://www.forumpcs.com.br/comunidade/viewtopic.php?f=6&t=93160


ou seja, faz o processador trabalhar no modo burro, arredondando os calculos matematicos, fazendo-os mais rápido.

testem aé e postem aqui o resultado.



você conseguiu fazer a compilação no 2.6.36.3????
Aqui NUNCA da certo com esse kernel. Na compilação sempre aparece "-march=native" depois "-march=core2" depois "-march=i686"??

a compilação aqui ficou beleza, a única cflag diferente que me aparece é só -mtune=amdfam10, fora isso o resto ( cerca de 90 % ) é tudo -march=native


Gunss

@4d4c47 aqui na compilação não importa de qual kernel for aparece

"-march=native -march=core2 -march=i686" em seguida umas 3 vezes. Qual deles o compilador está usando, native, core2 ou i686??? Ai é que eu estou encucado entende?