mmu notifier index huge spte fix
PATCH 1/1 mmu notifier index huge spte fix
Subject: fix kvm mmu notifier invalidate handler for huge spte
From: Andrea Arcangeli <[email protected]>
The index wasn't calucalted correctly (off by one) for huge spte so KVM guest was unstable with transparent hugepages.
Signed-off-by Andrea Arcangeli <[email protected]>
---
arch/x86/kvm/mmu.c +6 -2
@@ -850,8 +850,12 @@ static int kvm_handle_hva(struct kvm *kvm, unsigned long hva, ret =handler (kvm, &memslot->rmap[gfn_offset], data);for (j =0 ; j <KVM_NR_PAGE_SIZES -1 ; ++j) { -int idx = gfn_offset; - idx /=KVM_PAGES_PER_HPAGE (PT_DIRECTORY_LEVEL + j); +unsigned long idx; +int sh; + + sh =KVM_HPAGE_GFN_SHIFT (PT_DIRECTORY_LEVEL +j); + idx = ((memslot->base_gfn+gfn_offset) >> sh) - + (memslot->base_gfn >> sh); ret |=handler (kvm, &memslot->lpage_info[j][idx].rmap_pde, data);
Quoted 8 lines · Andrea Arcangeli
Subject: fix kvm mmu notifier invalidate handler for huge spte
From: Andrea Arcangeli<[email protected]>
The index wasn't calucalted correctly (off by one) for huge spte so KVM guest was unstable with transparent hugepages.
Signed-off-by Andrea Arcangeli<[email protected]>
Reviewed-by Rik van Riel <[email protected]>
Signature · 1 line
All rights reversed
Avi Kivity
AppliedQuoted 7 lines · Andrea Arcangeli
Subject: fix kvm mmu notifier invalidate handler for huge spte
From: Andrea Arcangeli<[email protected]>
The index wasn't calucalted correctly (off by one) for huge spte so KVM guest was unstable with transparent hugepages.
Applied, thanks.
Signature · 1 line
error compiling committee.c: too many arguments to function