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

