J'essaie d'utiliser Intel-PT sur l'hôte, pendant que j'exécute un logiciel général sur l'ordinateur invité. Donc, ce que je m'attends à ce que Intel-PT s'exécute dans l'hôte va enregistrer tous les paquets pertinents (comme PIP, FUP, TSC etc.) et aussi tous les paquets VM comme VMCS.Intel-PT n'enregistre pas de paquets lorsque KVM-QEMU est allumé
-je utiliser la commande ci-dessous -
./perf kvm --host --guest --guestkallsyms=guest-kallsyms --guestmodules=guest-modules record -e intel_pt//
guest-kallsyms et modules guest-sont les kallsyms et les fichiers du module I copiés à partir de l'invité sur mon hôte.
Je vais ensuite démarrer ma machine virtuelle. Je vais lancer un programme sur la machine invité. Une fois l'exécution du programme terminée, je vais appuyer sur Ctrl + C (SIGINT) dans mon hôte pour arrêter l'enregistrement.
Je vois qu'une fois que j'essaie d'utiliser le rapport perf pour lire le fichier généré à l'aide de la commande ci-dessous -
./perf kvm report -i perf.data.kvm
Il retourne « NO ÉCHANTILLONS TROUVÉS ». Cela signifie que Intel-PT n'a pas réussi à enregistrer des échantillons.
NOTE: Je trouve que le bit 14 pour la valeur dans le MSR MSR_IA32_VMX_MISC
est 0, pour mon processeur. Conformément à la documentation Intel, ce bit doit être 1 pour que Intel-PT soit utilisé dans l'opération VMX. Est-ce que cela affecte d'une manière ou d'une autre la raison pour laquelle Intel-PT n'enregistre aucun échantillon?
Est-ce que INTEL-PT fonctionnera même lorsque la VM est allumée? Ou ma méthode d'enregistrement des données est-elle incorrecte?
Éditer: J'utilise Linux Kernel 4.11.3, ayant Ubuntu 17.04 et un processeur Broadwell, qui supporte Intel-PT.
Je pense que Intel PT doit être activé dans l'UEFI en raison de sa propension à causer des problèmes de sécurité. Avez-vous confirmé que le processeur le supporte et qu'il est activé? En outre, vous devrez peut-être exécuter votre commande en tant que root si PT est disponible et activé.(Je pensais lire un livre blanc sur Intel, mais je ne le trouve pas pour le moment). – jww
Salut @jww, merci pour l'information. J'ai PT disponible et activé car j'ai profilé les programmes d'espace utilisateur normales précédemment avec elle. Cependant, j'ai couru la commande en tant que "sudo" comme vous l'avez dit, j'ai couru intéressant dans une faute de segmentation. –
PT ne peut pas être utilisé avec la virtualisation activée. Je ne peux pas dire maintenant si c'est une limitation pour tous les processeurs, ou seulement pour une implémentation précoce comme Broadwell. – 0andriy