When an enclave page is blocked, an ETRACK instruction is performed on a logical processor to advance the epoch by incrementing the global epoch variable to N+1. The global epoch variable divides the timeline so that events occurring before the ETRACK instruction is performed and after the ETRACK instruction is performed can be used to understand whether TLB entries to pages within the enclave might exist. In addition, for each enclave, reference counters can be used to keep track of the number of logical processors running during the current and previous epochs, based on entries into the enclave and exits from the enclave. Furthermore, for each logical processor running in the enclave, the epoch at the time of enclave entry for that logical processor is recorded, for example, in an enclave entry epoch variable (e.g., CR_EV variable).