Manuel de suivi dynamique Solaris

Annulation d'une spéculation

Vous annulez les spéculations à l'aide de la fonction discard. () Lorsqu'un tampon spéculatif est annulé, son contenu est perdu. Si la spéculation n'a été activée que sur la CPU qui appelle la fonction discard(), le tampon est immédiatement disponible pour les appels ultérieurs de la fonction speculation (). En cas d'activation de la spéculation sur plusieurs CPU, le tampon supprimé est parfois disponible pour la fonction speculation() ultérieure après appel de la fonction discard(). Le délai entre l'exécution d'une fonction discard() sur une CPU et le moment où le tampon est disponible pour les spéculations ultérieures ne peut pas excéder la durée dictée par le taux de nettoyage. Si au moment de l'appel de la fonctionspeculation(), aucun tampon n'est disponible car tous les tampons spéculatifs sont actuellement supprimés ou validés, un message dtrace similaire à l'exemple suivant est généré :


dtrace: 905 failed speculations (available buffer(s) still busy)

Vous pouvez réduire la probabilité d'indisponibilité de tous les tampons en ajustant le nombre de tampons de spéculation ou le taux de nettoyage. Pour plus d'informations, reportez-vous à la section Options de spéculation et réglage.