KVM: Move the memslot update in-progress flag to bit 63
...now that KVM won't explode by moving it out of bit 0. Using bit 63 eliminates the need to jump over bit 0, e.g. when calculating a new memslots generation or when propagating the memslots generation to an MMIO spte. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
这个提交包含在:
@@ -657,7 +657,7 @@ static struct kvm *kvm_create_vm(unsigned long type)
|
||||
if (!slots)
|
||||
goto out_err_no_srcu;
|
||||
/* Generations must be different for each address space. */
|
||||
slots->generation = i * 2;
|
||||
slots->generation = i;
|
||||
rcu_assign_pointer(kvm->memslots[i], slots);
|
||||
}
|
||||
|
||||
@@ -890,10 +890,10 @@ static struct kvm_memslots *install_new_memslots(struct kvm *kvm,
|
||||
* Generations must be unique even across address spaces. We do not need
|
||||
* a global counter for that, instead the generation space is evenly split
|
||||
* across address spaces. For example, with two address spaces, address
|
||||
* space 0 will use generations 0, 4, 8, ... while address space 1 will
|
||||
* use generations 2, 6, 10, 14, ...
|
||||
* space 0 will use generations 0, 2, 4, ... while address space 1 will
|
||||
* use generations 1, 3, 5, ...
|
||||
*/
|
||||
gen += KVM_ADDRESS_SPACE_NUM * 2;
|
||||
gen += KVM_ADDRESS_SPACE_NUM;
|
||||
|
||||
kvm_arch_memslots_updated(kvm, gen);
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户