On Fri, Aug 10, 2012 at 05:16:12PM +0900, Takuya Yoshikawa wrote: > The following commit changed mmu_shrink() so that it would skip VMs > whose n_used_mmu_pages was not zero and try to free pages from others: > > commit 1952639665e92481c34c34c3e2a71bf3e66ba362 > KVM: MMU: do not iterate over all VMs in mmu_shrink() > > This patch fixes the function so that it can free mmu pages as before. > Note that "if (!nr_to_scan--)" check is removed since we do not try to > free mmu pages from more than one VM. > > Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@xxxxxxxxxxxxx> > Cc: Gleb Natapov <gleb@xxxxxxxxxx> > --- > This patch just recovers the original behaviour and is not related > to how to improve mmu_shrink() further; so please apply. Before 1952639665e92481c34 the code was maxed at nr_to_scan loops. So removing if (!nr_to_scan--) patch does change behaviour. Am i missing something here? > arch/x86/kvm/mmu.c | 5 +---- > 1 files changed, 1 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c > index 9651c2c..4aeec72 100644 > --- a/arch/x86/kvm/mmu.c > +++ b/arch/x86/kvm/mmu.c > @@ -4154,11 +4154,8 @@ static int mmu_shrink(struct shrinker *shrink, struct shrink_control *sc) > * 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); > -- > 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html