On 09/03/21 11:09, Maxim Levitsky wrote:
What happens if mmio generation overflows (e.g if userspace keeps on updating the memslots)?
In theory if we have a SPTE with a stale generation, it can became valid, no?
I think that we should in the case of the overflow zap all mmio sptes.
What do you think?
Zapping all MMIO SPTEs is done by updating the generation count. When
it overflows, all SPs are zapped:
/*
* The very rare case: if the MMIO generation number has wrapped,
* zap all shadow pages.
*/
if (unlikely(gen == 0)) {
kvm_debug_ratelimited("kvm: zapping shadow pages for
mmio generation wraparound\n");
kvm_mmu_zap_all_fast(kvm);
}
So giving it more bits make this more rare, at the same time having to
remove one or two bits is not the end of the world.
Paolo