Manuel de suivi dynamique Solaris

Options de spéculation et réglage

Si un tampon spéculatif est plein lorsqu'une action de suivi spéculatif est tentée, aucune donnée n'est enregistrée dans le tampon et un compteur de pose est incrémenté. Le cas échéant, un message dtrace similaire à l'exemple suivant est généré :


dtrace: 38 speculative drops

Les poses spéculatives n'empêchent pas la copie du tampon spéculatif plein dans le tampon principal lorsque le tampon est validé. De même, elles peuvent se produire même si les poses ont eut lieu sur un tampon spéculatif qui a finalement été supprimé. Il est possible de réduire les poses spéculatives en augmentant la taille du tampon spéculatif que l'option specsize permet de régler. Vous pouvez spécifier l'option specsize avec n'importe quel suffixe de taille. La stratégie de redimensionnement de ce tampon est dictée par l'option bufresize.

Les tampons spéculatifs peuvent ne pas être disponibles lors de l'appel de la fonction speculation. () S'il reste encore des tampons à n'avoir été ni validés ni supprimés, un message dtrace similaire à l'exemple suivant est généré :


dtrace: 1 failed speculation (no speculative buffer available)

Vous pouvez réduire la probabilité que des spéculations de cette nature échouent en augmentant le nombre de tampons spéculatifs avec l'option nspec. La valeur par défaut de nspec est de 1.

Par ailleurs, la fonction speculation() peut échouer car tous les tampons spéculatifs sont occupés. Le cas échéant, un message dtrace similaire à l'exemple suivant est généré :


dtrace: 1 failed speculation (available buffer(s) still busy)

Ce message indique que la fonction speculation() a été appelée après l'appel de la fonction commit() pour un tampon spéculatif mais avant que ce tampon n'ait été réellement validé sur toutes les CPU. Vous pouvez réduire la probabilité que des spéculations de cette nature échouent en augmentant le taux de nettoyage des CPU à l'aide de l'option cleanrate. La valeur par défaut de cleanrate est 101.


Remarque –

Les valeurs spécifiées pour l'option cleanrate doivent être en nombre par seconde. Utilisez le suffixe hz.