View previous topic :: View next topic |
Author |
Message |
MaTz Apprentice
Joined: 28 Aug 2005 Posts: 166 Location: Genova (IT)
|
Posted: Sun Aug 28, 2005 5:58 pm Post subject: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio X) |
|
|
Ciao sono nuovo del forum, non ho mai postato ma ne ho sempre fatto uso per risolvere tutti i miei problemi.
Vorrei porvi 2 domande il primo riguardante le ottimizzazioni delle CFLAGS e l'altra su uno scriptino bash che utilizzero con LIRCD.
Iniziamo dalla prima:
Posseggo questa CPU:
Code: |
rocessor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 3
model name : Intel(R) Pentium(R) 4 CPU 3.20GHz
stepping : 3
cpu MHz : 3199.514
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni monitor ds_cpl cid
bogomips : 6324.22
|
Intel P4 3200 HyperTreading
Vorrei ottimizzare il + possibile (senza eccede e rischiare l'effetto contrario), leggendo un po queste forse sono le migliori (potrei provare -03) e abilitando anche nel kernel il supporto all' HT.
Code: |
CFLAGS="-O2 -march=pentium4 -ftracer -pipe -mmmx -msse2 -fomit-frame-pointer -mfpmath=sse "
| [/quote]
Vi sembrano corrette?
Consigli?
Passiamo ora al mio secondo problema:
Ho X configurato in modo da avere 2 monitor in modalità twinview poiche' non posso avere anche il TV-OUT abilitato contemporaneamente al Dual monitor ho deciso di fare uno scriptino tale da permettere lo switch (script che verra poi lanciato da lircd).
Ho pensato di realizzare lo script in questo modo:
file esterno in cui scrivo la modalità in cui sto operando (o DUAL o TV-OUT)
in base alla variabile (scritta sul file) sostituisco la giusta configurazione a xorg.conf.
Qui si presentava un problema per andare a scrivere il file /etc/X11/xorg.conf ho bisogno di avere i permessi di root per ovviare al problema ho scritto questo nella configurazione di /etc/sudoers
Code: |
matz ALL=(root) NOPASSWD: /bin/cp
|
in modo da poter richiamere il comando cp con permessi di Root senza pass.
Dopo aver fatto questa operazione killo il server grafico poiche' non uso greeter e quindi non posso avere una soluzione del tipo /etc/init.d/xxx restart sono costretto a fare un killall X e poi rieseguirlo tramite startx
questo e' il codice:
Code: |
#!/bin/bash
## OGNI VOLTA CHE VIENE ESEGUITO DA ROOT
## SWITCH DUAL-MONITOR A TV-OUT RIAVVIANDO IL SERVER
## E CAMBIANDO LA VARIABILE NEL $LOC
LOC="/home/matz/prova"
VAR=`cat $LOC`
case $VAR in
TV-OUT)
sudo cp /etc/X11/xorg.conf-FUNZ-DUAL /etc/X11/xorg.conf
echo DUALMON > $LOC
;;
DUALMON)
sudo cp /etc/X11/xorg.conf-FUNZ-TV-MONO /etc/X11/xorg.conf
echo TV-OUT > $LOC
;;
*)
## SIAMO IN UNA SITUAZIONE DI ERRORE E STOPPARE
exit
;;
esac
### RESTO DEL CODICE
killall X;startx
|
non funziona perche nel momento in cui arriva a killall X uccide tutti i figli del processo compreso lo script stesso e quindi non arrivo allo startx ...
fa tutto quello che deve fare a meno di far partire "startx".
Come posso risolvere?
come posso migliorare la parte relativa al sudo ?
Consigli ? Grazie
Last edited by MaTz on Sun Aug 28, 2005 6:38 pm; edited 1 time in total |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Sun Aug 28, 2005 6:26 pm Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
due note sulle CFLAGS.
march=prescott non esiste. cambialo in march=pentium4
mfpmath=sse,387 è sbagliato. ti consiglio si usare solo mfpmath=sse
se dovessi avere dei dubbi su queste cose fai riferimento alla guida di gcc |
|
Back to top |
|
|
MaTz Apprentice
Joined: 28 Aug 2005 Posts: 166 Location: Genova (IT)
|
Posted: Sun Aug 28, 2005 6:36 pm Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
k.gothmog wrote: | due note sulle CFLAGS.
march=prescott non esiste. cambialo in march=pentium4
mfpmath=sse,387 è sbagliato. ti consiglio si usare solo mfpmath=sse
se dovessi avere dei dubbi su queste cose fai riferimento alla guida di gcc |
Ok ti ringrazio intanto lo modifico nel 1° post. |
|
Back to top |
|
|
Dr.Dran l33t
Joined: 08 Oct 2004 Posts: 766 Location: Imola - Italy
|
Posted: Sun Aug 28, 2005 9:02 pm Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
MaTz wrote: |
CFLAGS="-O2 -march=pentium4 -ftracer -pipe -mmmx -msse2 -fomit-frame-pointer -mfpmath=sse "
|
Io ti posso suggerire le seguenti CFLAGS anche perchè le opzioni che hai messo sono già implicite nell'opzione -march=pentium4, per mia esperienza ti posso suggerire le seguenti cflags che ti garantiscono un stema stabile e abbastanza reattivo
Code: | CFLAGS=-O2 -march=athlon-mp -fomit-frame-pointer -momit-leaf-frame-pointer -fno-ident -pipe |
Per ulteriori delucidazioni sul significato di ogni opzione chiedi pure
Ciauz _________________ :: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group] |
|
Back to top |
|
|
thewally l33t
Joined: 12 May 2005 Posts: 703 Location: Genova
|
Posted: Mon Aug 29, 2005 2:52 am Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
MaTz wrote: |
Passiamo ora al mio secondo problema:
Ho X configurato in modo da avere 2 monitor in modalità twinview poiche' non posso avere anche il TV-OUT abilitato contemporaneamente al Dual monitor ho deciso di fare uno scriptino tale da permettere lo switch (script che verra poi lanciato da lircd).
Ho pensato di realizzare lo script in questo modo:
file esterno in cui scrivo la modalità in cui sto operando (o DUAL o TV-OUT)
in base alla variabile (scritta sul file) sostituisco la giusta configurazione a xorg.conf.
Qui si presentava un problema per andare a scrivere il file /etc/X11/xorg.conf ho bisogno di avere i permessi di root per ovviare al problema ho scritto questo nella configurazione di /etc/sudoers
Code: |
matz ALL=(root) NOPASSWD: /bin/cp
|
in modo da poter richiamere il comando cp con permessi di Root senza pass.
|
Io ti suggerisco, invece, di utilizzare il comando ln, creando due file separati e linkandoli (alternatamente) ad xorg.conf. Credo che ln possa fare meno danni di cp (una volta dato in mano a sudo).....
MaTz wrote: |
Dopo aver fatto questa operazione killo il server grafico poiche' non uso greeter e quindi non posso avere una soluzione del tipo /etc/init.d/xxx restart sono costretto a fare un killall X e poi rieseguirlo tramite startx
|
Sarebbe meglio non ricorrere all kill. Converrebbe di piu' chiudere il DE in modo _leggermente_ più pulito KDE, ad esempio, non sopporta molto chi lo tratta in questo modo...
Penserò ad una soluzione per la morte dei figli ...
Ciao
P.S. : Non per fare il rompi-glioni, ma credo che si abituale creare un topic per ogni singolo problema. |
|
Back to top |
|
|
MaTz Apprentice
Joined: 28 Aug 2005 Posts: 166 Location: Genova (IT)
|
Posted: Mon Aug 29, 2005 7:02 am Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
DranXXX wrote: |
Code: | CFLAGS=-O2 -march=athlon-mp -fomit-frame-pointer -momit-leaf-frame-pointer -fno-ident -pipe |
|
Ti ringrazio e' già che ci sono ti chiedo 2 delucidazioni:
-momit-leaf-frame-pointer
Don't keep the frame pointer in a register for leaf functions.
This avoids the instructions to save, set up and restore frame
pointers and makes an extra register available in leaf functions.
The option -fomit-frame-pointer removes the frame pointer for all
functions which might make debugging harder.
mmm non ho capito molto la sua funzionalità non e' che in 2 parole me la spieghi. stessa cosa vale anche per -fno-ident.
Altra cosa spulciando ho trovato:
-funroll-loops
Unroll loops whose number of iterations can be determined at com-
pile time or upon entry to the loop. -funroll-loops implies both
-fstrength-reduce and -frerun-cse-after-loop. This option makes
code larger, and may or may not make it run faster.
e' utile o no secondo te, scusami un attimo ma srotolando i cicli (determinati) non dovrei avere maggiorni prestazioni(dal punto di vista velocistico)?
ultima cosa (abusando della tua gentilezza) non esistono flags per gcc per i smp o e' una cosa che viene gestita a monte dal kernel e quindi è inutile?
Grazie |
|
Back to top |
|
|
MaTz Apprentice
Joined: 28 Aug 2005 Posts: 166 Location: Genova (IT)
|
Posted: Mon Aug 29, 2005 7:10 am Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
thewally wrote: |
Io ti suggerisco, invece, di utilizzare il comando ln, creando due file separati e linkandoli (alternatamente) ad xorg.conf. Credo che ln possa fare meno danni di cp (una volta dato in mano a sudo).....
|
la soluzione del sudo e' cmq una brutta soluzione.
mi e' anche venuto in mente di creare un gruppo "xconf" e settare i 3 file con chown :xconf xorg.conf*
e poi inserire nel gruppo gli utenti che voglio
come ti pare? forse e' una soluzione + pulita?
thewally wrote: |
Sarebbe meglio non ricorrere all kill. Converrebbe di piu' chiudere il DE in modo _leggermente_ più pulito KDE, ad esempio, non sopporta molto chi lo tratta in questo modo...
Penserò ad una soluzione per la morte dei figli ...
|
effettivamente e' una soluzione brutale ma non saprei come fare altrimenti con fluxbox
thewally wrote: |
P.S. : Non per fare il rompi-glioni, ma credo che si abituale creare un topic per ogni singolo problema. |
hai ragione cosi' diventa un casino perche' e' tutto frammentato |
|
Back to top |
|
|
randomaze Bodhisattva
Joined: 21 Oct 2003 Posts: 9985
|
Posted: Mon Aug 29, 2005 8:00 am Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
MaTz wrote: | la soluzione del sudo e' cmq una brutta soluzione. |
La soluzione del sudo non sarebbe così brutta se invece di dare i poteri sul comando cp li dessi allo script che fa lo switch della configurazione
Peraltro condivido la proposta del link simbolico... io solitamente faccio così
Quote: | mi e' anche venuto in mente di creare un gruppo "xconf" e settare i 3 file con chown :xconf xorg.conf*
e poi inserire nel gruppo gli utenti che voglio |
al limite senza stare a creare un nuovo gruppo puoi usare wheel.
La questione del kill non la ho capita
BTW, ha ragione thewally nel sottolineare che tue problemi stanno meglio su due topic distinti _________________ Ciao da me! |
|
Back to top |
|
|
Dr.Dran l33t
Joined: 08 Oct 2004 Posts: 766 Location: Imola - Italy
|
Posted: Mon Aug 29, 2005 9:47 pm Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
MaTz wrote: |
Ti ringrazio e' già che ci sono ti chiedo 2 delucidazioni
|
Ciao! Chiedi pure tutto quello che vuoi se ho 5 minuti te lo spiego
-fomit-frame-pointer
-momit-leaf-frame-pointer
In soldoni servono per evitare che il sorgente venga compilato utilizzando dei frame-pointer o dei leaf-frame-pointer, cioè operazioni che richiedono l'utilizza di molti registri della CPU, con questa ottimizzazioni il codice è + performante, magari non è snello... ma viene eseguito velocemente, l'unico problema che un tipo di ottimizzazione rende il debug del codice molto difficoltoso su alcune architetture come ad esempio la x86 e quindi per default non viene abilitato.
-fno-ident
Evita che il codice venda identato, cioè la funzione è similare allo strip, cioè non vengono inseriti nel codice compilato identazioni (label o simili)
MaTz wrote: |
Altra cosa spulciando ho trovato:
-funroll-loops
Unroll loops whose number of iterations can be determined at com-
pile time or upon entry to the loop. -funroll-loops implies both
-fstrength-reduce and -frerun-cse-after-loop. This option makes
code larger, and may or may not make it run faster.
e' utile o no secondo te, scusami un attimo ma srotolando i cicli (determinati) non dovrei avere maggiorni prestazioni(dal punto di vista velocistico)?
|
M... non è sempre vero in generale rischi di fare eseguibili + pesanti e instabili, fai conto che il compilatore mediante algoritmi stabilisce quale codice è da "srotolare" e quale no, quindi ne ricavi una compilazione + lunga per ottenere un eseguibile non troppo + performante di un'altro.
MaTz wrote: |
ultima cosa (abusando della tua gentilezza) non esistono flags per gcc per i smp o e' una cosa che viene gestita a monte dal kernel e quindi è inutile? |
Non ti preoccupare non abusi affatto di me beh si diciamo che specificatamente è il kernel che gestische le ottimizzazioni per i biproc, l'unica cosa che potresti fare per una ulteriore ottimizzazione sarebbe questa, se hai dei biprocessori come athlon-mp, pentium-III/II o Pro potresti ottimizzare il codice con il parametro -Os anzichè -O2 per il semplice fatto che essendo processori ce hanno cache L2 piccole massimi 512K x un Athlon-MP e quindi eseguibili un pò + piccoli vengono sensibilmente eseguiti un pò + velocemente... ma comunque le differenze non sono molte... X tutti gli altri processori l'opzione -O2 va + che bene, poi la differenza tra -O2 e -O3 è poca e in alcuni casi la -O3 fa fallire alcune compilazioni di alcuni software...
Concludendo i CFLAGS che ti ho dato possono creare una distro Gentoo stabile e performante, mi raccomando non ti fare prendere la mano dalla mania delle ottimizzazioni estreme, soprattutto non utilizzare le LDFLAGS, generi codice instabile, e ogni programma ha le sue e quindi tu andresti a modificarne le impostazioni di base inoltre l'pziona --as-needed di LDFLAGS dove è ritenuta stabile è già inserita nell'ebuild
Spero di non essere stato troppo prolisso e incasinato _________________ :: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group] |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Mon Aug 29, 2005 11:44 pm Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio |
|
|
MaTz wrote: |
ultima cosa (abusando della tua gentilezza) non esistono flags per gcc per i smp o e' una cosa che viene gestita a monte dal kernel e quindi è inutile? |
DranXXX wrote: | Non ti preoccupare non abusi affatto di me beh si diciamo che specificatamente è il kernel che gestische le ottimizzazioni per i biproc, l'unica cosa che potresti fare per una ulteriore ottimizzazione sarebbe questa, se hai dei biprocessori come athlon-mp, pentium-III/II o Pro potresti ottimizzare il codice con il parametro -Os anzichè -O2 per il semplice fatto che essendo processori ce hanno cache L2 piccole massimi 512K x un Athlon-MP e quindi eseguibili un pò + piccoli vengono sensibilmente eseguiti un pò + velocemente... ma comunque le differenze non sono molte... X tutti gli altri processori l'opzione -O2 va + che bene, poi la differenza tra -O2 e -O3 è poca e in alcuni casi la -O3 fa fallire alcune compilazioni di alcuni software... |
non sono d'accordo.
in un sistema SMP la concorrenza viene gestita SOLO a livello di scheduler, e quindi di kernel. è fondamentale (e molto più complesso di quando la gente creda) massimizzare l'efficienza di un kernel SMP, ma una volta fatto questo non ci si dovrebbe preoccupare più di tanto di altri aspetti della compilazione. il parallelismo lo fa il kernel, quindi è sul kernel che ci si deve concentrare.
in un sistema SMP, poi, non credo che le prestazioni possano essere influenzate nemmeno marginalmente dall'uso di O2 piuttosto che O3, piuttosto che Os. il parallelismo REALE dei sistemi SMP se ne fa un baffo di tutte quelle differenze, che diventano a questo punto null'altro che un onere inutile... secondo me |
|
Back to top |
|
|
Dr.Dran l33t
Joined: 08 Oct 2004 Posts: 766 Location: Imola - Italy
|
Posted: Tue Aug 30, 2005 3:21 pm Post subject: |
|
|
Ciao e ben tornato k.gothmog
Si, quello che volevo dire è il kernel che configurato propriamente gestisce un sistema SMP e lo scheduling dei processi, in soldoni è quello che hai puntualizzato tu, però per un discorso di ottimizzazione nel caricamento ed esecuzione dei programmi, per un discorso generale, l'pzione Os è preferibile su sistemi embedded o anche su sitemi con processori con poca cache L2, cosa che nei moderni P4 con oltre un Mbyte di cache non si notano differenze, ribadisco il mio voleva essere un consiglio indicativo, anche perchè poi non vorrei essere poi sotto effetto di un placebo
Comunque le flags che ho utilizzato hanno reso il mio sistema molto + stabile, quello opzioni che hai suggerito tu all'inizio vengono incluse già nel parametro -march=... quindi vengono ripetute, il che non è ridondante, ma non serve a nulla
Ciauz _________________ :: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group] |
|
Back to top |
|
|
|