Ich arbeite an der MUlti-processor record-replay Funktion einer virtuellen Maschine.
Ich habe ein Protokoll von nicht deterministischen Speicherzugriffen in der virtuellen Maschine durch virtuelle CPUs.
Ein sehr hoher Anteil davon zum Kernel-Space-Speicher, dh über 0Xc0000000.
Hier ist zum Beispiel eine Liste der 10 Kernel-Speicheradressen, auf die am häufigsten zugegriffen wird, nachdem der SPLASH-Benchmark in der virtuellen Maschine ausgeführt wurde
0xfffb5000
0xc1779db0
0xc18b6910
0xc1771a44
0xc1771a40
0xc1779e00
0xc18b67e0
0xc18b693c
0xc18b67f0
0xfffa1000
Ich möchte wissen, ob es eine Möglichkeit gibt, herauszufinden, was genau in diesen Speicheradressen ist … ist es der Kernel-Stack, die vsyscall-Seite, die Bereitschaftsliste des Schedulers …
Damit ich mir dann eine Möglichkeit vorstellen kann, diesen Overhead zu lösen Aufnahmewiedergabe beschleunigen….
Hinweise, wo man im Kernel-Code nachsehen kann, sind willkommen
Danke
Akzeptierte Antwort:
Auf einer physischen Maschine würde ich einen Blick auf /boot/System.map* werfen (wie auch immer diese Datei in Ihrer Distribution heißt).
Ich vermute, dass das Gleiche innerhalb einer KVM-VM zutrifft.