Newsgroup: it.comp.os.linux.sys
Titolo: MTRR

Ciao a tutti,
ho abilitato il supporto MTRR nel kernel e ora, senza fare nulla, all'avvio
il file /proc/mtrr risulta impostato nel modo seguente:
reg00: base=0x00000000 (   0MB), size= 128MB: write-back, count=1
reg01: base=0x08000000 ( 128MB), size=  64MB: write-back, count=1
reg02: base=0x0c000000 ( 192MB), size=  32MB: write-back, count=1
reg03: base=0x0e000000 ( 224MB), size=  16MB: write-back, count=1
reg07: base=0xa0000000 (2560MB), size=  64MB: write-combining, count=1
tuttavia ho spesso errori nel log di sistema che recitano:
Oct 10 09:51:05 localhost kernel: mtrr: no MTRR for 90e00000,80000 found
Oct 10 09:51:05 localhost kernel: mtrr: no MTRR for 90e80000,40000 found
Oct 10 09:51:05 localhost kernel: mtrr: no MTRR for 90ec0000,20000 found
Oct 10 09:51:05 localhost kernel: mtrr: no MTRR for 90ee0000,10000 found
Ho letto il DVD Howto che istruisce a impostare il MTRR. Io mi sono fidato
delle impostazioni che in automatico vengono imposte al boot. Tuttavia mi
sorge il dubbio che siano errate. Questo è l'output del log di X all'avvio
della sessione grafica per quanto concerne il framebuffer.
(--) SAVAGE(0): mapping framebuffer @ 0x90000000 with size 0xef0000
(==) SAVAGE(0): Write-combining range (0x90000000,0x800000)
(==) SAVAGE(0): Write-combining range (0x90800000,0x400000)
(==) SAVAGE(0): Write-combining range (0x90c00000,0x200000)
(WW) SAVAGE(0): Failed to set up write-combining range (0x90e00000,0x80000)
(WW) SAVAGE(0): Failed to set up write-combining range (0x90e80000,0x40000)
(WW) SAVAGE(0): Failed to set up write-combining range (0x90ec0000,0x20000)
(WW) SAVAGE(0): Failed to set up write-combining range (0x90ee0000,0x10000)
(--) SAVAGE(0): Chose mode 118 at 60Hz.
Mi sorge il dubbio che l'impostazione del /proc/mtrr non sia congruente. Ma
prima di fare delle prove vorrei qualche parere poichè ho paura di tosta-
re lo schermo.
Qualcuno ha suggerimenti?
-- 
Paride Perazzolo
La verità che rende gli uomini liberi è per la maggior  parte
la verità che essi non vogliono sentire. (Herbert Agar)

 re lo schermo.
Non rischi di tostare lo schermo, non preoccuparti.
MTRR e' una opzione dei processori moderni (dal K6 in avanti e dal P3 in
avanti, se non ricordo male) per ottimizzare gli accessi sequenziali alla
RAM.
Serve, per esempio, per mandare a velocita' mostruose array di dati in
zone contigue di memoria, esattamente quello che fa un player DVD quando
deve spararti su schermo le varie righe del filmato.
Il tuo problema e' che probabilmente hai la memoria della scheda video
"ricavata" dalla RAM di sistema, quindi al boot non riesce ad allocare un
unico blocco contiguo per 1 solo MTRR e lo frammenta (infatti vedi
128+64+32+16, e probabilmente gli altri 16 sono condivisi con la scheda
video. Se non fossero condivisi vedresti una sola riga con 256 Mb).
Il processore ha un tot (dipende dalla CPU) di registri MTRR, esauriti i
quali non puoi piu' allocarne. Gli errori derivano dal fatto che, appunto,
non ha piu' registri liberi.
Bye.

 non ha piu' registri liberi.
Questo significa che è inutile cercare di ottimizzare ulteriormente l'utilizzo
del MTRR? Quello che vorrei è rendere più fluido lo scorrere di un filmato.
Dovrei assicurarmi che il xine o vlc o oms stiano utilizzando al meglio le risorse 
disponibili anche a scapito di altre applicazioni.
Ma forse potresti indicarmi semplicemente dove ottenere della documen-
tazione un po' meno scarna di quella sul DVD-Howto. Google a parte.
Grazie di questa risposta ad ogni modo.


 DVD-Howto. Google a parte. Grazie di questa risposta ad ogni modo.
Potresti provare a usare l'estensione xvidix o xv del server X (per
esempio mplayer la supporta) per scrivere direttamente nella RAM della
scheda video senza passare per le xlibs.
Per la documentazione, non saprei... :/
Bye.