• Maciej S. Szmigiero's avatar
    KVM: Resolve memslot ID via a hash table instead of via a static array · 26b8345a
    Maciej S. Szmigiero authored
    Memslot ID to the corresponding memslot mappings are currently kept as
    indices in static id_to_index array.
    The size of this array depends on the maximum allowed memslot count
    (regardless of the number of memslots actually in use).
    
    This has become especially problematic recently, when memslot count cap was
    removed, so the maximum count is now full 32k memslots - the maximum
    allowed by the current KVM API.
    
    Keeping these IDs in a hash table (instead of an array) avoids this
    problem.
    
    Resolving a memslot ID to the actual memslot (instead of its index) will
    also enable transitioning away from an array-based implementation of the
    whole memslots structure in a later commit.
    Co-developed-by: default avatarSean Christopherson <seanjc@google.com>
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Signed-off-by: default avatarMaciej S. Szmigiero <maciej.szmigiero@oracle.com>
    Message-Id: <117fb2c04320e6cd6cf34f205a72eadb0aa8d5f9.1638817640.git.maciej.szmigiero@oracle.com>
    26b8345a
kvm_main.c 142 KB