Sto lavorando sulla funzione di riproduzione record multiprocessore di una macchina virtuale.
Ho un registro di accesso alla memoria non deterministico eseguito nella macchina virtuale da CPU virtuali.
Una percentuale molto elevata di questi punti alla memoria dello spazio del kernel, ovvero al di sopra di 0Xc0000000.
Ad esempio, ecco un elenco dei 10 indirizzi di memoria del kernel a cui si accede dopo aver eseguito il benchmark SPLASH nella macchina virtuale
0xfffb5000
0xc1779db0
0xc18b6910
0xc1771a44
0xc1771a40
0xc1779e00
0xc18b67e0
0xc18b693c
0xc18b67f0
0xfffa1000
Voglio sapere se c'è un modo per trovare cosa ci sono esattamente in questi indirizzi di memoria ... è lo stack del kernel, la pagina vsyscall, l'elenco pronto dello scheduler ...
In modo che io possa pensare a un modo per risolvere questo sovraccarico per accelerare la riproduzione dei record….
Sono graditi suggerimenti su dove cercare nel codice del kernel
Grazie
Risposta accettata:
Su una macchina fisica darei un'occhiata a /boot/System.map* (qualunque cosa sia chiamato quel file nella tua distribuzione).
La mia ipotesi è che lo stesso sia vero all'interno di una macchina virtuale KVM.