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

Ricardo_Branco

Bom... vamos ver... Galactus, não faltou um g (de gcc) no comando 1? (como coloquei abaixo não deu...)
1)
Citar$cc -march=native -E -v - </dev/null 2>&1 | grep cc1

Saída:
Citargcc -march=native -E -v - </dev/null 2>&1 | grep cc1
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -E -quiet -v - -march=pentium4 --param l1-cache-size=8 --param l1-cache-line-size=64 --param l2-cache-size=128 -mtune=pentium4

2)
Citarecho "int main() { return 0; }" | gcc -march=core2 -v -Q -x c - 2>&1

Saída:
Citarecho "int main() { return 0; }" | gcc -march=core2 -v -Q -x c - 2>&1
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.2/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ./configure --enable-languages=c,c++ --enable-threads=posix --with-arch-32=i686 --disable-libpchstdcxx --enable-shared --with-system-zlib --enable-nls --enable-clocale=gnu --enable-checking=release
Thread model: posix
gcc version 4.5.2 (GCC)
COLLECT_GCC_OPTIONS='-march=core2' '-v' '-Q'
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.2/cc1 -v - -dumpbase - -march=core2 -auxbase - -version -o /tmp/ccduNyi0.s
GNU C (GCC) version 4.5.2 (i686-pc-linux-gnu)
   compiled by GNU C version 4.5.2, GMP version 4.3.2, MPFR version 3.0.0-p8, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/include
/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/include-fixed
/usr/include
End of search list.
GNU C (GCC) version 4.5.2 (i686-pc-linux-gnu)
   compiled by GNU C version 4.5.2, GMP version 4.3.2, MPFR version 3.0.0-p8, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
options passed:  -v - -march=core2
options enabled:  -falign-loops -fargument-alias -fauto-inc-dec
-fbranch-count-reg -fcommon -fdelete-null-pointer-checks -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
-fpcc-struct-return -fpeephole -fsched-critical-path-heuristic
-fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock
-fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec
-fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fshow-column
-fsigned-zeros -fsplit-ivs-in-unroller -ftrapping-math -ftree-cselim
-ftree-forwprop -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
-ftree-parallelize-loops= -ftree-phiprop -ftree-pta -ftree-reassoc
-ftree-scev-cprop -ftree-slp-vectorize -ftree-vect-loop-version
-funit-at-a-time -fvar-tracking -fvar-tracking-assignments
-fvect-cost-model -fzero-initialized-in-bss -m32 -m80387
-m96bit-long-double -maccumulate-outgoing-args -malign-stringops -mcx16
-mfancy-math-387 -mfp-ret-in-387 -mfused-madd -mglibc -mieee-fp -mmmx
-mno-red-zone -mno-sse4 -mpush-args -msahf -msse -msse2 -msse3 -mssse3
-mtls-direct-seg-refs
Compiler executable checksum: 1ffa7048ecffe846287aa0057b08e64b
main
Analyzing compilation unit
Performing interprocedural optimizations
<*free_lang_data> <visibility> <early_local_cleanups> <whole-program> <inline>Assembling functions:
main
Execution times (seconds)
parser                :   0.01 (33%) usr   0.00 ( 0%) sys   0.01 (17%) wall     193 kB (25%) ggc
expand                :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 (17%) wall       2 kB ( 0%) ggc
integrated RA         :   0.01 (33%) usr   0.00 ( 0%) sys   0.00 ( 0%) wall       0 kB ( 0%) ggc
final                 :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 (17%) wall       0 kB ( 0%) ggc
TOTAL                 :   0.03             0.00             0.06                775 kB
COLLECT_GCC_OPTIONS='-march=core2' '-v' '-Q'
as -V -Qy --32 -o /tmp/cc9XLGI0.o /tmp/ccduNyi0.s
GNU assembler version 2.20.1 (i486-linux-gnu) using BFD version (GNU Binutils for Debian) 2.20.1-system.20100303
COMPILER_PATH=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.2/:/usr/local/libexec/gcc/i686-pc-linux-gnu/:/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/:/usr/local/lib/gcc/i686-pc-linux-gnu/
LIBRARY_PATH=/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/:/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-march=core2' '-v' '-Q'
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.5.2/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/crtbegin.o -L/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2 -L/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/../../.. /tmp/cc9XLGI0.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/local/lib/gcc/i686-pc-linux-gnu/4.5.2/crtend.o /usr/lib/crtn.o
.
.
Como deveria ser minha linha de comando?

vampire_thunder

Sobre taxa de transferência, ontem aconteceu algo impressionante, e eu resolvi gravar:

http://forum.lineduc.ctics.sigeduc.info/download/taxa.avi


Quando comecei já estava em 14MB/s, mas iniciou com 6. Reparem que é crescente. Eu estava transferindo um grande volume de dados de dois HDs SATA plugados em portas USB (duas cases), ao mesmo tempo que eu fazia uma remasterização (parte superior) e convertia uma sequência de imagens em vídeos, com efeitos (lateral direita).


Agora vou ler o mega-post do Galactus  ;D

Gunss

@Galactus, juro como me perdi no seu post  ;D
O que eu preciso adicionar no makefile?

@vampire Uma pergunta, no seu kernel que esta no repositorio você usa -march=native?

galactus

#3468
Citação de: Ricardo_Branco online 01 de Março de 2011, 12:36
Bom... vamos ver... Galactus, não faltou um g (de gcc) no comando 1? (como coloquei abaixo não deu...)

Como deveria ser minha linha de comando?


O comando está correto!


Seu sistema é 32 ou 64bits?

Linha do CFLAGs para 64bits:

CitarCFLAGS="-O2 -pipe -march=native --param l1-cache-size=8 --param l1-cache-line-size=64 --param l2-cache-size=128 -mtune=pentium4"

Edit: Agora que eu vi que é 32bits!  ;D

Fica assim:
CitarCFLAGS="-O2 -pipe -fomit-frame-pointer -march=native --param l1-cache-size=8 --param l1-cache-line-size=64 --param l2-cache-size=128 -mtune=pentium4"


Isso porque você está usando o GCC 4.5.2 que supostamente não sofre desce BUG!

Vocês podem ler a vontade:

http://en.gentoo-wiki.com/wiki/Safe_Cflags

http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS

http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel

http://gcc.gnu.org/PR45483#c3

Edit2:  Muito importante!  Você só deve conseguir usar esse Kernel com essa versão do GCC!  A 4.5.2! 
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

galactus

Citação de: Gunss online 01 de Março de 2011, 13:36
@Galactus, juro como me perdi no seu post  ;D
O que eu preciso adicionar no makefile?

@vampire Uma pergunta, no seu kernel que esta no repositorio você usa -march=native?

Onde você se perdeu meu fio?  ;D

Olha outro exemplo no caso do Ricardo Branco!

O vampire usa -mtune=generic, quanto ao march eu não sei!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

vampire_thunder

Eu uso -march e -mtune=native

Também não entendi muito o que terei de fazer, mas vou ler com mais calma depois.

Gunss

Lendo isso daqui à um dos link que o Galactus postou
http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS

eu entendi =) Me senti meio jegue até mesmo pelo modo como o cara do Gentoo explica (Ta-da). Mas o importante é que eu peguei a ideia.
Vou tentar fazer isso essa semana, quando as provas passarem =)


Valeu Galactus!!!!!

galactus

Citação de: Gunss online 01 de Março de 2011, 14:02
Lendo isso daqui à um dos link que o Galactus postou
http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS

eu entendi =) Me senti meio jegue até mesmo pelo modo como o cara do Gentoo explica (Ta-da). Mas o importante é que eu peguei a ideia.
Vou tentar fazer isso essa semana, quando as provas passarem =)


Valeu Galactus!!!!!

Huahuahuahuha

Meio jegue!  hauhauhauha

O cara do Gentoo é soda mesmo!  Ta-da!!! 

É como se ele te desce uma chamada: "Não é óbvio seu besta?!"   ;D ;D ;D
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

Citação de: galactus online 01 de Março de 2011, 14:05
Citação de: Gunss online 01 de Março de 2011, 14:02
Lendo isso daqui à um dos link que o Galactus postou
http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS

eu entendi =) Me senti meio jegue até mesmo pelo modo como o cara do Gentoo explica (Ta-da). Mas o importante é que eu peguei a ideia.
Vou tentar fazer isso essa semana, quando as provas passarem =)


Valeu Galactus!!!!!

Huahuahuahuha

Meio jegue!  hauhauhauha

O cara do Gentoo é soda mesmo!  Ta-da!!! 

É como se ele te desce uma chamada: "Não é óbvio seu besta?!"   ;D ;D ;D

Exatamente!!! ahUHAUH


Minhas CFLAGS!
CFLAGS="-O2 -pipe -march=core2 -msse4.1 --param l1-cache-size=32 --param
l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=generic

uso um core 2 duo.
Mas quem usa o GCC 4.5.2 nem precisa se preocupar com isso né?

galactus

Citação de: Gunss online 01 de Março de 2011, 14:11
Citação de: galactus online 01 de Março de 2011, 14:05
Citação de: Gunss online 01 de Março de 2011, 14:02
Lendo isso daqui à um dos link que o Galactus postou
http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS

eu entendi =) Me senti meio jegue até mesmo pelo modo como o cara do Gentoo explica (Ta-da). Mas o importante é que eu peguei a ideia.
Vou tentar fazer isso essa semana, quando as provas passarem =)


Valeu Galactus!!!!!

Huahuahuahuha

Meio jegue!  hauhauhauha

O cara do Gentoo é soda mesmo!  Ta-da!!! 

É como se ele te desce uma chamada: "Não é óbvio seu besta?!"   ;D ;D ;D

Exatamente!!! ahUHAUH


Minhas CFLAGS!
CFLAGS="-O2 -pipe -march=core2 -msse4.1 --param l1-cache-size=32 --param
l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=generic

uso um core 2 duo.
Mas quem usa o GCC 4.5.2 nem precisa se preocupar com isso né?

O march fica em native!  o mtune é que não muda se uasr o GCC 4.5.2!
Se o seu sistema for 32bits tem que acrescentar o -fomit-frame-pointer depois do -pipe!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Gunss

Citação de: galactus online 01 de Março de 2011, 14:22
Citação de: Gunss online 01 de Março de 2011, 14:11
Citação de: galactus online 01 de Março de 2011, 14:05
Citação de: Gunss online 01 de Março de 2011, 14:02
Lendo isso daqui à um dos link que o Galactus postou
http://en.gentoo-wiki.com/wiki/Hardware_CFLAGS

eu entendi =) Me senti meio jegue até mesmo pelo modo como o cara do Gentoo explica (Ta-da). Mas o importante é que eu peguei a ideia.
Vou tentar fazer isso essa semana, quando as provas passarem =)


Valeu Galactus!!!!!

Huahuahuahuha

Meio jegue!  hauhauhauha

O cara do Gentoo é soda mesmo!  Ta-da!!! 

É como se ele te desce uma chamada: "Não é óbvio seu besta?!"   ;D ;D ;D

Exatamente!!! ahUHAUH


Minhas CFLAGS!
CFLAGS="-O2 -pipe -march=core2 -msse4.1 --param l1-cache-size=32 --param
l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=generic

uso um core 2 duo.
Mas quem usa o GCC 4.5.2 nem precisa se preocupar com isso né?

O march fica em native!  o mtune é que não muda se uasr o GCC 4.5.2!
Se o seu sistema for 32bits tem que acrescentar o -fomit-frame-pointer depois do -pipe!

no teu i7 tem que adicionar o -msse4.2 também né?

Ricardo_Branco

Tá-dã.. rs....

Mas vou passar estas flags na hora de compilar né?

estava fazendo assim nas minhas compilações: (depois que chegar em casa vou mudar para o que o galactus me ajudou...)

CitarCFLAGS="-O2 -pipe -march=pentium4 -mtune=pentium4" CXXFLAGS={$CFLAGS} ./configure ou make

Continuo usando na hora do comando? Devo colocar em algum arquivo? (tentei colocar no bashrc eu acho... mas quando colocava ps aux |grep gcc não aparecia)

Até mais.

Gunss

Citação de: Ricardo_Branco online 01 de Março de 2011, 16:49
Tá-dã.. rs....

Mas vou passar estas flags na hora de compilar né?

estava fazendo assim nas minhas compilações: (depois que chegar em casa vou mudar para o que o galactus me ajudou...)

CitarCFLAGS="-O2 -pipe -march=pentium4 -mtune=pentium4" CXXFLAGS={$CFLAGS} ./configure ou make

Continuo usando na hora do comando? Devo colocar em algum arquivo? (tentei colocar no bashrc eu acho... mas quando colocava ps aux |grep gcc não aparecia)

Até mais.

o código fica -march=native e -mtune=generic
E isso você coloca no arquivo Makefile dentro da pasta do kernel 2.6.xy


ah, como é esse lance de colocar no .bashrc???? Qualquer programa que for compilar ele vai usar essas flags colocando ai?


Ricardo_Branco

Citação de: Gunss online 01 de Março de 2011, 17:12
Citação de: Ricardo_Branco online 01 de Março de 2011, 16:49
Tá-dã.. rs....

Mas vou passar estas flags na hora de compilar né?

estava fazendo assim nas minhas compilações: (depois que chegar em casa vou mudar para o que o galactus me ajudou...)

CitarCFLAGS="-O2 -pipe -march=pentium4 -mtune=pentium4" CXXFLAGS={$CFLAGS} ./configure ou make

Continuo usando na hora do comando? Devo colocar em algum arquivo? (tentei colocar no bashrc eu acho... mas quando colocava ps aux |grep gcc não aparecia)

Até mais.

o código fica -march=native e -mtune=generic
E isso você coloca no arquivo Makefile dentro da pasta do kernel 2.6.xy

ah, como é esse lance de colocar no .bashrc???? Qualquer programa que for compilar ele vai usar essas flags colocando ai?

Então Gunss... lí que era para isso acontecer... mas testei e nao apareceu na saída do ps aux...

A mesma coisa acontece no apt-build... Ele compila sem flag nenhuma... por isso coloquei naquele outro post... (o do apt-build). Até achei um forum que o cara metia o pau no apt-build... que era mentira e tal...

Vamos dar mais uma pesquisada e ver se rola... facilitaria bastante né?

Ricardo_Branco

Gunss... acho que com esses nossos pcs low end vamos precisar aprender mais sobre o kernel...

Vou tentar uma nova compilação do kernel e estava lendo sobre RAID... no menuconfig tem em Device Drivers uma opção chamada
CitarMultiple devices driver support (RAID and LVM)
e dentro dela opções sobre o RAID.

Como não sei muito sobre nada.... www.google.com.br/linux achei:

Citarhttp://www.aprigiosimoes.com.br/2009/08/02/raid-no-linux/

RAID 0 é utilizado restritamente para aprimorar o desempenho. Ele utiliza duas ou mais unidades IGUAIS de acesso para reduzir os tempos de gravação no disco e dispositivo de raid.

Este tópico na verdade fala em como fazer "RAID por sofwtare no Linux com o mdadm"

No .config do kernel que estou usando (peguei dentro da pasta arch do meu kernel) não estava marcando nada...

Não sei se pode ajudar... de repente alguém aqui do fórum mesmo possa tirar nossa dúvida.