• Peter Xu's avatar
    KVM: Don't allocate dirty bitmap if dirty ring is enabled · 044c59c4
    Peter Xu authored
    Because kvm dirty rings and kvm dirty log is used in an exclusive way,
    Let's avoid creating the dirty_bitmap when kvm dirty ring is enabled.
    At the meantime, since the dirty_bitmap will be conditionally created
    now, we can't use it as a sign of "whether this memory slot enabled
    dirty tracking".  Change users like that to check against the kvm
    memory slot flags.
    
    Note that there still can be chances where the kvm memory slot got its
    dirty_bitmap allocated, _if_ the memory slots are created before
    enabling of the dirty rings and at the same time with the dirty
    tracking capability enabled, they'll still with the dirty_bitmap.
    However it should not hurt much (e.g., the bitmaps will always be
    freed if they are there), and the real users normally won't trigger
    this because dirty bit tracking flag should in most cases only be
    applied to kvm slots only before migration starts, that should be far
    latter than kvm initializes (VM starts).
    Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
    Message-Id: <20201001012226.5868-1-peterx@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    044c59c4
kvm_main.c 122 KB