View Single Post
Old 01-08-2018, 22:10   #2
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 13027
Non è proprio così.

Quotando l'originale:
Quote:
Originariamente inviato da Phoronix
Lazy TLB mode can result in an idle CPU being woken up by a TLB flush, when all it really needs to do is reload %CR3 at the next context switch, assuming no page table pages got freed... This patch reduces total CPU use in the system by about 1-2% for a memcache workload on two socket systems, and by about 1% for a heavily multi-process netperf between two systems
Il meccanismo di aggiornamento lazy della TLB già esiste, l'unica cosa è che questo può portare, inutilmente, al risveglio di una CPU in idle (a causa di un inter-processor interrupt).

L'aggiornamento del registro CR3 provoca sempre l'immediato flush della TLB e questa è un operazione che viene fatta al context switch del processo.

Quindi di fatto quello che si sta dicendo è che l'aggiornamento della TLB per le CPU in idle (per cui viene eseguito l'idle task) può essere posticipato direttamente a quando la CPU non sarà più idle perché c'è un task schedulabile (e quindi viene forzato un context-switch ).
WarDuck è offline   Rispondi citando il messaggio o parte di esso
 
1