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

Gunss

#3105
navegando pela web sobre o assunto achei o seguinte código que diz quais as opções nativas do seu processador para usar no GCC

gcc -c -Q -march=native --help=targe

Existem várias opções. O engraçado é que ele retornou o march=core2 e mtune=core2. Então esse comando mostra as opções ideais na hora da compilação.


http://gcc.gnu.org/PR45483#c3
http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS

Mais um motivo para migrar para o 10.10 que tem o GCC 4.5

galactus

Citação de: Gunss online 10 de Janeiro de 2011, 16:21
veja que não importa a versão do GCC, 32bit sempre usará prescott.

Alguém aqui já tentou compilar o kernel com -O3?

@galactus, você modificou o Makefile e adicionou o

-march=core2

ou

-march=native
?

Eu coloquei -march=core2!

Gente, vocês estão lendo muito sobre a documentação do Gentoo, legal! Mas vocês não se esqueçam do que eu havia observado antes!  O Gentoo usa essas opções para compilar o sistema inteiro se o usuário quiser!

O Ubuntu já compilou tudo! É por isso que estou encontrando pontos fortes e fracos com as várias opções de arquitetura do processador! O Ubuntu não tem nenhuma versão compilada para processadores modernos! Já viram no Ubuntu packages, não viram? Ou é i386 ou AMD64! Tem distro compilada para i586 e outras para i686! As distros compiladas para i686 rodam bem melhor em processadores mais novos, mas não funcionam em máquinas velhas!

Eu dexei o BubleBee compilando com a opção de P4 no menuconfig e -march=nocona no Makefile! Vamos ver o que vai virar no BubleBee! Amanhã eu conto!

A opção -03 é bem "forte"! Muitas vezes dá problema mesmo! Eu desisti de usar no apt-build pois notei que em muitos programas ele simplesmente "volta" a usar o -02, ignorando as instruções do apt-build.conf!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

Claro, nem penso em usar tudo aquilo no Ubuntu. Mas aquela documentação é uma ótima fonte de conhecimento sobre o assunto. Ler aquilo é uma ótima forma de evitar cagadas no PC, ou talvez um ótima forma de fazer cagadas.  ;D

galactus

Citação de: Gunss online 10 de Janeiro de 2011, 20:08
Claro, nem penso em usar tudo aquilo no Ubuntu. Mas aquela documentação é uma ótima fonte de conhecimento sobre o assunto. Ler aquilo é uma ótima forma de evitar cagadas no PC, ou talvez um ótima forma de fazer cagadas.  ;D

Nem me fale Gunss, nem me fale!
É um prato cheio! :)

Vamos ver se a minha chutometria estiver correta, eu devo ter um resultado melhor no BubleBee com o P4  + nocona!

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

MSXManiac

Citação de: galactus online 10 de Janeiro de 2011, 20:57
Nem me fale Gunss, nem me fale!
É um prato cheio! :)
Vamos ver se a minha chutometria estiver correta, eu devo ter um resultado melhor no BubleBee com o P4  + nocona!
Espero pelos resultados!
Minha patroa comprou um Net com Atom! Se bombar quero a receita do bolo! Ainda mais que ela usa aquele peso morto chamado NetBeans!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

MSXManiac



Pelo que tenho visto, vou precisar do gcc 4.5.1, mas o meu Linux Mint tá o 4.4.1
Simplesmente instalar o gcc, o cpp e o g++ só não resolve, pois toda vez que invocar o gcc, vai ser usado o 4.4.1
Então segui o tutorial deste link ( http://serverfault.com/questions/216935/how-do-i-install-gcc-4-5-2-in-ubuntu-10-10 ) e em teoria toda vez que eu chamar o gcc ou o g++ ou o cpp, ele vai invocar o 4.5.1
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

jartak

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 -march=core2 -fomit-frame-pointer
HOSTCXXFLAGS = "${CFLAGS}"

Aqui, ao invés de ser "${CFLAGS}" o correto não seria "${HOSTCFLAGS}"?
Debian Squeeze
Thinkpad Lenovo T400 - Core 2 Duo P8600

MSXManiac


Dando uma xeretada na pasta arch\x86 do kernel 2.6.37, no KConfig, achei este interessante texto:

config SMP
   bool "Symmetric multi-processing support"
   ---help---
     This enables support for systems with more than one CPU. If you have
     a system with only one CPU, like most personal computers, say N. If
     you have a system with more than one CPU, say Y.

     If you say N here, the kernel will run on single and multiprocessor
     machines, but will use only one CPU of a multiprocessor machine. If
     you say Y here, the kernel will run on many, but not all,
     singleprocessor machines. On a singleprocessor machine, the kernel
     will run faster if you say N here.

     Note that if you say Y here and choose architecture "586" or
     "Pentium" under "Processor family", the kernel will not work on 486
     architectures. Similarly, multiprocessor kernels for the "PPro"
     architecture may not work on all Pentium based boards.

     People using multiprocessor machines who say Y here should also say
     Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
     Management" code will be disabled if you say Y here.

     See also <file:Documentation/i386/IO-APIC.txt>,
     <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
     <http://www.tldp.org/docs.html#howto>.

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

MSXManiac

Citação de: jartak online 10 de Janeiro de 2011, 23:32
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 -march=core2 -fomit-frame-pointer
HOSTCXXFLAGS = "${CFLAGS}"

Aqui, ao invés de ser "${CFLAGS}" o correto não seria "${HOSTCFLAGS}"?

Ele passa o conteúdo de "${HOSTCFLAGS}" para "${CFLAGS}"
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz

maiconramones

Buenas pessoal,

Eu não queria quebrar a discussão em alto nível que vocês estão tendo hehehe mas eu ainda não sou senior nesse assunto......

Então ontem eu compilei pela primeira vez o kernel Omnislash  ;D ... A principio tudo funcionou normal mais fiquei com algumas dúvidas:

1 - Eu tenho um core-i5, durante a compilação eu escolhi pentium 4. Era esse mesmo que tinha que escolher ou tem uma outra opção que é melhor?

2 - Outra opção que fiquei com dúvida é com relação a frequência, acho que era algo como low latency... tinha 300 ou 1000, deixei como 300. Mas afinal o que faz essa parâmetro?

3 - Como posso verificar a questão de performance em geral do sistema? Para o boot eu utilizei o bootchart, segundo o bootchart o kernel novo foi 15 segundos mais rápido. Ou seja agora a minha máquina leva 40 segundos.

Para uma máquina com um core-i5 e 8 giga de ram, o que vocês acham da máquina dar boot em 40 segundos?

No mais era isso pessoal quem sabe eu possa evoluir para me juntar com vocês nesta discussão de alto nível hehehe.

Desde já obrigado pela força ai, abraço.

brottor

Citação de: maiconramones online 11 de Janeiro de 2011, 09:22
Buenas pessoal,

Eu não queria quebrar a discussão em alto nível que vocês estão tendo hehehe mas eu ainda não sou senior nesse assunto......

Então ontem eu compilei pela primeira vez o kernel Omnislash  ;D ... A principio tudo funcionou normal mais fiquei com algumas dúvidas:

1 - Eu tenho um core-i5, durante a compilação eu escolhi pentium 4. Era esse mesmo que tinha que escolher ou tem uma outra opção que é melhor?

2 - Outra opção que fiquei com dúvida é com relação a frequência, acho que era algo como low latency... tinha 300 ou 1000, deixei como 300. Mas afinal o que faz essa parâmetro?

3 - Como posso verificar a questão de performance em geral do sistema? Para o boot eu utilizei o bootchart, segundo o bootchart o kernel novo foi 15 segundos mais rápido. Ou seja agora a minha máquina leva 40 segundos.

Para uma máquina com um core-i5 e 8 giga de ram, o que vocês acham da máquina dar boot em 40 segundos?

No mais era isso pessoal quem sabe eu possa evoluir para me juntar com vocês nesta discussão de alto nível hehehe.

Desde já obrigado pela força ai, abraço.


1 - Depende vc tá usando 32 ou 64 bits?

2 - Acho q se o seu i5 for quad core, vc pode botar 1000mhz, daí se ficar mais lento volta pra 300mhz.

Linux Professional Institute Certificated Level 2.
LPI000220827

galactus

Citação de: maiconramones online 11 de Janeiro de 2011, 09:22
Buenas pessoal,

Eu não queria quebrar a discussão em alto nível que vocês estão tendo hehehe mas eu ainda não sou senior nesse assunto......

Então ontem eu compilei pela primeira vez o kernel Omnislash  ;D ... A principio tudo funcionou normal mais fiquei com algumas dúvidas:

1 - Eu tenho um core-i5, durante a compilação eu escolhi pentium 4. Era esse mesmo que tinha que escolher ou tem uma outra opção que é melhor?

2 - Outra opção que fiquei com dúvida é com relação a frequência, acho que era algo como low latency... tinha 300 ou 1000, deixei como 300. Mas afinal o que faz essa parâmetro?

3 - Como posso verificar a questão de performance em geral do sistema? Para o boot eu utilizei o bootchart, segundo o bootchart o kernel novo foi 15 segundos mais rápido. Ou seja agora a minha máquina leva 40 segundos.

Para uma máquina com um core-i5 e 8 giga de ram, o que vocês acham da máquina dar boot em 40 segundos?

No mais era isso pessoal quem sabe eu possa evoluir para me juntar com vocês nesta discussão de alto nível hehehe.

Desde já obrigado pela força ai, abraço.

1- Se você seguiu os tuto do HQx era essa a melhor opção!

2- Você está fazendo duas perguntas em uma! A freqüência mais baixa do processador, 250, 300 ou 1000MHz!  É como numa corrida de carro, seu carro vai largar mais ou menos acelerado? No seu caso que tem processador de sobra, ele resiste ao uma saída mais acelerada, pois mais alta a freqüência, mais processos ele joga no processador, daí se ele não tiver "potência" para resolver tudo, ele acaba se "atolando"!
A outra coisa é o Preempt, Server e Low Latency!  Isso aí regula a maneira com que ele vai lidar quando uma nova ordem chegar para ele lidar com um novo processo!  Se ele vai estar "Zen" (Sever), de "prontidão" (preempt) ou "a todo vapor" (Low Latency)!  Novamente, aqui se você não tiver uma máquina "porruda" ela pede água!  Baum, nem preciso dizer que falei no "popular" para traduzir o informatês disso tudo!  ;D

3- Os meus testes são muito subjetivos, só se você baixar e instalar os testes do Phoronix!  Pra mim quanto mais "pau" a máquina aguentar, sem dar lag, travadas e parecer não sentir a carga no sistema, melhor! Quanto ao tempo de boot maior é normal! Ao usar o Omnislash ele perde o ureadahead ( esse nome feio faz a inicialização ser mais rápida pois "liga" tudo em paralelo na hora do boot)!  Você pode fazer ele funcionar novamente, se você baixar e aplicar o patch do Gentoo, além é claro de ativar ele no Menuconfig para ser compilado dentro do Omnislash para ter o ureadahead de volta!

"Basicamente", era isso!  :P
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

galactus

Já estou testando o kernel compilado com a opção march=nocona no BubleBee!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

maiconramones

@brottor
O meu processador é dual core com 4 threads...

@galactus
Cara muito obrigado tuas respostas já me ajudaram bastante mas posso abusar mais um pouquinho  ???

Qual o mais parrudo Preempt, Server ou Low Latency?

Senão me falha a memória a uns tópicos atrás eu tinha lido que pra compilar o Omnislash de novo eu teria que migrar para o kernel padrão, desinstalar o Omnislash e ai assim começar o processo de compilação de novo... Essa informação procede?

Por hora desculpa as toneladas de perguntas  :P

MSXManiac

Citação de: galactus online 11 de Janeiro de 2011, 10:00
Já estou testando o kernel compilado com a opção march=nocona no BubleBee!
Tava batendo um lero com o HQX na madruga, e testando uma compilação que fiz com os seguintes ingredientes:
cpu E4700 (core2Duo)+3GbRAM
Linux Mint 10 Gnome+OpenBox
gcc 4.5.1
kernel 2.6.37 modificado com march=core2
patch do kolivas
config do hqx
Core2, low latency, performance,3000
Isso mesmo, não errei! é 3000 mesmo! ele abre até 10000, mas como já fiz isso antes e a coisa desgovernou...
eu ainda não botei o patch das 4 linhas por falta de tempo! Notei uma melhora na performance, mas verdade seja dita que em boa parte se deve ao OpenBox junto ao Gnome no lugar do metacity!
E se vc quer ter certeza que vai bombar o OpenBox, além de selecionar ele na tela de login para cada usuário (inclusive root se tiver habilitado o login gráfico pro root) vc pode usar o ubuntu-tweak! Não lembro direito pq to no trampo e aqui só rola RWinSlow, mas é logo depois das configs do menu de inicialização!
Faça isso para todos usuários! Rode ele também como root e altere o perfil do root colocando openbox onde diz metacity e clique em aplicar!
ASUSTek P5QPL-AM + Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz (Yorkfield) + 4 Gb RAM 800 MHz