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

MSXManiac

Citação de: Cybereu 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 =/

Boa! Apoiado! Até eu estou perdido!
É tanto patch e informação nessas trocentas páginas que eu estou mais perdido que cego em tiroteio!
Vai precisar no mínimo ser a 4 mãos (a.k.a. HQX & Galactus), ou 6, 8 e por aí vai!
Aliás dava pra reativar o teu wordpress não é HQX? Aproveitava-se e podia-se colocar os tutos do Galactus sobre tunar o ext4 e o jfs!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

buli

Galera, fiz o seguinte teste.


cd /usr/src/linux
export KCFLAGS='-mtune=prescott -march=prescott'
make-kpkg --initrd --verbose linux_image >../make.log 2>&1


Explicação:

A segunda linha define a variável KCFLAGS com as otimizações que o usuário desejar.

Na terceira linha: --verbose é para visualizar na tela as mensagens do compilador. Nunca use --verbose para compilar o kernel "de verdade", pois é muito demorado. Use somente para testes.

O redirecionamento no final da terceira linha é opcional. Ele joga as mensagens do GCC num arquivo, para facilitar a leitura depois.

Fazendo isso, a compilação foi normal. De tanto em tanto o Make avisava o seguinte:


make[1]: Entering directory `/usr/src/linux-2.6.36'
Makefile:608: "WARNING: Appending $KCFLAGS (-mtune=prescott -march=prescott) from environment to kernel $CFLAGS"


E o GCC compilava desse jeito:


gcc -Wp,-MD,kernel/.sched.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.4.3/include -I/usr/src/linux-2.6.36/arch/x86/include -Iinclude  -include include/generated/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i586 -Wa,-mtune=generic32 -ffreestanding -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=1024 -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -mtune=prescott -march=prescott    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sched)"  -D"KBUILD_MODNAME=KBUILD_STR(sched)"  -c -o kernel/.tmp_sched.o kernel/sched.c


Se voce procurar, perto do final da linha acima tem as flags setadas -mtune=prescott -march=prescott .

Porém antes da ocorrência dessas flags tem outras. Por exemplo, mais ou menos perto do meio da linha tem as seguintes: -march=i586 -Wa,-mtune=generic32.

Eu já procurei na doc do GCC e não encontrei o que acontece quando tem flags repetidas, qual é a que vale. No caso das opções -O*, o manual do GCC diz que sempre vale a última, mas no caso de -m* como já disse não encontrei nenhuma indicação.

Se a dica acima funcionar, acho bacana, pois não é necessario editar o Makefile. Basta apena exportar a flags desejadas setando a variável KCFLAGS.


ursaosededesangue

Olá amigos!

Preciso que me respondam se o jfs já está dentro do omnislash, ou terei de patchear o kernel tambem? No 2.6.36, sei que terei, mas no omni não sei... Segue citação do configx86-64 do omni(a partir da linha 4290):

CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set


Pra mim, isso não quis dizer nada com coisa alguma, mas...

Isso faz parte das mudanças para fazer no notebook, mais outras opções que li aqui, e o mais importante, que vocês possam me recomendar...

Aguardo retorno da rapaziada para me ajudar a fritar meu note...
Abraços.
2011, o ano do Soberano. Uma paixão em preto, branco e vermelho.
Dim terim bebim...
6-3-3

havocz

Citação de: buli online 17 de Janeiro de 2011, 14:09
Galera, fiz o seguinte teste.


cd /usr/src/linux
export KCFLAGS='-mtune=prescott -march=prescott'
make-kpkg --initrd --verbose linux_image >../make.log 2>&1


Explicação:

A segunda linha define a variável KCFLAGS com as otimizações que o usuário desejar.

Na terceira linha: --verbose é para visualizar na tela as mensagens do compilador. Nunca use --verbose para compilar o kernel "de verdade", pois é muito demorado. Use somente para testes.

O redirecionamento no final da terceira linha é opcional. Ele joga as mensagens do GCC num arquivo, para facilitar a leitura depois.

Fazendo isso, a compilação foi normal. De tanto em tanto o Make avisava o seguinte:


make[1]: Entering directory `/usr/src/linux-2.6.36'
Makefile:608: "WARNING: Appending $KCFLAGS (-mtune=prescott -march=prescott) from environment to kernel $CFLAGS"


E o GCC compilava desse jeito:


gcc -Wp,-MD,kernel/.sched.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.4.3/include -I/usr/src/linux-2.6.36/arch/x86/include -Iinclude  -include include/generated/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i586 -Wa,-mtune=generic32 -ffreestanding -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=1024 -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -mtune=prescott -march=prescott    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sched)"  -D"KBUILD_MODNAME=KBUILD_STR(sched)"  -c -o kernel/.tmp_sched.o kernel/sched.c


Se voce procurar, perto do final da linha acima tem as flags setadas -mtune=prescott -march=prescott .

Porém antes da ocorrência dessas flags tem outras. Por exemplo, mais ou menos perto do meio da linha tem as seguintes: -march=i586 -Wa,-mtune=generic32.

Eu já procurei na doc do GCC e não encontrei o que acontece quando tem flags repetidas, qual é a que vale. No caso das opções -O*, o manual do GCC diz que sempre vale a última, mas no caso de -m* como já disse não encontrei nenhuma indicação.

Se a dica acima funcionar, acho bacana, pois não é necessario editar o Makefile. Basta apena exportar a flags desejadas setando a variável KCFLAGS.


Bacana heim ! Vou testar isso em casa ^_^
°v°
/( )\\ Linux User #433307
^ ^   Debian 7

galactus

Citação de: ursaosededesangue online 17 de Janeiro de 2011, 16:19
Olá amigos!

Preciso que me respondam se o jfs já está dentro do omnislash, ou terei de patchear o kernel tambem? No 2.6.36, sei que terei, mas no omni não sei... Segue citação do configx86-64 do omni(a partir da linha 4290):

CONFIG_JFS_FS=m
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set


Pra mim, isso não quis dizer nada com coisa alguma, mas...

Isso faz parte das mudanças para fazer no notebook, mais outras opções que li aqui, e o mais importante, que vocês possam me recomendar...

Aguardo retorno da rapaziada para me ajudar a fritar meu note...
Abraços.

Não precisa de nenhum patch para o JFS, já está dentro do Kernel. Só precisa ser marcado para compilar dentro dele e não como módulo! Senão seu sistema não vai nem dar o boot!

Para notebook tem que ter mais calma nas opções, senão você fica sem bateria logo! Mas você é quem sabe!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

ursaosededesangue

Oi galactus!

É naquelas né, há no meio dessas páginas dicas para colocar 300 / server / performance / bfs / cfq, há outra para colocar 300 / low-latency / on-demand, ou habilitar-desabilitar bfs / bfq...

Partindo do pressuposto que tenho um celeron m550 em mãos, e seu que é arquitetura nocona, 300 já é valor fixo, agora o resto... vou socar a porva, né? ;D  A vida é assim... ::)

Abraços!
2011, o ano do Soberano. Uma paixão em preto, branco e vermelho.
Dim terim bebim...
6-3-3

galactus

Quanto a uma atualização no Tutorial do Omnislash quem sabe é o HQxriven!

Eu mesmo acho que ele vai colocar coisa não testada para vocês!

Pra quem chegou agora e quer sentar na janelinha fica complicado mesmo!  ;D

Vou tentar resumir a ópera!

Desde que o HQx lançou a versão 1.4.4 com o kernel 2.6.34, muita coisa mudou, já estamos no kernel 2.6.37 e muitos dos patchs que ele colocou já mudaram de versão!  A questão é que muitos aqui pegaram essa "febre" de ter o kernel mais novo com tudo que for patch mais novo também! Eu mesmo não sei que é o mais doente daqui!  ;D

Aí entra o fato da gente ter aprendido coisas novas que ainda estamos testando que prometem aumentar ainda mais o desempenho!  O que faltava pra mim era ele ter definido o kernel do novo Omnislash!  Agora dá pra trabalhar no 2.6.37, que ao que parece vai ser esse!

Então se ele mudar o tuto, vai ser para mostrar como colocar patchs novos, sem testes e mudanças em arquivos importantes sem saber o que altera no desempenho final!  Então vai ficar por conta de vocês também resolverem os pepinos!  Porque daí ficar no pé do HQx pra resolver pau de patch não testado é soda!!!!



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

ursaosededesangue

#3247
 :o hehehe Calma lá, tô desde 2007 nessa estrada, desde o 2.6.não lembro...

E pior, nem ubuntu uso...  ;D

Novas enquanto baixo o DVD 64bit: sabem do kernel slh, do sidux (ops, aptosid), tô tentando abrir ele pra recompilar, já extraí o .config dele, vou tentar acertar o gcc e os march=native nele, pra esquentar um pouco...

Serei um bom menino, vamos lá...  ::) Faço até adaptações...

Abraços!

Edit: (19:51) Compilando, apareceu assim no frankie: ...-march=native -mtune=pentium4 -mtune=generic... e tambem ...-march=pentium4 -m32 -msoft-float -mregparm=3 -mpreferred-stack-boundary=2 -mtune=pentium4 -mtune=generic... Acho que vai, pois o frankie é pentium 4.
2011, o ano do Soberano. Uma paixão em preto, branco e vermelho.
Dim terim bebim...
6-3-3

Gunss

Citação de: buli online 17 de Janeiro de 2011, 14:09
Galera, fiz o seguinte teste.


cd /usr/src/linux
export KCFLAGS='-mtune=prescott -march=prescott'
make-kpkg --initrd --verbose linux_image >../make.log 2>&1


Explicação:

A segunda linha define a variável KCFLAGS com as otimizações que o usuário desejar.

Na terceira linha: --verbose é para visualizar na tela as mensagens do compilador. Nunca use --verbose para compilar o kernel "de verdade", pois é muito demorado. Use somente para testes.

O redirecionamento no final da terceira linha é opcional. Ele joga as mensagens do GCC num arquivo, para facilitar a leitura depois.

Fazendo isso, a compilação foi normal. De tanto em tanto o Make avisava o seguinte:


make[1]: Entering directory `/usr/src/linux-2.6.36'
Makefile:608: "WARNING: Appending $KCFLAGS (-mtune=prescott -march=prescott) from environment to kernel $CFLAGS"


E o GCC compilava desse jeito:


gcc -Wp,-MD,kernel/.sched.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.4.3/include -I/usr/src/linux-2.6.36/arch/x86/include -Iinclude  -include include/generated/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i586 -Wa,-mtune=generic32 -ffreestanding -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=1024 -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -mtune=prescott -march=prescott    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sched)"  -D"KBUILD_MODNAME=KBUILD_STR(sched)"  -c -o kernel/.tmp_sched.o kernel/sched.c


Se voce procurar, perto do final da linha acima tem as flags setadas -mtune=prescott -march=prescott .

Porém antes da ocorrência dessas flags tem outras. Por exemplo, mais ou menos perto do meio da linha tem as seguintes: -march=i586 -Wa,-mtune=generic32.

Eu já procurei na doc do GCC e não encontrei o que acontece quando tem flags repetidas, qual é a que vale. No caso das opções -O*, o manual do GCC diz que sempre vale a última, mas no caso de -m* como já disse não encontrei nenhuma indicação.

Se a dica acima funcionar, acho bacana, pois não é necessario editar o Makefile. Basta apena exportar a flags desejadas setando a variável KCFLAGS.



fiz algo parecido um dia desses.

export KCFLAGS="-march=native mtune=native"
export KPPCFLAGS="-march=native mtune=native"


No caso, flags para C e C++, porém aqui deu erro. Porém no site que vi a dica o cara não explicava assim como você. Vou testar novamente.

Queria um Six-core agora para a compilação ser mais rápida hehe. Usando essas flags a compilação demora mais ou é impressão?

Metalbobolic

Eu tava acompanhando o topico, estava até, ligeiramente entendendo..

Agora pra mim virou grego!!!  ;D

Andreson Goveia

Compilei aqui, fiz as alterações nos aquivos, e deu tudo certo

compilei o Kernel 2.6.37 com tudo em -march=native, e com bfs e bfq, no gcc 4.5, mas tive que sair e agora estou no trabalho, não deu para testar muito, mas está tudo funcionando normalmente, falta ver agora o quanto melhorou.

Realmente isso tudo ta virando uma verdadeira aula,
(amo muito tudo isso, kkkkkkkkkkkkkkkkk).

MSXManiac

Só para dar um refresh nesse post meio antigão mas que Com cerveja, Norteña dúvidas dá uma desestressada!

;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D

Citação de: MSXManiac online 18 de Julho de 2010, 17:04


Meu caro Riven...

Já que você está mais do que qualquer outro fazendo testes e mais testes, aqui vai uma oraçãozinha prá lá de necessária!
Não esqueça de orar antes de começar a futricar no kernel. É a oração dos programadores ao G.A.D.K. (Grande Arquiteto Do Kernel) ou simplesmente Pai Kernel!


Sistema Operacional que estais na memória
Compilado seja o vosso programa
Venha à tela os vossos comandos
Seja executada a nossa rotina
Assim na memória, como na impressora

Acerto nosso de cada dia, rodai hoje
Informai os nossos erros
Assim como nós informamos o que está corrigido
Não nos deixai entrar em looping
e livrai-nos do coredump

Amém.
;D


:D :D :D :D :D :D :D :D :D :D :D :D
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

4d4c47

@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/


Andreson Goveia

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.

galactus

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/



Eu já tinha visto sim, se não me engano foi o Gunss até quem falou disso, tem várias páginas para trás!

Só não testei ainda!  É muita coisa!  ;D
Assim que puder eu testo! O medo é de moer o sistema do trabalho ou de casa! Tenho que arrumar um sistema cobaia que possa ser destruído sem tem que reconstruir depois!

Quanto a compilação para Atom com native, o que posso dizer?

Sem sombra de dúvidas o sistema é outro! 

É a primeira vez que tenho um sistema rápido usando Atom na compilação do Menuconfig mais os -march=native onde achei para trocar!  Estou conseguindo usar o Trio (1000MHz, Low Latency, Performance) mais CFQ no Atom!   No Atom!!!!  Sem gargalos! É realmente incrível! Agora o sistema não tem a mesma fluidez do vídeo que postei, também usei opções mais "calmas" né! Notei basicamente as mesmas melhoras com o i7!  A parte de multimídia melhorou, a navegação nem se fala!

Esse march=native é tora mesmo!

O ursaosededesangue que vai compilar para P4 então....

Vai decolar esse P4, vai casar direitinho o processador com o sistema!   
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.