Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b0cb3c8 authored by Alexander Graf's avatar Alexander Graf
Browse files

KVM: PPC: Book3s: PR: Add (dumb) MMU Notifier support



Now that we have very simple MMU Notifier support for e500 in place,
also add the same simple support to book3s. It gets us one step closer
to actual fast support.

Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
parent 03d25c5b
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -46,8 +46,7 @@
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
#endif
#endif


#if defined(CONFIG_KVM_BOOK3S_64_HV) || defined(CONFIG_KVM_E500V2) || \
#if !defined(CONFIG_KVM_440)
    defined(CONFIG_KVM_E500MC)
#include <linux/mmu_notifier.h>
#include <linux/mmu_notifier.h>


#define KVM_ARCH_WANT_MMU_NOTIFIER
#define KVM_ARCH_WANT_MMU_NOTIFIER
+1 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,7 @@ config KVM_BOOK3S_64_HANDLER
config KVM_BOOK3S_PR
config KVM_BOOK3S_PR
	bool
	bool
	select KVM_MMIO
	select KVM_MMIO
	select MMU_NOTIFIER


config KVM_BOOK3S_32
config KVM_BOOK3S_32
	tristate "KVM support for PowerPC book3s_32 processors"
	tristate "KVM support for PowerPC book3s_32 processors"
+1 −0
Original line number Original line Diff line number Diff line
@@ -254,6 +254,7 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte)


	kvmppc_mmu_hpte_cache_map(vcpu, pte);
	kvmppc_mmu_hpte_cache_map(vcpu, pte);


	kvm_release_pfn_clean(hpaddr >> PAGE_SHIFT);
out:
out:
	return r;
	return r;
}
}
+1 −0
Original line number Original line Diff line number Diff line
@@ -168,6 +168,7 @@ int kvmppc_mmu_map_page(struct kvm_vcpu *vcpu, struct kvmppc_pte *orig_pte)


		kvmppc_mmu_hpte_cache_map(vcpu, pte);
		kvmppc_mmu_hpte_cache_map(vcpu, pte);
	}
	}
	kvm_release_pfn_clean(hpaddr >> PAGE_SHIFT);


out:
out:
	return r;
	return r;
+0 −5
Original line number Original line Diff line number Diff line
@@ -114,11 +114,6 @@ static void invalidate_pte(struct kvm_vcpu *vcpu, struct hpte_cache *pte)
	hlist_del_init_rcu(&pte->list_vpte);
	hlist_del_init_rcu(&pte->list_vpte);
	hlist_del_init_rcu(&pte->list_vpte_long);
	hlist_del_init_rcu(&pte->list_vpte_long);


	if (pte->pte.may_write)
		kvm_release_pfn_dirty(pte->pfn);
	else
		kvm_release_pfn_clean(pte->pfn);

	spin_unlock(&vcpu3s->mmu_lock);
	spin_unlock(&vcpu3s->mmu_lock);


	vcpu3s->hpte_cache_count--;
	vcpu3s->hpte_cache_count--;
Loading