lkml.org 
[lkml]   [2008]   [Mar]   [23]   [last100]   RSS-feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Complete thread (EXPERIMENTAL)
Patch in this message
/
DateSun, 23 Mar 2008 14:20:55 +0200
FromAvi Kivity <>
SubjectRe: 2.6.25-rc5-git5 KVM memory not freed
Digg This
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.


[view this diff only]
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,
-- 
error compiling committee.c: too many arguments to function

\
ISP Services
Valid XHTML 1.0!\ /
Valid CSS! Last update: 2008-03-23 13:23    [W:0.281 / U:0.030 seconds]
©2003-2005 Jasper Spaans