Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio X)
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
MaTz
Apprentice
Apprentice


Joined: 28 Aug 2005
Posts: 166
Location: Genova (IT)

PostPosted: Sun Aug 28, 2005 5:58 pm    Post subject: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio X) Reply with quote

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
View user's profile Send private message
.:chrome:.
Advocate
Advocate


Joined: 19 Feb 2005
Posts: 4588
Location: Brescia, Italy

PostPosted: Sun Aug 28, 2005 6:26 pm    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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
View user's profile Send private message
MaTz
Apprentice
Apprentice


Joined: 28 Aug 2005
Posts: 166
Location: Genova (IT)

PostPosted: Sun Aug 28, 2005 6:36 pm    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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
View user's profile Send private message
Dr.Dran
l33t
l33t


Joined: 08 Oct 2004
Posts: 766
Location: Imola - Italy

PostPosted: Sun Aug 28, 2005 9:02 pm    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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 :D

Ciauz
_________________
:: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group]
Back to top
View user's profile Send private message
thewally
l33t
l33t


Joined: 12 May 2005
Posts: 703
Location: Genova

PostPosted: Mon Aug 29, 2005 2:52 am    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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)..... :wink:
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 :wink: KDE, ad esempio, non sopporta molto chi lo tratta in questo modo...

Penserò ad una soluzione per la morte dei figli ... :D

Ciao

P.S. : Non per fare il rompi-glioni, ma credo che si abituale creare un topic per ogni singolo problema. :wink:
Back to top
View user's profile Send private message
MaTz
Apprentice
Apprentice


Joined: 28 Aug 2005
Posts: 166
Location: Genova (IT)

PostPosted: Mon Aug 29, 2005 7:02 am    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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
View user's profile Send private message
MaTz
Apprentice
Apprentice


Joined: 28 Aug 2005
Posts: 166
Location: Genova (IT)

PostPosted: Mon Aug 29, 2005 7:10 am    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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)..... :wink:

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 :wink: KDE, ad esempio, non sopporta molto chi lo tratta in questo modo...
Penserò ad una soluzione per la morte dei figli ... :D

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. :wink:


hai ragione cosi' diventa un casino perche' e' tutto frammentato :)
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Mon Aug 29, 2005 8:00 am    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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
View user's profile Send private message
Dr.Dran
l33t
l33t


Joined: 08 Oct 2004
Posts: 766
Location: Imola - Italy

PostPosted: Mon Aug 29, 2005 9:47 pm    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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 :D

-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 :wink: 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 :D

Spero di non essere stato troppo prolisso e incasinato :D
_________________
:: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group]
Back to top
View user's profile Send private message
.:chrome:.
Advocate
Advocate


Joined: 19 Feb 2005
Posts: 4588
Location: Brescia, Italy

PostPosted: Mon Aug 29, 2005 11:44 pm    Post subject: Re: 2 problemi: CFLAGS(ottimizzazioni) BASH SCRIPT (riavvio Reply with quote

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 :wink: 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
View user's profile Send private message
Dr.Dran
l33t
l33t


Joined: 08 Oct 2004
Posts: 766
Location: Imola - Italy

PostPosted: Tue Aug 30, 2005 3:21 pm    Post subject: Reply with quote

Ciao e ben tornato k.gothmog :D

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 :oops:

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 :wink:

Ciauz :D
_________________
:: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group]
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum