summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/mmu.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2012-09-04 14:31:00 +0200
committerIngo Molnar <mingo@kernel.org>2012-09-04 14:31:00 +0200
commit59f979455d7209171ab10a72c8df5c2512976cb4 (patch)
treec4c7fc48bd79bf8acbe848a1b979fa9e8ab4ac6a /arch/x86/kvm/mmu.c
parentb9bb50db9126c4ccad78af2dfb77277ca17c9b64 (diff)
parent9450d57eab5cad36774c297da123062744472588 (diff)
downloadtalos-op-linux-59f979455d7209171ab10a72c8df5c2512976cb4.tar.gz
talos-op-linux-59f979455d7209171ab10a72c8df5c2512976cb4.zip
Merge branch 'sched/urgent' into sched/core
Merge in the current fixes branch, we are going to apply dependent patches. Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kvm/mmu.c')
-rw-r--r--arch/x86/kvm/mmu.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 01ca00423938..7fbd0d273ea8 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -4113,16 +4113,21 @@ static int mmu_shrink(struct shrinker *shrink, struct shrink_control *sc)
LIST_HEAD(invalid_list);
/*
+ * Never scan more than sc->nr_to_scan VM instances.
+ * Will not hit this condition practically since we do not try
+ * to shrink more than one VM and it is very unlikely to see
+ * !n_used_mmu_pages so many times.
+ */
+ if (!nr_to_scan--)
+ break;
+ /*
* n_used_mmu_pages is accessed without holding kvm->mmu_lock
* here. We may skip a VM instance errorneosly, but we do not
* want to shrink a VM that only started to populate its MMU
* anyway.
*/
- if (kvm->arch.n_used_mmu_pages > 0) {
- if (!nr_to_scan--)
- break;
+ if (!kvm->arch.n_used_mmu_pages)
continue;
- }
idx = srcu_read_lock(&kvm->srcu);
spin_lock(&kvm->mmu_lock);
OpenPOWER on IntegriCloud