KVM: X86: Implement ring-based dirty memory tracking