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

brottor

Citação de: maiconramones online 11 de Janeiro de 2011, 10:59
@brottor
O meu processador é dual core com 4 threads...

@galactus

Qual o mais parrudo Preempt, Server ou Low Latency?



Usa low latency com 300mhz... aqui no meu notebook ficou bem melhor q 1000mhz.

O low Latency joga novas ordens para o processador na mesma hora. Ele exige que o processador responda mais rápido, com o teu processador não vai criar gargalo.

Linux Professional Institute Certificated Level 2.
LPI000220827

Gunss


brottor

Voltei a usar o metacity... depois q mudei para 300mhz ele tá bem parecido (em velocidade) com o openbox... :-P
Linux Professional Institute Certificated Level 2.
LPI000220827

jartak

#3123
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}"?

Como que é feito isso?

Pelo que eu entendi, CXXFLAGS (aqui representado por HOSTCXXFLAGS), contém parâmetros passados para o compilador de linguagem C++, que por sua vez são os mesmos parâmetros passados para o compilador C, representado neste Makefile por HOSTCFLAGS.

Veja a descrição do CFLAGS:

Citar
CFLAGS e CXXFLAGS são ambas o nome de variáveis de ambiente ou variáveis do Makefile que são capazes de especificar switches adicionais a serem passados para um compilador no processo de compilação de software computacional.
Fonte: Wikipedia

Eu não sou programador C/C++, mas uma busca rápida no Google sobre Makefile mostra como funciona as declarações de variáveis em um pequeno programa exemplificado nesta página, segue o link:

http://pt.wikibooks.org/wiki/Programar_em_C/Makefiles#Definir_Vari.C3.A1veis

No início, nessa mesma página, ele enfatiza que o Makefile pode variar de um sistema para outro e que não há normalização. Isso é visível no próprio Makefile do Debian/Ubuntu, onde essas variáveis são acrescidas de HOST como prefixo.

Então, se eu tenho uma variável HOSTCFLAGS declarada e quero passar o valor dessa para uma outra variável, logo, HOSTCXXFLAGS=${HOSTCFLAGS}!

Talvez exista uma variável declarada em uma outra biblioteca que é exportada para o Makefile, e que por sua vez possa ser utilizada dentro do Makefile! Eu não sei bem ao certo, mas acredito que não. Por ora, nada que testes e a colocação de toda essa teoria seja colocada em prática!

Enquanto aos testes, e aí @galactus, como está se saindo? Eu quero também testar essas configurações, mas estou ainda em dúvida com relação a esses parâmetros e essas variáveis. :-\ ???
Debian Squeeze
Thinkpad Lenovo T400 - Core 2 Duo P8600

galactus

Citação de: Gunss online 11 de Janeiro de 2011, 11:37
@galactus pq não tenta os patchs para o .36?

Eu estava tão concentrado do lance do processador que nem me lembrei dos patchs para o .36!

Outra coisa, são muitas coisas para testar, daí acaba que eu posso ficar sem saber o que afetou mais o desempenho!

Mas agora eu vou tentar com os patchs do .36!

Depois de te mando e-mail!

jartak, o problema é exatamente esse! São muitas as variáveis, não encontrei nenhum programador em C e C++ que desenvolve o kernel para explicar melhor sobre isso tudo!
O que eu posso te dizer até agora é que dá diferença! No que ele exatamente altera dentro do MakeFile, só  os programadores vão explicar melhor! Por isso que eu disse antes, "uma possível solução"! 

Estou tentando obter resposta da fonte! Dos caras que desenvolvem essa bagaça!  Vamos ver se alguém responde!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

Citação de: galactus online 11 de Janeiro de 2011, 13:06
Citação de: Gunss online 11 de Janeiro de 2011, 11:37
@galactus pq não tenta os patchs para o .36?

Eu estava tão concentrado do lance do processador que nem me lembrei dos patchs para o .36!

Outra coisa, são muitas coisas para testar, daí acaba que eu posso ficar sem saber o que afetou mais o desempenho!

Mas agora eu vou tentar com os patchs do .36!

Depois de te mando e-mail!

jartak, o problema é exatamente esse! São muitas as variáveis, não encontrei nenhum programador em C e C++ que desenvolve o kernel para explicar melhor sobre isso tudo!
O que eu posso te dizer até agora é que dá diferença! No que ele exatamente altera dentro do MakeFile, só  os programadores vão explicar melhor! Por isso que eu disse antes, "uma possível solução"! 

Estou tentando obter resposta da fonte! Dos caras que desenvolvem essa bagaça!  Vamos ver se alguém responde!

você vai se surpreender com o UP que dá! Se quiser usa o BFS 0.363, no patch que te passei era o 0.357

Uso sistema 32bit porém percebi que existe a pasta lib64 na raiz e uma atualização de segurança apareceu pedindo para atualizar o libc6-amd64 e libc6-i686. Estranho o sistema 32bit ter bibliotecas 64bit  ???

brottor

Mudando de assunto.

Uma dúvida q tenho é qual a melhor forma de compactção, Não se se já perceberam, mas tem uma opção onde vc encontra:

gzip
bz2
Lzma
e outra q não lembro

qual garante melhor performance? ou isso não influencia?
Linux Professional Institute Certificated Level 2.
LPI000220827

Gunss

#3127
segui a idéia do galactus sobre mudar opções na compilação.

Dei uma lida em vários materiais, tentei entender mais o processo, porém sem entender boa parte do que os caras falam.
a unica mudança foi que usei.
-march=native

Deparei com um problema no driver ata_piix. Um controlador PATA já desatualizado que não havia desabilitado no kernel. CONFIG_OLDPIIX algo assim.

Apesar de não achar que conseguirei ver diferenças no comportamento principalmente por usar um sistema 32bit vamos ver no que dá.

Ah, sim, estou usando o GCC padrão do 10.04 o 4.4.3


Stivekx

Citação de: maiconramones online 11 de Janeiro de 2011, 09:22
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?

Você pode conseguir em 15s~

Stivekx

Tá e como eu vou saber qual a melhor latencia pro processador?
Tem alguma lista de recomendações ou é só ir chutando?
300mhz e 1000mhz são as unicas opçoes? hm1

brottor

Citação de: Stivekx online 12 de Janeiro de 2011, 05:23
Tá e como eu vou saber qual a melhor latencia pro processador?
Tem alguma lista de recomendações ou é só ir chutando?
300mhz e 1000mhz são as unicas opçoes? hm1


Não é na base do chutometro... tem mais opções, mas são menores, acho q vc deveria tentar tanto com 1000mhz e depois com 300mhz e ver a diferença. Aqui no meu 300mhz ficou bem melhor q 1000mhz.
Linux Professional Institute Certificated Level 2.
LPI000220827

galactus

Senhores, vocês querem a boa notícia ou a má notícia primeiro? É sobre o lance da arquitetura do processador no MakeFile do Kernel!

Vou começar pela boa!

Posso dizer que é oficial! É totalmente possível otimizar o MakeFile do kernel para à arquitetura específica do seu processador com os Flags do GCC!

Achei documentação da Red Hat que fala disso! É antiga mas está lá!

A parte boa acaba aqui! :)


A má notícia?

É preciso alterar não só o HOSTCFLAGS, como também o HOSTCC, CC e o CFLAGS!

Infelizmente acredito que esbarramos num osso duro de roer!  Sem conhecimentos de programação em C e C++ fica impossível para usuários finais tentar alterar isso tudo!  E na documentação deixa claro que essas alterações são agressivas e podem ou não funcionar no seu kernel! Nem vou falar da versão do GCC que vocês já tem uma idéia de dimensão da coisa toda!

Para quem quiser começar a descascar este abacaxi:

http://www.faqs.org/docs/securing/index.html

Pra ser mais direto, leiam o capítulo 7: http://www.faqs.org/docs/securing/secopt-kernel.html

Basicamente é o mesmo de sempre, usam opções seguras que eles sabem que vão funcionar por não saberem o processador que o usuário tem, em detrimento do desempenho!  Então se você sabe como e onde alterar o MakeFile, você pode fazer a festa! Um cara da lista do GCC me respondeu me fazendo mais perguntas do que trazendo respostas!!! É soda!   São muitas variáveis!


Nos testes "caseiros" aqui do BubleBee e do i7 o que posso dizer em linhas gerais é que dá diferença sim!  Usando nocona só no HOSTFLAGS do Make File do Kernel para o BubleBee, ficou um lixo! Vou tentar outra coisa! Mas no final das contas, colocar patchs e acertar o processador do menuconfig é mais negócio!

Sugestões?

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

vampire_thunder

Rapazes, vocês "tão que tão". Fico um dia fora e tem quase 3 páginas para ler. Nem sei o que é "BubleBee", por exemplo, e até no makefile vcs já estão mexendo  :o

Não consegui mesmo instalar o gcc-4.5 no lucid. Dava aquele erro do patch. Baixei o source no maverick depois compilei no lucid e deu erro bem no meio da compilação (já estava até ficando feliz). Por último tentei o apt-build e esse se recusou a instalar. A única coisa que fez foi baixar o source.
Acho que não tem jeito mesmo.

Gunss

@galactus tava fácil demais, num acha não? Olhando o Makefile existem muitas variáveis. É opção que não acaba mais, e fazer tudo isso no Ubuntu é suicídio.

@vampire legal a empolgação de todos né? Uma pena você não ter conseguido compilar o GCC 4.5 no lucid. Mas ontem eu fui ler sobre a compilação do GCC e precisa de muitas libs mais novas que o lucid não oferece, e no final agente acabava por compilar quase um sistema novo.

macabu

Desculpa a pergunta de anta minha, estou muito tempo fora.
Esse patch + config pode ser usado em kerneis novos?
Posso usar patch omnislash + outra config ou outro patch + config omnislash que não terei problemas?
Abç