Autor Tópico: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!  (Lida 2365510 vezes)

Offline MSXManiac

  • Usuário Ubuntu
  • *
  • Mensagens: 126
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3225 Online: 16 de Janeiro de 2011, 22:33 »
The manual (info gcc) is your friend:

-mtune : Tune to CPU-TYPE everything applicable about the generated code, except for the ABI and the set of available instructions.

-march: Generate instructions for the machine type CPU-TYPE. Specifying -march=CPU-TYPE implies -mtune=CPU-TYPE.

-mcpu: A deprecated synonym for -mtune.

Em sendo assim, se eu trocar todos os -march por native, posso manter  -mtune e -mcpu e alterá-los para native, já que de acordo com o manual, a tendência é o -mtune e o -mcpu se setados em native, acompanharem o valor de -march!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

4d4c47

  • Visitante
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3226 Online: 16 de Janeiro de 2011, 22:53 »
The manual (info gcc) is your friend:

-mtune : Tune to CPU-TYPE everything applicable about the generated code, except for the ABI and the set of available instructions.

-march: Generate instructions for the machine type CPU-TYPE. Specifying -march=CPU-TYPE implies -mtune=CPU-TYPE.

-mcpu: A deprecated synonym for -mtune.

Em sendo assim, se eu trocar todos os -march por native, posso manter  -mtune e -mcpu e alterá-los para native, já que de acordo com o manual, a tendência é o -mtune e o -mcpu se setados em native, acompanharem o valor de -march!

aqui vai uma comparação do  -march=native com o -mtune=native

gcc -O2 -march=native -fverbose-asm -S teste.c -o march_native.s

cat march_native.s :

Código: [Selecionar]
.file "teste.c"
# GNU C (Ubuntu 4.4.3-4ubuntu5) version 4.4.3 (x86_64-linux-gnu)
# compiled by GNU C version 4.4.3, GMP version 4.3.2, MPFR version 2.4.2-p1.
# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed:  teste.c -D_FORTIFY_SOURCE=2 -march=amdfam10 -mcx16
# -msahf -mpopcnt --param l1-cache-size=64 --param l1-cache-line-size=64
# --param l2-cache-size=512 -mtune=amdfam10 -auxbase-strip march_native.s
# -O2 -fverbose-asm -fstack-protector
# options enabled:  -falign-loops -fargument-alias
# -fasynchronous-unwind-tables -fauto-inc-dec -fbranch-count-reg
# -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
# -fcse-follow-jumps -fdefer-pop -fdelete-null-pointer-checks
# -fdwarf2-cfi-asm -fearly-inlining -feliminate-unused-debug-types
# -fexpensive-optimizations -fforward-propagate -ffunction-cse -fgcse
# -fgcse-lm -fguess-branch-probability -fident -fif-conversion
# -fif-conversion2 -findirect-inlining -finline
# -finline-functions-called-once -finline-small-functions -fipa-cp
# -fipa-pure-const -fipa-reference -fira-share-save-slots
# -fira-share-spill-slots -fivopts -fkeep-static-consts
# -fleading-underscore -fmath-errno -fmerge-constants -fmerge-debug-strings
# -fmove-loop-invariants -fomit-frame-pointer -foptimize-register-move
# -foptimize-sibling-calls -fpeephole -fpeephole2 -freg-struct-return
# -fregmove -freorder-blocks -freorder-functions -frerun-cse-after-loop
# -fsched-interblock -fsched-spec -fsched-stalled-insns-dep
# -fschedule-insns2 -fsigned-zeros -fsplit-ivs-in-unroller
# -fsplit-wide-types -fstack-protector -fstrict-aliasing -fstrict-overflow
# -fthread-jumps -ftoplevel-reorder -ftrapping-math -ftree-builtin-call-dce
# -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-cselim
# -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
# -ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
# -ftree-pre -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-sra
# -ftree-switch-conversion -ftree-ter -ftree-vect-loop-version -ftree-vrp
# -funit-at-a-time -funwind-tables -fvect-cost-model -fverbose-asm
# -fzero-initialized-in-bss -m128bit-long-double -m3dnow -m64 -m80387 -mabm
# -maccumulate-outgoing-args -malign-stringops -mcx16 -mfancy-math-387
# -mfp-ret-in-387 -mfused-madd -mglibc -mieee-fp -mmmx -mno-sse4 -mpopcnt
# -mpush-args -mred-zone -msahf -msse -msse2 -msse3 -msse4a
# -mtls-direct-seg-refs

# Compiler executable checksum: 2129e1a56226bd6e8f7af5e0a3ff467d

.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string "Hello world\n"
.text
.p2align 5,,31
.globl main
.type main, @function
main:
.LFB22:
.cfi_startproc
subq $8, %rsp #,
.cfi_def_cfa_offset 16
movl $.LC0, %esi #,
movl $1, %edi #,
xorl %eax, %eax #
call __printf_chk #
xorl %eax, %eax #
addq $8, %rsp #,
ret
.cfi_endproc
.LFE22:
.size main, .-main
.ident "GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3"
.section .note.GNU-stack,"",@progbits


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

gcc -O2 -mtune=native -fverbose-asm -S teste.c -o mtune_native.s

cat mtune_native.s :

Código: [Selecionar]
.file "teste.c"
# GNU C (Ubuntu 4.4.3-4ubuntu5) version 4.4.3 (x86_64-linux-gnu)
# compiled by GNU C version 4.4.3, GMP version 4.3.2, MPFR version 2.4.2-p1.
# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed:  teste.c -D_FORTIFY_SOURCE=2 --param l1-cache-size=64
# --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=amdfam10
# -auxbase-strip mtune_native.s -O2 -fverbose-asm -fstack-protector
# options enabled:  -falign-loops -fargument-alias
# -fasynchronous-unwind-tables -fauto-inc-dec -fbranch-count-reg
# -fcaller-saves -fcommon -fcprop-registers -fcrossjumping
# -fcse-follow-jumps -fdefer-pop -fdelete-null-pointer-checks
# -fdwarf2-cfi-asm -fearly-inlining -feliminate-unused-debug-types
# -fexpensive-optimizations -fforward-propagate -ffunction-cse -fgcse
# -fgcse-lm -fguess-branch-probability -fident -fif-conversion
# -fif-conversion2 -findirect-inlining -finline
# -finline-functions-called-once -finline-small-functions -fipa-cp
# -fipa-pure-const -fipa-reference -fira-share-save-slots
# -fira-share-spill-slots -fivopts -fkeep-static-consts
# -fleading-underscore -fmath-errno -fmerge-constants -fmerge-debug-strings
# -fmove-loop-invariants -fomit-frame-pointer -foptimize-register-move
# -foptimize-sibling-calls -fpeephole -fpeephole2 -freg-struct-return
# -fregmove -freorder-blocks -freorder-functions -frerun-cse-after-loop
# -fsched-interblock -fsched-spec -fsched-stalled-insns-dep
# -fschedule-insns2 -fsigned-zeros -fsplit-ivs-in-unroller
# -fsplit-wide-types -fstack-protector -fstrict-aliasing -fstrict-overflow
# -fthread-jumps -ftoplevel-reorder -ftrapping-math -ftree-builtin-call-dce
# -ftree-ccp -ftree-ch -ftree-copy-prop -ftree-copyrename -ftree-cselim
# -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
# -ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
# -ftree-pre -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-sra
# -ftree-switch-conversion -ftree-ter -ftree-vect-loop-version -ftree-vrp
# -funit-at-a-time -funwind-tables -fvect-cost-model -fverbose-asm
# -fzero-initialized-in-bss -m128bit-long-double -m64 -m80387
# -maccumulate-outgoing-args -malign-stringops -mfancy-math-387
# -mfp-ret-in-387 -mfused-madd -mglibc -mieee-fp -mmmx -mno-sse4
# -mpush-args -mred-zone -msse -msse2 -mtls-direct-seg-refs

# Compiler executable checksum: 2129e1a56226bd6e8f7af5e0a3ff467d

.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string "Hello world\n"
.text
.p2align 5,,31
.globl main
.type main, @function
main:
.LFB22:
.cfi_startproc
subq $8, %rsp #,
.cfi_def_cfa_offset 16
movl $.LC0, %esi #,
movl $1, %edi #,
xorl %eax, %eax #
call __printf_chk #
xorl %eax, %eax #
addq $8, %rsp #,
ret
.cfi_endproc
.LFE22:
.size main, .-main
.ident "GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3"
.section .note.GNU-stack,"",@progbits


vendo isso, acredito que o -march=native é bem mais completo.

« Última modificação: 16 de Janeiro de 2011, 22:55 por 4d4c47 »

Offline Gunss

  • Usuário Ubuntu
  • *
  • Mensagens: 618
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3227 Online: 16 de Janeiro de 2011, 22:57 »
Aqui eu não paro de receber erros na compilação. É sempre esse erro.


  LD      arch/x86/built-in.o
make[1]: Saindo do diretório `/usr/src/linux-2.6.36'
make: ** [debian/stamp/build/kernel] Erro 2


Conferi os arquivos do galactus e do 4d4c47 e continuo recebendo esses erros.

Estou usando o kernel 2.6.36.3

ps: algumas das linhas que o 4d4c47 não existem. É melhor resolver isso, pois com certeza outras pessoas vão ter esse erro.

Offline Andreson Goveia

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 1.985
  • Kubuntu 14.10
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3228 Online: 16 de Janeiro de 2011, 23:07 »
Aqui eu não paro de receber erros na compilação. É sempre esse erro.


  LD      arch/x86/built-in.o
make[1]: Saindo do diretório `/usr/src/linux-2.6.36'
make: ** [debian/stamp/build/kernel] Erro 2


Conferi os arquivos do galactus e do 4d4c47 e continuo recebendo esses erros.

Estou usando o kernel 2.6.36.3

ps: algumas das linhas que o 4d4c47 não existem. É melhor resolver isso, pois com certeza outras pessoas vão ter esse erro.
Gunss você está aplicando algum patch??
Aquele ureadahead

Quando estava compilando este kernel (2.6.36.X) sempre que eu aplicava este patch dava erro.

4d4c47

  • Visitante
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3229 Online: 16 de Janeiro de 2011, 23:11 »
...

ps: algumas das linhas que o 4d4c47 não existem. É melhor resolver isso, pois com certeza outras pessoas vão ter esse erro.

olhei linha por linha novamente e não achei nenhum erro,

esse tutorial é especifico para o kernel 2.6.36, talvez haja alguma diferença nas outras versões, se tiver tempo, procure os erros e poste aqui pra gente, assim fica mais rápido a correção. valeu.


Offline Gunss

  • Usuário Ubuntu
  • *
  • Mensagens: 618
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3230 Online: 16 de Janeiro de 2011, 23:35 »
...

ps: algumas das linhas que o 4d4c47 não existem. É melhor resolver isso, pois com certeza outras pessoas vão ter esse erro.

olhei linha por linha novamente e não achei nenhum erro,

esse tutorial é especifico para o kernel 2.6.36, talvez haja alguma diferença nas outras versões, se tiver tempo, procure os erros e poste aqui pra gente, assim fica mais rápido a correção. valeu.



opa, o erro que dá na compilação é exatamente aquele. As linhas que não existem são:

Arquivo arch/x86/Kconfig.cpu na linha 300 tem select GENERIC_FIND_NEXT_BIT o único march que tem é na linha 405. Não tem mtune nem mcpu

Arquivo /arch/x86/Makefile_32.cpu só vai até a linha 59. Na linha 47 tem esse texto cflags-$(CONFIG_X86_GENERIC)    += $(call tune,generic,$(call tune,i686))





Offline Gunss

  • Usuário Ubuntu
  • *
  • Mensagens: 618
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3231 Online: 16 de Janeiro de 2011, 23:36 »
Aqui eu não paro de receber erros na compilação. É sempre esse erro.


  LD      arch/x86/built-in.o
make[1]: Saindo do diretório `/usr/src/linux-2.6.36'
make: ** [debian/stamp/build/kernel] Erro 2


Conferi os arquivos do galactus e do 4d4c47 e continuo recebendo esses erros.

Estou usando o kernel 2.6.36.3

ps: algumas das linhas que o 4d4c47 não existem. É melhor resolver isso, pois com certeza outras pessoas vão ter esse erro.
Gunss você está aplicando algum patch??
Aquele ureadahead

Quando estava compilando este kernel (2.6.36.X) sempre que eu aplicava este patch dava erro.

Sim estou aplicando o ureadahead, será que o problema é com ele. Vou tentar sem ele.



edit: o engraçado que ao dar o comando  ps ax | grep gcc | grep march sempre aparece

"-march=native -march=core2 -march=i686". Se não nessa ordem aparece assim "-march=core2 -march=i686"

Vou tentar aplicar ao 2.6.36 puro.
« Última modificação: 16 de Janeiro de 2011, 23:41 por Gunss »

Offline vampire_thunder

  • Usuário Ubuntu
  • *
  • Mensagens: 735
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3232 Online: 17 de Janeiro de 2011, 07:31 »
vampire_thunder, o Native vai dentro do MakeFile do Kernel!

Descompacta o source do kernel vanilla que você usa, abre o Makefile que está lá dentro, mais ou menos na página 4 tem isso aqui:

# SHELL used by kbuild
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
     else if [ -x /bin/bash ]; then echo /bin/bash; \
     else echo sh; fi ; fi)

HOSTCC       = gcc
HOSTCXX      = g++
HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -march=native -fomit-frame-pointer
HOSTCXXFLAGS = "${CFLAGS}"


Ali na linha do HOSTCFLAGS você coloca o -march=native!

Infelizmente não é só aí que tem que mudar, mas já muda alguma coisa!

como diria o grande @galactus:

Senhoras e Senhores,

CONSEGUIR compilar o kernel todo com a cflag -march=native

aí vai um simples tutorial:

1 - baixa o kernel linux-2.6.36.tar.bz2

2 - descompacta em /usr/src

3 - baixa o patch do kernel zen, exatamente este http://downloads.zen-kernel.org/2.6.36/2.6.36-zen1.patch.lzma

4 - descompacta o patch zen na pasta /usr/src, depois aplique o patch zen no kernel linux-2.6.36

5 - pegue o .config do omnislash e copie para /usr/src/linux-2.6.36

6 - executa um make menuconfig e marque o seu processador exato ( não pentium4 ou outra coisa, marque a sua arquitetura exata)

7 - abaixo da escolha do processador, tem uma opção de -march=native ( isso é só de enfeite, não serve pra nada, mas marque ela mesmo assim)

8 - salve tudo e feche o menuconfig, agora vamos pra parte que interessa...

9 - edit o arquivo Makefile:

... mais ou menos na página 4 tem isso aqui:

# SHELL used by kbuild
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
     else if [ -x /bin/bash ]; then echo /bin/bash; \
     else echo sh; fi ; fi)

HOSTCC       = gcc
HOSTCXX      = g++
HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -march=native -fomit-frame-pointer
HOSTCXXFLAGS = "${CFLAGS}"

Ali na linha do HOSTCFLAGS você coloca o -march=native!

10 - agora começa a ***** toda, execute: cd /usr/src/linux-2.6.36/arch/x86/

11 - dentro dessa pasta tem todos os codigo-fonte da parte principal do kernel, dentro dessa pasta existe varias outras pastas (e varias outras dentro delas), e o que voce vai fazer é adentrar uma por uma e procurar o arquivo Makefile dentro delas, e edita-lo: onde tiver -march=XXXX ou -mtune=XXXX ou -mcpu=XXXX, vc vai substituir por -march=native (obs: alguns Makefile não tem cflag nenhuma, então não mexa neles, só modifique os que tem -march=XXXX ou -mtune=XXXX ou -mcpu=XXXX), modifique tambem os arquivos: Kbuild, Kconfig, Kconfig.cpu, Kconfig.debug, Makefile_32.cpu( esse por exemplo está lotado de -march=XXXX e -mtune=XXXX, subistitua tudo sem medo de ser feliz)

12 - depois de tudo isso, comesse a compilação ( pra ver se tá compilando com march=native mesmo, abra um outro terminal e execute após 2 minutos de compilação: ps ax | grep gcc | grep march )


13 - pronto, taí o kernel exato pro seu processador

rapaz, o troço ficou bem mais rápido mesmo (nossa senhora, não sei se é só impressão minha só sei que a diferença é grande, :O   )

espero ter ajudado, agradeço ao grande galactus pela ideia, fico na espera do novo omnislash, valeu a todos.





Fiz os procedimentos aqui com o kernel do Natty, 2.6.37. Não deu erro nenhum de compilação. Ao contrário, esse kernel sempre dá um erro no meio da compilação e dessa vez isso nem aconteceu. No entanto:
1- O Plymouth demorou mais para aparecer;
2- A inicialização ficou mais lenta;
3- Tudo isso porque deu erro no driver do Virtualbox, o que no final das contas também levou a uma tela preta ao invés do GDM. Tive de apertar ctrl+alt+f7 para ir para o GDM.

Quanto o sistema em si ainda não testei o suficiente.

Na compilação só apareceram duas entradas com -march=amd10. As outras todas apareceram march=native.


 

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.683
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3233 Online: 17 de Janeiro de 2011, 08:27 »
Fiz mudanças em mais dois arquivos que não tinha visto que possuem  march! Existe arquivo que o  4d4c47 lista no kernel 2.6.36 que não tem no 2.6.34!  Mesmo com essas alterações ainda aparece o Core2 na listagem!

Não dá nenhum erro na compilação aqui! O boot, mesmo com o patch do urehearead do Gentoo é mais lento!  Eu sempre perco o Plymouth quando uso o kernel do HQx, o que descobri é que colocando o driver  vesa de  dentro do kernel faz uma gambiarra para ele aparecer de novo com resolução bem feia!

No mais o sistema ficou muito mais esperto e mais rápido!  O virtualbox 4 é que teve maior impacto! Incrível!  Notem que o i7 tem as instruções de virtualização via hardware dentro do processador! Então eu sempre marquei isso dentro do kernel, mas como usava o P4 na compilação ou fazia uma compilação genérica, acho que não ativava isso direito! Agora não!  Ele voa!
Toda a parte de multimídia melhorou!  O VLC, mesmo sem compilação do apt-build, não tem aquele delay na hora de começar a exibir o vídeo! A navegação da internet melhorou, está mais fluida, a animações da web melhoraram sua exibição e o processador consome muito menos!  Agora ele desliga núcleos quando ocioso!

Enfim, aqui só melhorou, e muito!  

MSXManiac,obrigado pelas explicações!

Ao longo do dia vou tentar testar no Atom do trabalho (o bublebee)!  Eu disse vou tentar pois são duas horas e meia a 3 horas de compilação no Bublebee!
« Última modificação: 17 de Janeiro de 2011, 08:40 por galactus »
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Offline Gunss

  • Usuário Ubuntu
  • *
  • Mensagens: 618
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3234 Online: 17 de Janeiro de 2011, 10:19 »
@galactus, essa parte de desligar núcleos inativos é MUITO boa. Uma dúvida, se você escolher "ondemand" na compilação e instalar os drivers que ajudam no consumo isso acontece?


edit: Consegui compilar o kernel, porém sem o patch do 2.6.36.3, mas com ureadahead e todos os outros. Durante a compilação apareceu várias vezes

-march=native -march=core2 -march=i686. Chequei cuidadosamente os arquivos especificados pelo 4d4c47, porém ainda continuam aparecendo.

Estou usando o kernel agora, vou testar agora.

Ah, no arquivo Makefile na pasta /linux (pasta simbólica) existe essa linha º 233 que contem:
HOSTCXXFLAGS = -O2

não seria ideal adicionarmos um -march=native nessa linha? Já que essa linha vai para os códigos em C++?


Tá difícil pegar aqui hein.
« Última modificação: 17 de Janeiro de 2011, 10:55 por Gunss »

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.683
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3235 Online: 17 de Janeiro de 2011, 11:04 »
@galactus, essa parte de desligar núcleos inativos é MUITO boa. Uma dúvida, se você escolher "ondemand" na compilação e instalar os drivers que ajudam no consumo isso acontece?


edit: Consegui compilar o kernel, porém sem o patch do 2.6.36.3, mas com ureadahead e todos os outros. Durante a compilação apareceu várias vezes

-march=native -march=core2 -march=i686. Chequei cuidadosamente os arquivos especificados pelo 4d4c47, porém ainda continuam aparecendo.

Estou usando o kernel agora, vou testar agora.

Ah, no arquivo Makefile na pasta /linux (pasta simbólica) existe essa linha º 233 que contem:
HOSTCXXFLAGS = -O2

não seria ideal adicionarmos um -march=native nessa linha? Já que essa linha vai para os códigos em C++?


Tá difícil pegar aqui hein.

Gunss eu só uso Performance no PC de casa!  Só quando uso Notebook que tiro o Performance!  Mas mesmo com o Performance, agora que tá usando Native em um monte de arquivos, ele diminui a velocidade dos núcleos em mais da metade e chega a desligar quando ocioso!  Isso comparado sempre com o P4!  Com o kernel padrão do Ubuntu ele já fazia isso!  Quando usava P4 ele ficava a 100% o tempo todo!

Esse Makefile da pasta /linux simbólica é o primeiro que eu mudo Gunss! Foi o primeiro arquivo que a gente descobriu que tinha que alterar! Altera esse aí pra ontem!

Pode acrescentar -march=native nessa linha sem medo!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Offline Gunss

  • Usuário Ubuntu
  • *
  • Mensagens: 618
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3236 Online: 17 de Janeiro de 2011, 11:12 »
@galactus, essa parte de desligar núcleos inativos é MUITO boa. Uma dúvida, se você escolher "ondemand" na compilação e instalar os drivers que ajudam no consumo isso acontece?


edit: Consegui compilar o kernel, porém sem o patch do 2.6.36.3, mas com ureadahead e todos os outros. Durante a compilação apareceu várias vezes

-march=native -march=core2 -march=i686. Chequei cuidadosamente os arquivos especificados pelo 4d4c47, porém ainda continuam aparecendo.

Estou usando o kernel agora, vou testar agora.

Ah, no arquivo Makefile na pasta /linux (pasta simbólica) existe essa linha º 233 que contem:
HOSTCXXFLAGS = -O2

não seria ideal adicionarmos um -march=native nessa linha? Já que essa linha vai para os códigos em C++?


Tá difícil pegar aqui hein.

Gunss eu só uso Performance no PC de casa!  Só quando uso Notebook que tiro o Performance!  Mas mesmo com o Performance, agora que tá usando Native em um monte de arquivos, ele diminui a velocidade dos núcleos em mais da metade e chega a desligar quando ocioso!  Isso comparado sempre com o P4!  Com o kernel padrão do Ubuntu ele já fazia isso!  Quando usava P4 ele ficava a 100% o tempo todo!

Esse Makefile da pasta /linux simbólica é o primeiro que eu mudo Gunss! Foi o primeiro arquivo que a gente descobriu que tinha que alterar! Altera esse aí pra ontem!

Pode acrescentar -march=native nessa linha sem medo!

Ah, então com o kernel padrão ele também desativa! Legal.

Eu sei galactus, porém minha pergunta é sobre a linha 233 que contem as flags que serão passadas para o G++ (ou C++). Vi que você não acrescentou o -march=native nela e nem o 4d4c47 adicionou essa linha às que devem ser mudadas.

abraço


edit: pode ser que o patch do zen ajude mesmo. Apesar de não ter gostado do desempenho da máquina com ele vou tentar.
« Última modificação: 17 de Janeiro de 2011, 11:28 por Gunss »

Offline galactus

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.683
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3237 Online: 17 de Janeiro de 2011, 11:32 »
Olha só como é bom ter mais de uma máquina para testar essas coisas!

Eu fiz uma cópia da pasta inteira descompactada do 2.6.34 com todos os arquivos alterados com march=native do PC de casa e colei aqui no BubleBee. Tudo o que tinha de march para alterar independente de processador eu mudei! Alterei o menuconfig na parte do processador para Atom.  Quando eu mandei compilar usei o comando para checar os march!

Aqui no Atom só aparece um Core2!!!!  Inclusive a linha que havia comentado anteriormente sobre o tal tune Core2  que o MSXManiac explicou, parece que faz diferença mesmo!

Na linha do Atom que vem logo abaixo, não tem Tune Core2!  Só tem o march=native!

As instruções que ele usa para compilar são outras bem diferentes!  Deve ter relação com o Processador e o GCC, claro! E agora eu vi que ele usa o 3DNow para compilar esse kernel!  Acho que ele só vai terminar depois do almoço!  Assim que ficar pronto eu passo a tarde usando ele! Aí eu coloco as impressões!
Nas compilações anteriores usando Atom, ficava um lixo!   Estou no aguardo para ver o que vai mudar!   
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Offline Cybereu

  • Usuário Ubuntu
  • *
  • Mensagens: 39
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3238 Online: 17 de Janeiro de 2011, 12:51 »
Podia ter novo tutorial pra compilar o omnislash com todas essas novidades, sou leigo mas to sempre lendo o forum e já vi uma tonelada de coisa nova bem interessante, como o patch do ureadache do gentoo, ou mesmo como compilar usando essas opções pra arquiterura do processador, mas como sou leigo não consigo acompanhar vocês e colocar isso no meu kernel =/

Offline Gordin

  • Usuário Ubuntu
  • *
  • Mensagens: 37
    • Ver perfil
Re: Kernel Omnislash (Unofficial) - Aprendendo a voar sem segredos!!!
« Resposta #3239 Online: 17 de Janeiro de 2011, 13:33 »
Podia ter novo tutorial pra compilar o omnislash com todas essas novidades, sou leigo mas to sempre lendo o forum e já vi uma tonelada de coisa nova bem interessante, como o patch do ureadache do gentoo, ou mesmo como compilar usando essas opções pra arquiterura do processador, mas como sou leigo não consigo acompanhar vocês e colocar isso no meu kernel =/

Eu tava pensando em pedir o msm...
Acompanho há um bom tempo os posts, mas não tive muito sucesso em compilar o kernel com as descobertas daqui.