View Single Post
Old 05-01-2018, 21:26   #35
Sandro kensan
Senior Member
 
L'Avatar di Sandro kensan
 
Iscritto dal: Dec 2011
Messaggi: 3102
Quote:
Originariamente inviato da SkyLinx Guarda i messaggi
Qui spiegano un po' cosa c'entra il timing https://www.raspberrypi.org/blog/why...e-or-meltdown/
Sì, l'esempio è chiaro in tutte le sue parti. Però quello è l'esempio del Meltdown mentre il mio è del Spectre. Comunque se tu od altri avete capito Meltdown allora vi siete chiesti se forse per risolvere il problema quell'istruzione di accesso alla kernel memory dell'esempio:

w = kern_mem[address] # if we get here crash

dovesse essere eseguita in maniera *non* speculativa? Questo perché non appartiene al set di istruzioni permesse dalla modalità utente, quindi non doveva essere riempito il registro w_ e neppure x_ e neppure doveva esserci l'accesso alla memoria user_mem[x_].

Con questo vincolo il programma sarebbe diventato:

Codice:
t = a+b
u = t+c
v = u+d
if v:
   w = kern_mem[address]   # if we get here crash
   x = w&0x100
   y = user_mem[x]
senza alcuna possibilità di out of order e di esecuzione speculativa e cioè non sarebbe stato eseguita la micidiale:

Codice:
t, w_ = a+b, kern_mem[address]
u, x_ = t+c, w_&0x100
v, y_ = u+d, user_mem[x_]

if v:
   # crash
   w, x, y = w_, x_, y_      # we never get here
Concordi?
__________________
Utente Linux: Mageia 7. Sito: www.kensan.it

Ultima modifica di Sandro kensan : 05-01-2018 alle 21:50.
Sandro kensan è offline   Rispondi citando il messaggio o parte di esso
 
1