lkml.org 
[lkml]   [2008]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.6.25-rc5-git5 KVM memory not freed
Avi Kivity wrote:
> Ioan Ionita wrote:
>> Hi,
>>
>> I'm using KVM and the qemu kvm modified to run a windows guest. I'm
>> allocating 900 MB to the guest. Seems that when I terminate a qemu
>> process, the memory that was allocated to qemu is not freed:
>>
>>
>> Mem: 2058140 1739156 318984 0 226944
>> 425140
>> -/+ buffers/cache: 1087072 971068
>> Swap: 0 0 0
>>
>> So I'm using 1GB of ram even though I've terminated qemu. If I attempt
>> to start qemu again, the machine locks up. No message in the logs.
>>
>> Command to start qemu:
>> /usr/local/kvm/bin/qemu-system-x86_64 b.data -no-acpi -m 900 -net nic
>> -net user -hdb temp.raw -usbdevice tablet
>>
>> uname -a
>> Linux ops-desktop 2.6.25-rc5-git5 #1 SMP PREEMPT Sat Mar 15 14:47:25
>> EET 2008 x86_64 GNU/Linux
>>
>>
>> Not sure whether this is a problem on the kernel side. I don't
>> pretend to understand linux memory management. But it wasn't occurring
>> with older kernels. I'll attempt to bisect.
>>
>
> I reproduced this and am investigating.
>
>

Attached patch ought to fix this.

--
error compiling committee.c: too many arguments to function

diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 4ba85d9..e55af12 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1412,7 +1412,7 @@ static void mmu_guess_page_from_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
up_read(&current->mm->mmap_sem);

vcpu->arch.update_pte.gfn = gfn;
- vcpu->arch.update_pte.page = gfn_to_page(vcpu->kvm, gfn);
+ vcpu->arch.update_pte.page = page;
}

void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa,
\
 
 \ /
  Last update: 2008-03-23 13:23    [W:0.063 / U:0.188 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site