Sto studiando RDTSC e sto imparando come è virtualizzato per gli scopi di macchine virtuali come VirtualBox e VMWare. Perché Intel/AMD ha fatto tutto il problema di virtualizzare questa istruzione?Perché RDTSC è un'istruzione virtualizzata sui processori moderni?
Mi sembra che possa essere facilmente simulato con una trappola e non è esattamente un'istruzione super-comune (ho provato e non c'è alcun rallentamento notevole per l'uso generale in una macchina virtuale in cui la virtualizzazione RDTSC dell'hardware è disabilitata).
Tuttavia, so che Intel/AMD non avrebbe avuto alcun problema ad aggiungere questa istruzione all'hardware di virtualizzazione a meno che non fosse importante poter eseguire molto rapidamente.
Qualcuno sa perché?
Nota che secondo i miei test, su un'istanza EC2 standard RDTSC è * non * virtualizzato (ho usato i test a [questa domanda su haveged] (http: // security.stackexchange.com/questions/34523/is-it-appropriate-to-use-haveged-as-a-source-of-entropy-on-virtual-machines) - anche questo sembra essere confermato dal commento su [ questo thread] (https://forums.aws.amazon.com/thread.jspa?messageID=221076&tstart=0#jive-message-231568) – Korny