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

galactus

Citação de: Ricardo_Branco online 01 de Março de 2011, 17:22
Citação de: Gunss online 01 de Março de 2011, 17:12
Citação de: Ricardo_Branco online 01 de Março de 2011, 16:49
Tá-dã.. rs....

Mas vou passar estas flags na hora de compilar né?

estava fazendo assim nas minhas compilações: (depois que chegar em casa vou mudar para o que o galactus me ajudou...)

CitarCFLAGS="-O2 -pipe -march=pentium4 -mtune=pentium4" CXXFLAGS={$CFLAGS} ./configure ou make

Continuo usando na hora do comando? Devo colocar em algum arquivo? (tentei colocar no bashrc eu acho... mas quando colocava ps aux |grep gcc não aparecia)

Até mais.

o código fica -march=native e -mtune=generic
E isso você coloca no arquivo Makefile dentro da pasta do kernel 2.6.xy

ah, como é esse lance de colocar no .bashrc???? Qualquer programa que for compilar ele vai usar essas flags colocando ai?

Então Gunss... lí que era para isso acontecer... mas testei e nao apareceu na saída do ps aux...

A mesma coisa acontece no apt-build... Ele compila sem flag nenhuma... por isso coloquei naquele outro post... (o do apt-build). Até achei um forum que o cara metia o pau no apt-build... que era mentira e tal...

Vamos dar mais uma pesquisada e ver se rola... facilitaria bastante né?

Realmente, quem desce a lenha no apt-build não é sem razão!  Já li críticas sobre ele incluindo saídas das compilações do apt-build e ele realmente não otimiza muita coisa! Também pudera, os filhos do Debian são todas distros binárias!  Não podemos usar e nem temos como colocar todas as opções de compilação do Gentoo e do Arch Linux, Debian/Ubuntu não foram feitos para ser compilados! Você pega os pacotes prontos!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

galactus

Citação de: Ricardo_Branco online 01 de Março de 2011, 18:46
Gunss... acho que com esses nossos pcs low end vamos precisar aprender mais sobre o kernel...

Vou tentar uma nova compilação do kernel e estava lendo sobre RAID... no menuconfig tem em Device Drivers uma opção chamada
CitarMultiple devices driver support (RAID and LVM)
e dentro dela opções sobre o RAID.

Como não sei muito sobre nada.... www.google.com.br/linux achei:

Citarhttp://www.aprigiosimoes.com.br/2009/08/02/raid-no-linux/

RAID 0 é utilizado restritamente para aprimorar o desempenho. Ele utiliza duas ou mais unidades IGUAIS de acesso para reduzir os tempos de gravação no disco e dispositivo de raid.

Este tópico na verdade fala em como fazer "RAID por sofwtare no Linux com o mdadm"

No .config do kernel que estou usando (peguei dentro da pasta arch do meu kernel) não estava marcando nada...

Não sei se pode ajudar... de repente alguém aqui do fórum mesmo possa tirar nossa dúvida.


Se você possui pelo menos dois discos rígidos e o módulo que suporta RAID foi compilado no kernel, geralmente todo kernel Generic compila esse driver, você vai conseguir fazer RAID via software no Linux (pelo mdadm), são várias as opções, RAID0, RAID1, RAID5, RAID10 e por aí vai!  RAID não te dá mais segurança, RAID não é backup! Mesmo em RAID1 se a matriz RAID for pro pau, se fu@#$!
Melhor é fazer o RAID via hardware, mas aí o buraco é mais embaixo, quero dizer, prepare os bolsos!  Para uma solução doméstica, pelo custo, tem que ir de RAID via software! Mas dá o maior serviço no Linux!

Resumindo, seu kernel não vai ficar mais rápido ou mais lento se marcar ou desmacar a opção do RAID! Vai te dar suporte à algumas controladoras (via hardware) ou RAID via software!  Isso, se a sua placa mãe possuir uma controladora RAID ou você comprar uma placa controladora RAID!

Passou o cartão?
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Ricardo_Branco

Galactus... Resumindo:

RAID é somente para BKP...

Meu notezinho véio que vai compilar um kernel dentro de 10 minutos teve a opção de RAID desabilitada no Kernel!!!

Vamos ve o que rola.

vampire... vou compilar o kernel usando o kernel do Lineduc e tentar controlar o tempo... se não levar até a mdarugada...

Té mais.

galactus

Citação de: Ricardo_Branco online 01 de Março de 2011, 21:03
Galactus... Resumindo:

RAID é somente para BKP...


Não, RAID NÃO é backup!

Ele pode aumentar seu desempenho se usar o RAID0, e aumentar a confiabilidade do sistema em RAID1, por exemplo, mas não exclui um bom e velho Backup pois até a matriz RAID pode ir pro pau!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

eu só faria RAID se o chipset da placa mãe suportar via hardware. Esse tipo de coisa somente uma camada de software não é o bastante.

galactus

#3485
Ótimas notícias!

Deu certo a dica do CLAGs do Gentoo!

Testei aqui no meu Corei7

Saídas dos comandos:

Citargalactus@galactus-mint ~ $ cc -march=native -E -v - </dev/null 2>&1 | grep cc1 /usr/lib/gcc/x86_64-linux-gnu/4.4.5/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -march=core2 -mcx16 -msahf -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mtune=core2 -fstack-protector

Citargalactus@galactus-mint ~ $ echo "int main() { return 0; }" | gcc -march=core2 -v -Q -x c - 2>&1

[...
options enabled:  -falign-loops -fargument-alias
-fasynchronous-unwind-tables -fauto-inc-dec -fbranch-count-reg -fcommon
-fdwarf2-cfi-asm -fearly-inlining -feliminate-unused-debug-types
-ffunction-cse -fgcse-lm -fident -finline-functions-called-once
-fira-share-save-slots -fira-share-spill-slots -fivopts
-fkeep-static-consts -fleading-underscore -fmath-errno
-fmerge-debug-strings -fmove-loop-invariants -fpeephole
-freg-struct-return -fsched-interblock -fsched-spec
-fsched-stalled-insns-dep -fsigned-zeros -fsplit-ivs-in-unroller
-fstack-protector -ftrapping-math -ftree-cselim -ftree-loop-im
-ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
-ftree-reassoc -ftree-scev-cprop -ftree-vect-loop-version -funit-at-a-time
-funwind-tables -fvar-tracking -fvect-cost-model -fzero-initialized-in-bss
-m128bit-long-double -m64 -m80387 -maccumulate-outgoing-args
-malign-stringops -mcx16 -mfancy-math-387 -mfp-ret-in-387 -mfused-madd
-mglibc -mieee-fp -mmmx -mno-sse4 -mpush-args -mred-zone -msahf -msse
-msse2 -msse3 -mssse3 -mtls-direct-seg-refs
...]

Como você disse Gunss, tem lá o -msse4.2!

Linha do CFLAGs do Makefile do Kernel:
Citar[...
# 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 -pipe -march=native -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mtune=generic -fstack-protector
HOSTCXXFLAGS = -O2
...]


Nos outros arquivos troquei todos os march por native e os mtune por generic por conta do BUG! Usei o GCC 4.4.5, padrão do Mint 10!

O que achei legal mesmo foi que na primeira tentativa deu erro na compilação logo no começo!  Fui ler o erro e ele disse que não reconhecia o comando do CFLAGs -mtune=gneric    :D

Achei ótimo, pois ficava claro que ele estava executando essa linha toda, troquei para o nome certo e correu tudo bem!  

Para ter certeza da diferença, usei o Omnislash 2.6.34-1.4.4 sem os patchs do Ureheadread e o novos patchs do BFS!

O sistema é uma bala, principalmente quando chamo os programas na segunda vez!  O consumo de RAM aumentou e as atividades Multimídia foram as que mais ganharam em desempenho! Até agora vai tudo bem! Vou começar a bateria de testes padrão "galactus"!  ;D
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Ricardo_Branco

#3486
Galactus... Gunss... compilei meu kernel em 58 minutos!!! no meu note véinho!!!

(Criei um script que grava a hora de inicio, executa o comando e depois grava a hora final... Executei e fui dormir!!!)

Mas não funcionou.. rs.. deu erro e parou no intr

Citarmount: mounting none on /dev failed: No such device
W: devtmfps not available, falling back to tmfps for /dev
mount: mounting udev on /dev failed: Invalid argument
.
.
.
Missing module (cat /proc/modules; ls /dev
ALERT! /dev/disk/by-uuid... does not exist

E então ppara no shell (initramfs)

Achei que tinha colocado o necessário no .config... pode me ajudar?

Edit1: Tentei rodar denovo o comando do initramfs e deu :
CitarWARNING: missing /lib/modules/2.6.34

E com ls /lib/modules  realmente nao tem a pasta 2,6,34

Edit2: Tenho quase certeza de que é algo relacionado ao comando :
Citarmake modules install

que eu não rodei porque segui o tudo do hqx... Achei no oráculo que em alguns casos ele não é necessário, mas o que desativei no kernel que está causando o erro?

Onde errei?

galactus

Citação de: Ricardo_Branco online 02 de Março de 2011, 09:34
Galactus... Gunss... compilei meu kernel em 58 minutos!!! no meu note véinho!!!

(Criei um script que grava a hora de inicio, executa o comando e depois grava a hora final... Executei e fui dormir!!!)

Mas não funcionou.. rs.. deu erro e parou no intr

Citarmount: mounting none on /dev failed: No such device
W: devtmfps not available, falling back to tmfps for /dev
mount: mounting udev on /dev failed: Invalid argument
.
.
.
Missing module (cat /proc/modules; ls /dev
ALERT! /dev/disk/by-uuid... does not exist

E então ppara no shell (initramfs)

Achei que tinha colocado o necessário no .config... pode me ajudar?

Edit1: Tentei rodar denovo o comando do initramfs e deu :
CitarWARNING: missing /lib/modules/2.6.34

E com ls /lib/modules  realmente nao tem a pasta 2,6,34

Edit2: Tenho quase certeza de que é algo relacionado ao comando :
Citarmake modules install

que eu não rodei porque segui o tudo do hqx... Achei no oráculo que em alguns casos ele não é necessário, mas o que desativei no kernel que está causando o erro?

Onde errei?

Ricardo, você precisa ver o que você anda alterando tanto aí!

O primeiro erro foi causado por não incluir dentro do kernel o CONFIG_DEVTMPFS_MOUNT, eu não sei que arquivo de config você está usando e nem se você alterou o mesmo! 

Seja lá como for  tem que estar assim no config:

CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y

Você pode ter simplesmente desmarcado isso na hora de configurar o seu kernel, seja com o menuconfig ou com o xconfig!

Olha aí!

O segundo erro tem haver com a compilação e instalação dos módulos do kernel! Afinal de contas, que tutorial você está seguindo para compilar esse kernel?
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Ricardo_Branco

Gente... nem a pau...

Mas ja desisti 2 vezes e agora quero ir ate o fim...
Me ajudem...  rs

Segue link onde esta meu .config e meus .deb. Se alguem puder me ajudar...
http://www.4shared.com/dir/aIXqXWAl/sharing.html

Galactus... estou usando o tuto do hqx:

http://ubuntuforum-br.org/index.php/topic,29799.msg375471.html#msg375471

E ativei as CONFIG_DEVTMPFS...

Nao sei...

To perdendo o sono com isso, rs...


4d4c47

#3489
Citação de: Ricardo_Branco online 02 de Março de 2011, 22:49
Gente... nem a pau...

Mas ja desisti 2 vezes e agora quero ir ate o fim...
Me ajudem...  rs

Segue link onde esta meu .config e meus .deb. Se alguem puder me ajudar...
http://www.4shared.com/dir/aIXqXWAl/sharing.html

Galactus... estou usando o tuto do hqx:

http://ubuntuforum-br.org/index.php/topic,29799.msg375471.html#msg375471

E ativei as CONFIG_DEVTMPFS...

Nao sei...

To perdendo o sono com isso, rs...




Eu fiz o seguinte,

1 -

primeiro baixei e compilei o gcc-4.5.2 com essas cflags:


CHOST=x86_64-pc-linux-gnu CFLAGS='-march=native -O2 -pipe' CPPFLAGS='-march=native -O2 -pipe' CXXFLAGS='-march=native -O2 -pipe' --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --enable-clocale=gnu --enable-plugin --enable-objc-gc --disable-werror


demorou mais ou menos umas 3 horas aqui num athlon 2 x2.


2 -

neste seguintes arquivos:

Citar/usr/src/linux-2.6.XX/Makefile    

/usr/src/linux-2.6.xx/arch/x86/boot/compressed/Makefile    
/usr/src/linux-2.6.xx/arch/x86/boot/Makefile      

/usr/src/linux-2.6.xx/arch/x86/kernel/acpi/realmode/Makefile  

/usr/src/linux-2.6.xx/arch/x86/Kconfig.cpu        
/usr/src/linux-2.6.xx/arch/x86/Makefile          
/usr/src/linux-2.6.xx/arch/x86/Makefile_32.cpu            


onde tinha -mtune=xxx, -mcpu=xxx  ou -march=xxx   mudei tudo para "-march=native -msse4 -msse4a"


compilou tudo tranquilo aqui.

percebi que o sistema todo ficou realmente mais agil sim viu, não sei se foi só impressão minha, não estou usando nenhum patch (e vou te falar uma coisa: Linus Torvalds é o cara viu ? descobri que ele é quem tem razão ), só o kernel original mesmo.






galactus

Ricardo_Branco, como assim o comando "make modules install"?

No tutorial do HQx a gente não usa esse comando! Ele manda criar os binários do kernel image, do kernel headers e os modules do kernel!



4d4c47, pode ter certeza que o sistema ficou mais ágil sim! Não foi só impressão sua não!  Com essa abordagem todas as instruções específicas do seu processador são ativadas na compilação!
Por isso que eu sinto mais diferença na parte de multimídia e na máquina virtual no meu i7!  Agora eu não entendi uma coisa, aquela linha toda que você colocou, no número 1-; foi para compilar o GCC 4.5.2, certo?

Mas o que foi que você colocou na linha do CFLAGs do Makefile do kernel?  Você está usando que versão Debian/Ubuntu? E porque colocar os -msse4 -msse4a em todas as linhas dos outros arquivos, se você já usa o -march=native nestes mesmos arquivos, e colocou o -msse4 -msse4a na linha do Makefile do kernel?  Você não está repetindo os comandos?   
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

4d4c47

Citação de: galactus online 03 de Março de 2011, 06:45
Ricardo_Branco, como assim o comando "make modules install"?

No tutorial do HQx a gente não usa esse comando! Ele manda criar os binários do kernel image, do kernel headers e os modules do kernel!



4d4c47, pode ter certeza que o sistema ficou mais ágil sim! Não foi só impressão sua não!  Com essa abordagem todas as instruções específicas do seu processador são ativadas na compilação!
Por isso que eu sinto mais diferença na parte de multimídia e na máquina virtual no meu i7!  Agora eu não entendi uma coisa, aquela linha toda que você colocou, no número 1-; foi para compilar o GCC 4.5.2, certo?

Mas o que foi que você colocou na linha do CFLAGs do Makefile do kernel?  Você está usando que versão Debian/Ubuntu? E porque colocar os -msse4 -msse4a em todas as linhas dos outros arquivos, se você já usa o -march=native nestes mesmos arquivos, e colocou o -msse4 -msse4a na linha do Makefile do kernel?  Você não está repetindo os comandos?   

no número 1-, foi só para compilação do gcc mesmo

Mas o que foi que você colocou na linha do CFLAGs do Makefile do kernel?

nos varios Makefile que mostrei na pasta linux-2.6.37.2, eu mudei para: -march=native -msse4 -msse4a

estou usando o ubuntu 10.04

E porque colocar os -msse4 -msse4a em todas as linhas dos outros arquivos, se você já usa o -march=native nestes mesmos arquivos, e colocou o -msse4 -msse4a na linha do Makefile do kernel?  Você não está repetindo os comandos?

ao usar só o -march=native puro, percebi que pela saida do comando "echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native" me mostrava que não era usado nenhuma instrução sse, quando executei "echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native -msse4 -msse4a" vi que todas as instruções foram ativadas corretamente.

repare na saida do comando:


$ echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native -msse4 -msse4a
As seguintes opções são alvos específicos:
  -m128bit-long-double        [desabilitado]
  -m32                        [desabilitado]
  -m3dnow                      [desabilitado]
  -m3dnowa                    [desabilitado]
  -m64                        [habilitado]
  -m80387                      [habilitado]
  -m96bit-long-double          [habilitado]
  -mabi=                     
  -mabm                        [habilitado]
  -maccumulate-outgoing-args  [desabilitado]
  -maes                        [desabilitado]
  -malign-double              [desabilitado]
  -malign-functions=         
  -malign-jumps=             
  -malign-loops=             
  -malign-stringops            [habilitado]
  -march=                      nativegcc
  -masm=                     
  -mavx                        [desabilitado]
  -mbranch-cost=             
  -mcld                        [desabilitado]
  -mcmodel=                   
  -mcrc32                      [desabilitado]
  -mcx16                      [habilitado]
  -mfancy-math-387            [habilitado]
  -mfma                        [desabilitado]
  -mfma4                      [desabilitado]
  -mforce-drap                [desabilitado]
  -mfp-ret-in-387              [habilitado]
  -mfpmath=                   
  -mfused-madd                [habilitado]
  -mglibc                      [habilitado]
  -mhard-float                [habilitado]
  -mieee-fp                    [habilitado]
  -mincoming-stack-boundary= 
  -minline-all-stringops      [desabilitado]
  -minline-stringops-dynamically [desabilitado]
  -mintel-syntax              [desabilitado]
  -mlarge-data-threshold=     
  -mlwp                        [desabilitado]
  -mmmx                        [desabilitado]
  -mmovbe                      [desabilitado]
  -mms-bitfields              [desabilitado]
  -mno-align-stringops        [desabilitado]
  -mno-fancy-math-387          [desabilitado]
  -mno-push-args              [desabilitado]
  -mno-red-zone                [desabilitado]
  -mno-sse4                    [desabilitado]
  -momit-leaf-frame-pointer    [desabilitado]
  -mpc                       
  -mpclmul                    [desabilitado]
  -mpopcnt                    [habilitado]
  -mpreferred-stack-boundary=
  -mpush-args                  [habilitado]
  -mrecip                      [desabilitado]
  -mred-zone                  [habilitado]
  -mregparm=                 
  -mrtd                        [desabilitado]
  -msahf                      [habilitado]
  -msoft-float                [desabilitado]
  -msse                        [habilitado]
  -msse2                      [habilitado]
  -msse2avx                    [desabilitado]
  -msse3                      [habilitado]
  -msse4                      [habilitado]
  -msse4.1                    [habilitado]
  -msse4.2                    [habilitado]
  -msse4a                      [habilitado]
  -msseregparm                [desabilitado]
  -mssse3                      [habilitado]
  -mstack-arg-probe            [desabilitado]
  -mstackrealign              [habilitado]
  -mstringop-strategy=       
  -mtls-dialect=             
  -mtls-direct-seg-refs        [habilitado]
  -mtune=                      amdfam10
  -muclibc                    [desabilitado]
  -mveclibabi=               
  -mxop                        [desabilitado]




vampire_thunder

E qual a função dessas entradas?

Percebi aqui que o processador do 4d4c47 tem a mesma arquitetura do meu. Vou tentar depois.

Gunss

Eu acho que não tenho a coragem de compilar o GCC...
Mas vou baixar o kernel 2.6.37.2, fazer aquelas dicas que o Galactus postou, e compilar com o patch do BFS + BFQ + -march=native.

Outro motivo para não compilar, é que eu nem sei se só preciso baixar o "File:gcc-4.5.2.tar.bz2" ou se preciso baixar também o "File:gcc-g++-4.5.2.tar.bz2". Sendo assim prefiro ficar quieto na minha!  ;D

Só por curiosidade, aqui a saida do comando "echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native" com o kernel do vampire

echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native
The following options are target specific:
 -m128bit-long-double         [disabled]
 -m32                         [enabled]
 -m3dnow                     [disabled]
 -m3dnowa                     [disabled]
 -m64                         [disabled]
 -m80387                     [enabled]
 -m96bit-long-double         [enabled]
 -mabm                       [disabled]
 -maccumulate-outgoing-args   [disabled]
 -maes                       [disabled]
 -malign-double               [disabled]
 -malign-functions=          
 -malign-jumps=              
 -malign-loops=              
 -malign-stringops           [enabled]
 -march=                     nativegcc
 -masm=                      
 -mavx                       [disabled]
 -mbranch-cost=              
 -mcld                       [disabled]
 -mcmodel=                  
 -mcx16                       [enabled]
 -mfancy-math-387             [enabled]
 -mfma                       [disabled]
 -mforce-drap                 [disabled]
 -mfp-ret-in-387             [enabled]
 -mfpmath=                  
 -mfused-madd                 [enabled]
 -mglibc                     [enabled]
 -mhard-float                 [enabled]
 -mieee-fp                   [enabled]
 -mincoming-stack-boundary=  
 -minline-all-stringops       [disabled]
 -minline-stringops-dynamically [disabled]
 -mintel-syntax               [disabled]
 -mlarge-data-threshold=    
 -mmmx                       [disabled]
 -mms-bitfields               [disabled]
 -mno-align-stringops         [disabled]
 -mno-fancy-math-387         [disabled]
 -mno-fused-madd             [disabled]
 -mno-push-args               [disabled]
 -mno-red-zone               [disabled]
 -mno-sse4                   [disabled]
 -momit-leaf-frame-pointer   [disabled]
 -mpc                        
 -mpclmul                     [disabled]
 -mpopcnt                     [disabled]
 -mpreferred-stack-boundary=
 -mpush-args                 [enabled]
 -mrecip                     [disabled]
 -mred-zone                   [enabled]
 -mregparm=                  
 -mrtd                       [disabled]
 -msahf                       [enabled]
 -msoft-float                 [disabled]
 -msse                       [enabled]
 -msse2                       [enabled]
 -msse2avx                   [disabled]
 -msse3                       [enabled]
 -msse4                       [disabled]
 -msse4.1                     [enabled]
 -msse4.2                     [disabled]
 -msse4a                     [disabled]
 -msse5                       [disabled]
 -msseregparm                 [disabled]
 -mssse3                     [enabled]
 -mstack-arg-probe           [disabled]
 -mstackrealign               [enabled]
 -mstringop-strategy=        
 -mtls-dialect=              
 -mtls-direct-seg-refs       [enabled]
 -mtune=                     core2
 -muclibc                     [disabled]
 -mveclibabi=                


Gunss