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

victorwpbastos

rapaz, instalei o kernel lineduc... a principio está tudo indo bem... com desempenho semelhante ao liquorix. para quem for instalar no debian precisa instalar o pacote wireless-cdra antes que não tem nos repositorios. precisa baixar o deb no repo do ubuntu.
Apenas mais um aprendiz...

Wagnesio

Aqui o Lineduc está mais rapido do que o Omnislash, mas acho que é porque não instalei o driver da placa de video no Omnislash, alguem sabe onde encontro? Placa de Video Intel Onboard.

Mudando um pouco de assunto, ainda não consegui o kit Gnome+e17, mas achei o e17 puro mais pesado que o Openbox puro. Então talvez o e17+gnome seja mais pesado que o openbox+gnome. Caso ache um passo-a-passo, eu posto aqui.
Ubuntu 12.10
Atom N270 1.6GHz - 1 GB RAM - 120 GB HD

vampire_thunder

Citação de: Wagnesio online 06 de Março de 2011, 23:05
Aqui o Lineduc está mais rapido do que o Omnislash, mas acho que é porque não instalei o driver da placa de video no Omnislash, alguem sabe onde encontro? Placa de Video Intel Onboard.


Estranho, pois geralmente o driver da Intel é ativado nativamente.

Assistindo os vídeos do Galactus, acho meio difícil algum kernel bater o do omnislash. Eu inclusive não uso as opções otimizadas, como o 1000Hz (uso 300), Low-Latency (uso Voluntary) e performance (uso ondemand). Isso pq o objetivo é colocar o kernel em uma distro, e devido a isso ele deve ter suporte ao maior número de máquinas possíveis, incluindo notebooks. Não é uma compilação específica para um hardware. No entanto o kernel .38 já é nativamente mais otimizado que o .34 do Omnislash.

Fico feliz com os elogios, pois vejo que está rodando bem em diferentes máquinas.

Gunss

Eu só tenho uma reclamação quanto ao kernel .37
Todo dia ao menos duas vezes estou usando o PC e do nada ele termina minha sessão e vai para o GDM. Acho que tem alguma coisa com o AppArmor + Firefox 4. Mas não tenho ideia.

Só que isso acontece com TODOS os kernel que experimentei da versão .37


@vampire, onde você baixa o patch que o ubuntu usa no kernel?
Por acaso ele estaria aqui
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.38-rc7-natty/

e o nome é o "0001-base-packaging.patch" ???

vampire_thunder

Citação de: Gunss online 07 de Março de 2011, 12:10
Eu só tenho uma reclamação quanto ao kernel .37
Todo dia ao menos duas vezes estou usando o PC e do nada ele termina minha sessão e vai para o GDM. Acho que tem alguma coisa com o AppArmor + Firefox 4. Mas não tenho ideia.

Só que isso acontece com TODOS os kernel que experimentei da versão .37


@vampire, onde você baixa o patch que o ubuntu usa no kernel?
Por acaso ele estaria aqui
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.38-rc7-natty/

e o nome é o "0001-base-packaging.patch" ???

Eu não baixo, eu compilo o kernel do Ubuntu mesmo. Mas quando vc baixa o código-fonte pelo apt, ele baixa um diff também. Talvez funcione.

Ricardo_Branco

#3530
Citação de: victorwpbastos online 06 de Março de 2011, 22:45
rapaz, instalei o kernel lineduc... a principio está tudo indo bem... com desempenho semelhante ao liquorix. para quem for instalar no debian precisa instalar o pacote wireless-cdra antes que não tem nos repositorios. precisa baixar o deb no repo do ubuntu.

victorwpbastos... o wireless-cdra pode ser baixado pelo wget (para quem nao  tem o repo do ubuntu) em:


axel -n 4 http://mirrors.kernel.org/ubuntu/pool/main/w/wireless-crda/wireless-crda_1.7_i386.deb (ou com o wget)


galactus

#3531
Citação de: Gunss online 07 de Março de 2011, 12:10
Eu só tenho uma reclamação quanto ao kernel .37
Todo dia ao menos duas vezes estou usando o PC e do nada ele termina minha sessão e vai para o GDM. Acho que tem alguma coisa com o AppArmor + Firefox 4. Mas não tenho ideia.

Só que isso acontece com TODOS os kernel que experimentei da versão .37


@vampire, onde você baixa o patch que o ubuntu usa no kernel?
Por acaso ele estaria aqui
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.38-rc7-natty/

e o nome é o "0001-base-packaging.patch" ???

O kernel 2.6.37 tem muitos Bugs ainda!  Tanto é assim que o pessoal do Zenwalk desistiu de usá-lo!  Tá lá no fórum deles, as regressões foram tantas que eles voltaram para o 2.6.35!
Eu mesmo já tinha reportado os paus para o Vampire!  Aqui o Ktorrent fecha do nada e as partições com NTFS, quando acesso vídeos, travam o sistema todo!  E isso é do kernel mesmo!  Quando o liquorix atualizou para a versão 2.6.37-32, também deu pau aqui!  Agora ele já fez dois novos lançamentos rapidinho!  Já está na 2.6.37-34! Mas não testei mais não!

Baixei o sei kernel 2.6.38 Vampire!  Vou testar aqui!

Vampire, qual o seu processador meu caro?  Vocês deram uma lida no que falei na página 235?

Gente, alguém se habilita em responder as minhas perguntas no final da página 235?
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

Citarjussier@jussier-desktop:~$ 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=                           native....
  -masm=                            
  -mavx                             [disabled]
  -mbranch-cost=                    
  -mcld                             [disabled]
  -mcmodel=                         
  -mcx16                            [disabled]
  -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                         [enabled]
  -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                            [disabled]
  -msoft-float                      [disabled]
  -msse                             [disabled]
  -msse2                            [disabled]
  -msse2avx                         [disabled]
  -msse3                            [disabled]
  -msse4                            [disabled]
  -msse4.1                          [disabled]
  -msse4.2                          [disabled]
  -msse4a                           [disabled]
  -msse5                            [disabled]
  -msseregparm                      [disabled]
  -mssse3                           [disabled]
  -mstack-arg-probe                 [disabled]
  -mstackrealign                    [enabled]
  -mstringop-strategy=              
  -mtls-dialect=                    
  -mtls-direct-seg-refs             [enabled]
  -mtune=                           
  -muclibc                          [disabled]
  -mveclibabi=                      

essa é a saida do kernel do vampire. Não habilitou nenhuma instrução SSE aqui.

Olha, eu to confuso com tudo isso viu. O vampire aqui no post abaixo mesmo compilando com todas as opções não ativou os SSE. Olha, isso ta confuso viu... Queria poder responder galactus, mas eu só tenho mais perguntas... Afinal, como ativar os SSE e todas as opções que nossos processadores vem da fornalha?

Citação de: vampire_thunder online 06 de Março de 2011, 11:56
Compilei o .38 do Natty aqui com a seguinte CFLAG:
HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -pipe -march=native -mcx16 -msse4a -fstack-protector -mpopcnt -msahf -msse4 -msse4.2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mtune=generic

Estranhamente, quando eu dava o comando "ps ax | grep gcc | grep march", nada acontecia, não retornava nada. Já o "grep mtune" retornava vários =generic.

Fiz as modificações nos outros makefiles da pasta arch/x86, seguindo as dicas do 4d4c47, colocando "-msse4 -msse4a". Com o kernel já instalado, ao executar o comando "echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native", continuam desativados:
(...)
-mrtd                        [disabled]
  -msahf                      [enabled]
  -msoft-float                [disabled]
  -msse                        [disabled]
  -msse2                      [disabled]
  -msse2avx                    [disabled]
  -msse3                      [disabled]
  -msse4                      [disabled]
  -msse4.1                    [disabled]
  -msse4.2                    [disabled]
  -msse4a                      [disabled]
  -msse5                      [disabled]
  -msseregparm                [disabled]
  -mssse3                      [disabled]
  -mstack-arg-probe            [disabled]
  -mstackrealign              [enabled]


Mas se eu acrescento as duas entradas no comando, ativam:
(...)
-mrtd                        [disabled]
  -msahf                      [enabled]
  -msoft-float                [disabled]
  -msse                        [enabled]
  -msse2                      [enabled]
  -msse2avx                    [disabled]
  -msse3                      [enabled]
  -msse4                      [enabled]
  -msse4.1                    [enabled]
  -msse4.2                    [enabled]
  -msse4a                      [enabled]
  -msse5                      [disabled]
  -msseregparm                [disabled]
  -mssse3                      [enabled]
  -mstack-arg-probe            [disabled]
  -mstackrealign              [enabled]


Não era para aparecer enable com o primeiro comando, uma vez que eu compilei com as entradas?  ???

Vejam a saída do "echo "int main() { return 0; }" | gcc -march=native -v -Q -x c - 2>&1":
(...)
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:  -v - -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 -fstack-protector
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-switch-conversion
-ftree-vect-loop-version -funit-at-a-time -funwind-tables -fvar-tracking
-fvect-cost-model -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


Como podem ver, estou usando o compilador padrão do 10.04.

Adicionei o BFQ e o LZMA na unha, pois ainda não foram feitos patches para o .38. O LZMA eu refiz todo o patch para funcionar nessa versão. O BFQ dava apenas um errinho, fácil de corrigir. Os demais patches (200 linhas, aufs, ureadahead) já vêm no kernel do Ubuntu.
Alguém quer testar? só 64 por enquanto:
http://archive.lineduc.sigeduc.info/lineduc/pool/main/l/linux/linux-headers-2.6.38-5_2.6.38-5.32.1_all.deb
http://archive.lineduc.sigeduc.info/lineduc/pool/main/l/linux/linux-headers-2.6.38-5-lineduc2_2.6.38-5.32.1_amd64.deb
http://archive.lineduc.sigeduc.info/lineduc/pool/main/l/linux/linux-image-2.6.38-5-lineduc2_2.6.38-5.32.1_amd64.deb

Gunss

#3533
http://www.phoronix.com/scan.php?page=news_item&px=OTE4Mg

GCC 4.6 tem apenas 4 bug P1 restando. Depois disso vai entrar em estado RC.

E também saiu a versão 2.6.37.3 do kernel .37. Quem sabe não corrigi alguns bugs. Vou compilar o kernel aqui, mas sem adicionar os -march=native


edit:

voltando ao que falei no tópico acima. Com esse comando gcc -c -Q -march=native --help=target olha a saida:
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=                     core2
 -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=                


veja que ativou todas os SSE do meu processador. Então afinal de contas, as instruções SSE, SSE2, SSE3, SSE4.1 estão ativas no kernel ou não?
Agora o MMX não esta ativo...

edit2: lendo a documentação do Gentoo, o comando gcc -c -Q -march=native --help=target mostra as opções que serão ativas ao usar o -march=native. Então realmente nenhuma instrução SSE esta ativa no kernel do vampire.

vampire_thunder

Citação de: Gunss online 08 de Março de 2011, 11:35

edit2: lendo a documentação do Gentoo, o comando gcc -c -Q -march=native --help=target mostra as opções que serão ativas ao usar o -march=native. Então realmente nenhuma instrução SSE esta ativa no kernel do vampire.


Isso que eu não entendi, pois coloquei os parâmetros todos lá, além de mudar os makefiles colocando tudo -march=native. A não ser que meu processador interfira no resultado final. É um Phenon II N830. Rodando o comando citado, aparece tudo "disabled".

Citação de: galactus
Vampire, qual o seu processador meu caro?  Vocês deram uma lida no que falei na página 235?

Gente, alguém se habilita em responder as minhas perguntas no final da página 235?
É esse aí de cima. Mas quais são as perguntas?

galactus

#3535
Gunss, vamos ver se consigo tirar um pouco da sua confusão!

O comando echo | gcc -dM -E - -march=native só mostra as instruções que você tem disponíveis para o seu processador!

Esse aí não ativa e nem desativa nada!  Só mostras as instruções disponíveis para você colocar na linha do CFLAGs!

Já esse outro:  echo | gcc -dM -E - -march=nativegcc -Q --help=target -march=native

Vai mostrar o que vai ser ativado na compilação com o -march-native!   Daí do 4d4c47 ter falado de colocar a mais o -msse4 e  -msse4a, mostrando a diferença com este mesmo comando, que essas instruções passam a ser ativadas, coisa que não era antes!


Passou o cartão?

Esse comandos não monstram se as instruções foram ativadas no kernel!  


Agora, de novo, novamente, outra vez!  ;D  

Como eu havia notado, eu coloquei isso lá no final da página 235, dependendo das instruções que você coloca, algumas são ativadas e outras desativadas!

A instrução -msse4a só server para alguns processadores da AMD!  Eu disse AMD!!!!  Processadores Intel NÃO tem suporte a essa instrução!!!!

Outro exemplo, se ligar a instrução -mno-sse4, ela desliga outra -msse*!   E por aí vai!  

Confundiu?  Não, tá fácil, é sério!  É só dar uma espiada no site da Intel ou da AMD e verificar quais instruções estão disponíveis para o seu processador!  Daí  não vai ter erro!

Descobri que se colocar a opção -msse4.2, ela deveria ativar por padrão na compilação as intruções: SSE4.2, SSE4.1, SSSE3, SSE3, SSE2 e SSE!  Isso para o meu Core i7!  

Mas só isso não ativa a instrução -mmx!   Daí eu coloquei ela na linha do CFLAGs, entre outras, no meu caso vai ficar assim:

-O2 -pipe -march=native -mpopcnt -msse4.1 -msse4.2 -mmmx -msse -msse2 -msse3 -msse4 -mssse3  --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=256 -mtune=generic -fstack-protector


Deu para se orientar melhor agora?

Agora as perguntas que não me querem calar!

E quanto a essa opção que o Ricardo levantou a questão?  Colocar essa linha toda na execução make-kpkg?  

Seria uma mão na roda, não teríamos que abrir todos os arquivos do makefile do Kernel!  Alguém mais confirma isso?

Ricardo, você não me respondeu, como você está fazendo para usar o localmodconfig?
Eu andei pesquisando a respeito e ela pode retirar coisas demais!  Tem gente que manda certificar o .config só pra ter garantia que tudo tá no lugar!


Acho que era só! Ufa!  ;D  :P
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

#3536
@galactus

blz, valeu!!! Saquei.
Aqui estou usando essas opções.
-O2 -pipe -fomit-frame-pointer -march=native -msse4.1 -mmmx --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=generic -fstack-protector

porém se eu mudar os arquivos makefile dentro da pasta x86 do kernel, ou então adicionar a linha acima no makefile dentro da pasta 2.6.37.3 do kernel (no meu caso), eu não consigo compilar, sempre da erro. E o erro sempre envolve o BFS-363.

vampire_thunder

Agora eu vi as perguntas, galactus. O problema é saber se realmente as instruções foram ativadas, uma vez que mesmo eu mudando os makefiles e colocando na linha da CFLAG, aparentemente ainda assim não ativaram.

Sobre os bugs do .37, acho que sou um sortudo, então, pois não percebi nada aqui. Tenho inclusive usado um HD de 1.5 também numa case, formatado em NTFS, que está funcionando perfeitamente bem com relação à transferência de arquivos e exibição de vídeos.
Mas agora levanto outra questão. Vale a pena compilar o suporte a NTFS como driver ou deixa como módulo? Se compilar como driver, aumenta o I/O ou é mais fácil de dar pau?

Gunss

Citação de: vampire_thunder online 08 de Março de 2011, 13:46
Agora eu vi as perguntas, galactus. O problema é saber se realmente as instruções foram ativadas, uma vez que mesmo eu mudando os makefiles e colocando na linha da CFLAG, aparentemente ainda assim não ativaram.

Sobre os bugs do .37, acho que sou um sortudo, então, pois não percebi nada aqui. Tenho inclusive usado um HD de 1.5 também numa case, formatado em NTFS, que está funcionando perfeitamente bem com relação à transferência de arquivos e exibição de vídeos.
Mas agora levanto outra questão. Vale a pena compilar o suporte a NTFS como driver ou deixa como módulo? Se compilar como driver, aumenta o I/O ou é mais fácil de dar pau?

Vampire, realmente, como saber se as instruções que demos ao compilador serão usadas?

Sobre esse bug do .37, realmente é chato, as vezes ele vai para o GDM do nada, bem esquisito. Estou compilando o recém lançado .37.3 pra ver como fica.
Sobre o NTFS, eu sempre compilei ele como driver. Não recordo de aumenta a taxa de I/O, mas NUNCA deu pau aqui, e o desempenho sempre foi bom. Só que ele usa bastante a CPU quando esta transferindo arquivos, coisa de 20~30% aqui no meu Core2.

vampire_thunder

Citação de: Gunss online 08 de Março de 2011, 14:05

Vampire, realmente, como saber se as instruções que demos ao compilador serão usadas?

Sobre esse bug do .37, realmente é chato, as vezes ele vai para o GDM do nada, bem esquisito. Estou compilando o recém lançado .37.3 pra ver como fica.
Sobre o NTFS, eu sempre compilei ele como driver. Não recordo de aumenta a taxa de I/O, mas NUNCA deu pau aqui, e o desempenho sempre foi bom. Só que ele usa bastante a CPU quando esta transferindo arquivos, coisa de 20~30% aqui no meu Core2.

por isso que perguntei, pois o suporte a NTFS no kernel foi um processo lento, e não sei em que pé está hoje. Penso que compilando como mais um driver pode fazer com que o resultado final faça o kernel ficar mais lento. Ou estou errado?