qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH-for-7.0 v4] target/i386/kvm: Free xsave_buf when destroyi


From: Philippe Mathieu-Daudé
Subject: Re: [RFC PATCH-for-7.0 v4] target/i386/kvm: Free xsave_buf when destroying vCPU
Date: Tue, 22 Mar 2022 15:11:34 +0100
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.7.0

On 22/3/22 14:56, Igor Mammedov wrote:
On Tue, 22 Mar 2022 13:05:22 +0100
Philippe Mathieu-Daudé         <philippe.mathieu.daude@gmail.com> wrote:

From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Fix vCPU hot-unplug related leak reported by Valgrind:

   ==132362== 4,096 bytes in 1 blocks are definitely lost in loss record 8,440 
of 8,549
   ==132362==    at 0x4C3B15F: memalign (vg_replace_malloc.c:1265)
   ==132362==    by 0x4C3B288: posix_memalign (vg_replace_malloc.c:1429)
   ==132362==    by 0xB41195: qemu_try_memalign (memalign.c:53)
   ==132362==    by 0xB41204: qemu_memalign (memalign.c:73)
   ==132362==    by 0x7131CB: kvm_init_xsave (kvm.c:1601)
   ==132362==    by 0x7148ED: kvm_arch_init_vcpu (kvm.c:2031)
   ==132362==    by 0x91D224: kvm_init_vcpu (kvm-all.c:516)
   ==132362==    by 0x9242C9: kvm_vcpu_thread_fn (kvm-accel-ops.c:40)
   ==132362==    by 0xB2EB26: qemu_thread_start (qemu-thread-posix.c:556)
   ==132362==    by 0x7EB2159: start_thread (in /usr/lib64/libpthread-2.28.so)
   ==132362==    by 0x9D45DD2: clone (in /usr/lib64/libc-2.28.so)

Reported-by: Mark Kanda <mark.kanda@oracle.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
Based on a series from Mark:
20220321141409.3112932-1-mark.kanda@oracle.com/">https://lore.kernel.org/qemu-devel/20220321141409.3112932-1-mark.kanda@oracle.com/

RFC because currently no time to test
---
  target/i386/kvm/kvm.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
index ef2c68a6f4..e93440e774 100644
--- a/target/i386/kvm/kvm.c
+++ b/target/i386/kvm/kvm.c
@@ -2072,6 +2072,8 @@ int kvm_arch_destroy_vcpu(CPUState *cs)
      X86CPU *cpu = X86_CPU(cs);
      CPUX86State *env = &cpu->env;
+ g_free(env->xsave_buf);
+
      if (cpu->kvm_msr_buf) {
          g_free(cpu->kvm_msr_buf);
          cpu->kvm_msr_buf = NULL;


shouldn't we do the same in hvf_arch_vcpu_destroy() ?

Yeah HVF needs a similar patch (at least hvf_caps needs to be released
too, but I had no time to review it carefully yet).




reply via email to

[Prev in Thread] Current Thread [Next in Thread]