Je fais une expérience qui écrit l'index de la boucle dans un registre CPU R11, puis en le construisant avec gcc -ffixed-r11
essayer de laisser le compilateur savoir ne pas utiliser ce reg, et enfin en utilisant perf pour le mesurer.Recompiler Linux Kernel de ne pas utiliser de registre CPU spécifique
Mais lorsque je vérifie le rapport (en utilisant perf script
), la valeur R11 de la plupart des entrées d'enregistrement n'est pas ce que j'attendais, c'est supposé être la séquence numérique comme 1..2.3 ou 1..4. 7, etc. Mais en réalité, il suffit d'une valeur fixe. (peut-être affecté par l'écrasement des appels système?)
Comment puis-je laisser perf enregistrer la valeur que j'ai définie dans le registre de mon programme? Ou je dois recompiler le noyau entier avec -ffixed-r11
pour réaliser?
Merci à tous.
Selon les conventions d'appel utilisées, il n'est même pas possible de recompiler le noyau pour ne pas utiliser R11 sans casser quelque chose. Qu'essayez-vous vraiment de faire? – tangrs
Salut, merci. Je veux utiliser des enregistrements de perf pour savoir combien de fois (et exactement dans quel nombre de boucles) mon programme déclenchera des événements de perf. –