linux user group brescia

immagine del castello

Archivio della mailing list

cazzeggio serale

Luca Giuzzi giuzzi a dmf.bs.unicatt.it
Ven 31 Mar 2000 23:22:41 UTC
>
> non male, se si pensa che tutto questo si ottiene semplicemente
> ricompilando in un paio di minuti i sorgenti.
> il pc in questione e` la mia macchina di casa, un petum 133, con 64 mb
> di ram. i test gli ho eseguiti su un hd scsi del 90, o giu` di li`,
> il piu` lento che ho. il carico di lavoro, al momento della prova,
> era di una cinquantina di processi, ovviamente non tutti attivi, 
> e una trentina di mb di swap in uso. comunque una normale situazione
> di lavoro, almeno nel mio caso, senza nessun accorgimento particolare
> per la prova.
>
> ora ho iniziato a fare delle prove con grep e, successivamente
> testero` awk, ma i dati che ho ottenuto mi lasciano delle perplessita`
> che, fino a che non mi saro` chiarito, non vale la pena postare.
> un'ultima nota... abilitare queste opzioni, al momento, in fase
> di compilazione del kernel non ha piu` senso. fondamentalmente
> per due ragioni: a) la fase di compilazione del kernel abilita
> da se` le dovute ottimizzazioni per il micro specificato nel
> config[1], e b) l'utilizzo del flag -O3 si rivelerebbe controproducente,
> in luogo del -O2, per ragioni che adesso non mi interessa analizzare
> (comunque leggendo la man del gcc si puo` capirne il perche`).
>
> salutoni e salutini,
> andrea gelmini
>
E' buona cosa fare tests di questo genere, anche per dimostrare che il
 lavoro del team di egcs serve ed e' servito a qualchecosa...
 Tieni conto che -mpentium non usa gli opcodes PROPRJ del pentium
 [vs. il set di istruzioni dei 486] ma semplicemente attiva alcune
 ottimizzazioni `economiche'. L'opzione -funroll-loops e una 
 -malign-jumps=2 dovrebbero fornire risultati ancora migliori...

Riguardo la compilazione del kernel:
 se volete sperimentare cose del genere siete benvenuti, ma potrebbero
 esserci degli inconvenienti. In particolare il kernel di linux sfrutta
 certe `particolarita'' del codice generato dal gcc e non e' troppo
 felice con ottimizzazioni `assurde' tipo -O9 -mpentium -funroll-all-loops.

In effetti quello e' un modo sicuro per raddoppiare il numero di bogomips
 sotto 2.2 e avere un grazioso lock subito dopo il computo della
 velocita' del sistema.
[questo e' dovuto al fatto che i bogomips erano calcolati (l'aloritmo e'
 cambiato nel 2.3.51) come tempo impiegato nell'eseguire un `ciclo a
 vuoto'; il -funroll-loops  dice al compilatore di sfruttare il
 parallelismo interno dei P5 per tentare di eseguire due istruzioni
 per volta e le NOP non mandano in stallo la pipeline... risultato:
 il ciclo viene eseguito a velocita' doppia e la calibrazione non 
 e' valida :( ]

L'ottimizzazione `spinta' del kernel puo' dare anche altri problmemi,
 soprattutto con versioni vecchie: uno dei peggiori che ho incontrato e'
 stato un errore nella gestione dei securlevel sotto 2.0 che comportava
 l'impossibilita' di avviare il server X... non carino.

Infine: le opizioni `per CPU' nella config del kernel attivano del
 codice in assembler per la CPU opportuna (salvo nel caso 486 in
 cui vengono cambiati anche gli allineamenti) piuttosto che ottimizzare
 il tutto globablmente.

Ciao,
 lg



Maggiori informazioni sulla lista Lug