opa,

>
> Uma das coisas que eu j� achei foi isto, esqueci de incluir no e-mail
> antes.
>
> http://www.ussg.iu.edu/hypermail/linux/kernel/0005.3/0105.html

o grande problema a� � que o compilador � gen�rico, n�o sabe exatamente o que 
tu quer fazer, e o kernel � feito
por gente que lida com um problema em espec�fico.

os resultados tamb�m podem variar muito.  -O3 costuma gerar c�digo com 
otimiza��es bastante agressivas, mas que
nem sempre resultam em mais velocidades, pq pode acabar gerando problemas como 
cache trashing, j� que O3 gera
um binario maior, inclusive por tentar alinhar tudo, criando buracos pelo 
codigo.  em maquinas bem novas e
rapidas, isso nao chega a ser problema grave.

uma coisa que estou vendo � se vale a pena usar -Os, que � basicamente um -O2 
sem as otimiza��es que
aumentariam o tamanho do binario, e outras especificas para reducao do binario 
gerado.

em uma m�quina modesta (celeron 300MHz, pouca cache, 96RAM), recompilei muita 
coisa (xorg, gtk, glib, mozilla,
...) tudo com -Os.  o que foi compilado ficou um pouco menor, mas a execu��o 
ficou mais "macia" e especialmente
o tempo de carga caiu, especialmente no mozilla.

>
> Em Sex 25 Mar 2005 21:02, voc� escreveu:
> > Eu percebi que todo os m�dulos e recursos built-in do kernel s�o
> > compilados com -O2 -fomit-frame-pointer, pesquisei agora a pouco no
> > google se algu�m j� tinha habilitado o n�vel m�ximo de optimiza��o
> > (-O3) e percebi que v�rias refern�ncias dizem que n�o � poss�vel
> > compilar o kernel do Linux com este n�vel (eu consegui fazer isso com
> > os pavorosos glibc, gcc e binutils, incluindo otimiza��o de CPU
> > -march, -mtune, etc).

poss�vel sempre �, mas o compilador *pode* gerar c�digo problem�tico com O3, 
que pode acabar disparando algum
bug que o processador tenha, ou mesmo gerando c�digo bin�rio tosco, com erro 
mesmo.  s�o situa��es muito
complicadas de se reproduzir, por sinal.

> >
> > Isso procede mesmo?
> > Tem algo a ver com o kernel estar em formato de setor de boot em vez
> > de elf?

n�o, pq um arquivo elf � especial para o kernel, pq tem um cabe�alho de 
prepara��o para execu��o.  o kernel
prepara o ambiente que o arquivo precisa (area de dados, texto e bss) e ent�o 
coloca o processador na �rea de
texto para executar.

o arquivo do kernel nao � no mesmo estilo do elf, pq sen�o n�o funcionaria.  
mas o c�digo bin�rio (instru��es
para o processador) s�o do mesmo tipo nos 2 arquivos.  afinal, o kernel � um 
programa como qualquer outro, s� �
iniciado de forma diferente.

> >
> > Se algu�m tiver um site ou refer�ncia que explique porque ficaria
> > agradecido.

na lista de discuss�o do gcc tu sempre encontra opini�es sobre isso.  tem de 
todos os tipos, vale a pena ler
todas (ou pelo menos v�rias) antes de decidir recompilar tudo com um ou outro 
grupo de flags.

o problema � que isso ainda n�o � ci�ncia exata, ent�o � muito dif�cil prever 
se vai ficar melhor ou pior com
um ou outro grupo de otimiza��o.  tu vai ter que experimentar, at� pra tirar as 
pr�prias conclus�es.

--
Ricardo Nabinger Sanchez


--
GUS-BR - Grupo de Usuarios Slackware - BR
http://www.slackwarebrasil.org/
http://www.linuxmag.com.br/mailman/listinfo/slack-users

Responder a