Manuel de suivi dynamique Solaris

Sondes de verrou adaptatif

Les verrous adaptatifs entraînent une exclusion mutuelle dans une section critique, et peuvent être acquis dans la plupart des contextes du noyau. Les verrous adaptatifs ne comprenant que très peu de restrictions liées au contexte, ils incluent une grande majorité de primitives de synchronisation du noyau Solaris. Ces verrous sont adaptatifs de par leur comportement vis-à-vis de la contention : lorsqu'un thread tente d'acquérir un verrou adaptatif maintenu, il détermine si le thread propriétaire est en cours d'exécution sur une CPU. Si le propriétaire est exécuté sur une autre CPU, le thread demandeur effectuera une rotation. Si le propriétaire n'est pas exécuté, le thread demandeur se bloquera.

Les quatre sondes lockstat appartenant à des verrous adaptatifs sont répertoriées dans le Tableau 18–1. Pour chaque sonde, arg0 contient un pointeur vers la structure kmutex_t qui représente le verrou adaptatif.

Tableau 18–1 Sondes de verrou adaptatif

adaptive-acquire

Sonde d'événement de maintien se déclenchant immédiatement après l'acquisition d'un verrou adaptatif. 

adaptive-block

Sonde d'événement de contention se déclenchant après qu'un thread bloqué sur une mutex adaptative maintenue s'est réveillé et après l'acquisition de la mutex. Si les deux sondes sont activées, adaptive-block se déclenche avant adaptive-acquire. Une seule acquisition de verrouillage peut déclencher les sondes adaptative-block et adaptative-spin. arg1 pour adaptive-block contient la durée de sommeil en nanosecondes.

adaptive-spin

Sonde d'événement de contention se déclenchant après qu'un thread qui a tourné sur une mutex adaptative maintenue a acquis la mutex. Si les deux sondes sont activées, adaptive-spin se déclenche avant adaptive-acquire. Une seule acquisition de verrouillage peut déclencher les sondes adaptative-block et adaptative-spin. arg1 pour adaptive-spin contient la durée de rotation : le nombre de nanosecondes effectuées en boucle de rotation avant l'acquisition du verrouillage.

adaptive-release

Sonde d'événement de maintien se déclenchant immédiatement après la libération d'un verrou adaptatif.