Guía de seguimiento dinámico de Solaris

Descartar una especulación

Puede descartar especulaciones mediante la función discard. () Al descartar una memoria intermedia especulativa, se elimina su contenido. Si la especulación sólo ha estado activa en la CPU que llama a discard(), la memoria intermedia estará disponible de forma inmediata para las siguientes llamadas a la función speculation (). Si la especulación ha estado activa en varias CPU, la memoria intermedia descartada estará disponible para la siguiente función speculation() una vez transcurrido un tiempo después de efectuar la llamada a discard(). Se garantiza que el tiempo transcurrido entra la acción discard() en una CPU y la disponibilidad de la memoria intermedia para las siguientes especulaciones no sea superior al tiempo indicado por la tasa de limpieza. Si, al llamar a la funciónspeculation(), no hay disponible ninguna memoria intermedia porque se han confirmado o descargado todas las memorias intermedias especulativas, se generará un mensaje de dtrace parecido al siguiente:


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

La probabilidad de que no haya ninguna memoria intermedia disponible puede reducirse ajustando el número de memorias intermedias especulativas o la tasa de limpieza. Consulte Opciones y ajustes de especulación para obtener más información.