All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] Fix memory leak spotted by valgrind
@ 2015-05-25  8:37 Shannon Zhao
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Shannon Zhao @ 2015-05-25  8:37 UTC (permalink / raw
  To: qemu-devel; +Cc: qemu-trivial, shannon.zhao

From: Shannon Zhao <shannon.zhao@linaro.org>

These patches fix memmory leak spotted by valgrind.

Shannon Zhao (3):
  hw/i386/pc_piix: Fix memory leak
  hw/ide/pci: Fix memory leak
  hw/i386/acpi-build: decref after use

 hw/i386/acpi-build.c | 1 +
 hw/i386/pc_piix.c    | 2 ++
 hw/ide/pci.c         | 1 +
 3 files changed, 4 insertions(+)

-- 
2.0.4

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 1/3] hw/i386/pc_piix: Fix memory leak
  2015-05-25  8:37 [Qemu-devel] [PATCH 0/3] Fix memory leak spotted by valgrind Shannon Zhao
@ 2015-05-25  8:37 ` Shannon Zhao
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 2/3] hw/ide/pci: " Shannon Zhao
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 3/3] hw/i386/acpi-build: decref after use Shannon Zhao
  2 siblings, 0 replies; 7+ messages in thread
From: Shannon Zhao @ 2015-05-25  8:37 UTC (permalink / raw
  To: qemu-devel; +Cc: qemu-trivial, shannon.zhao

From: Shannon Zhao <shannon.zhao@linaro.org>

valgrind complains about:
==16447== 8 bytes in 1 blocks are definitely lost in loss record 552 of 3,310
==16447==    at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==16447==    by 0x2E4FD7: malloc_and_trace (vl.c:2546)
==16447==    by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
==16447==    by 0x36FB47: qemu_extend_irqs (irq.c:55)
==16447==    by 0x36FBD3: qemu_allocate_irqs (irq.c:64)
==16447==    by 0x24E622: pc_init1 (pc_piix.c:287)
==16447==    by 0x24E76A: pc_init_pci (pc_piix.c:310)
==16447==    by 0x2E9360: main (vl.c:4226)

==16447== 128 bytes in 1 blocks are definitely lost in loss record 2,569 of 3,310
==16447==    at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==16447==    by 0x2E4FD7: malloc_and_trace (vl.c:2546)
==16447==    by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
==16447==    by 0x36FB47: qemu_extend_irqs (irq.c:55)
==16447==    by 0x36FBD3: qemu_allocate_irqs (irq.c:64)
==16447==    by 0x25BEB2: kvm_i8259_init (i8259.c:133)
==16447==    by 0x24E1F1: pc_init1 (pc_piix.c:219)
==16447==    by 0x24E76A: pc_init_pci (pc_piix.c:310)
==16447==    by 0x2E9360: main (vl.c:4226)

Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
---
 hw/i386/pc_piix.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 1fe7bfb..49d87ee 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -227,6 +227,7 @@ static void pc_init1(MachineState *machine,
     for (i = 0; i < ISA_NUM_IRQS; i++) {
         gsi_state->i8259_irq[i] = i8259[i];
     }
+    g_free(i8259);
     if (pci_enabled) {
         ioapic_init_gsi(gsi_state, "i440fx");
     }
@@ -289,6 +290,7 @@ static void pc_init1(MachineState *machine,
         smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100,
                               gsi[9], *smi_irq,
                               kvm_enabled(), fw_cfg, &piix4_pm);
+        g_free(smi_irq);
         smbus_eeprom_init(smbus, 8, NULL, 0);
 
         object_property_add_link(OBJECT(machine), PC_MACHINE_ACPI_DEVICE_PROP,
-- 
2.0.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 2/3] hw/ide/pci: Fix memory leak
  2015-05-25  8:37 [Qemu-devel] [PATCH 0/3] Fix memory leak spotted by valgrind Shannon Zhao
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
@ 2015-05-25  8:37 ` Shannon Zhao
  2015-05-25 13:12   ` Paolo Bonzini
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 3/3] hw/i386/acpi-build: decref after use Shannon Zhao
  2 siblings, 1 reply; 7+ messages in thread
From: Shannon Zhao @ 2015-05-25  8:37 UTC (permalink / raw
  To: qemu-devel; +Cc: qemu-trivial, shannon.zhao

From: Shannon Zhao <shannon.zhao@linaro.org>

valgrind complains about:
==16447== 16 bytes in 2 blocks are definitely lost in loss record 1,304 of 3,310
==16447==    at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==16447==    by 0x2E4FD7: malloc_and_trace (vl.c:2546)
==16447==    by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
==16447==    by 0x36FB47: qemu_extend_irqs (irq.c:55)
==16447==    by 0x36FBD3: qemu_allocate_irqs (irq.c:64)
==16447==    by 0x3B4B44: bmdma_init (pci.c:464)
==16447==    by 0x3B547B: pci_piix_init_ports (piix.c:144)
==16447==    by 0x3B55D2: pci_piix_ide_realize (piix.c:164)
==16447==    by 0x3EAEC6: pci_qdev_realize (pci.c:1790)
==16447==    by 0x36C685: device_set_realized (qdev.c:1058)
==16447==    by 0x47179E: property_set_bool (object.c:1514)
==16447==    by 0x470098: object_property_set (object.c:837)

Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
---
 hw/ide/pci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index 1b3d1c1..c5c4441 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -464,6 +464,7 @@ void bmdma_init(IDEBus *bus, BMDMAState *bm, PCIIDEState *d)
     irq = qemu_allocate_irqs(bmdma_irq, bm, 1);
     bus->irq = *irq;
     bm->pci_dev = d;
+    g_free(irq);
 }
 
 static const TypeInfo pci_ide_type_info = {
-- 
2.0.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Qemu-devel] [PATCH 3/3] hw/i386/acpi-build: decref after use
  2015-05-25  8:37 [Qemu-devel] [PATCH 0/3] Fix memory leak spotted by valgrind Shannon Zhao
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 2/3] hw/ide/pci: " Shannon Zhao
@ 2015-05-25  8:37 ` Shannon Zhao
  2015-05-25 13:57   ` Igor Mammedov
  2 siblings, 1 reply; 7+ messages in thread
From: Shannon Zhao @ 2015-05-25  8:37 UTC (permalink / raw
  To: qemu-devel; +Cc: qemu-trivial, shannon.zhao

From: Shannon Zhao <shannon.zhao@linaro.org>

valgrind complains about:
==16447== 48 bytes in 2 blocks are definitely lost in loss record 2,033 of 3,310
==16447==    at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==16447==    by 0x2E4FD7: malloc_and_trace (vl.c:2546)
==16447==    by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
==16447==    by 0x53EC3F: qint_from_int (qint.c:33)
==16447==    by 0x53B426: qmp_output_type_int (qmp-output-visitor.c:162)
==16447==    by 0x539257: visit_type_uint32 (qapi-visit-core.c:147)
==16447==    by 0x471D07: property_get_uint32_ptr (object.c:1651)
==16447==    by 0x47000C: object_property_get (object.c:822)
==16447==    by 0x472428: object_property_get_qobject (qom-qobject.c:37)
==16447==    by 0x25701A: build_append_pci_bus_devices (acpi-build.c:520)
==16447==    by 0x25902E: build_ssdt (acpi-build.c:1004)
==16447==    by 0x25A0A8: acpi_build (acpi-build.c:1420)

Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
---
 hw/i386/acpi-build.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index d0a5c85..1b566c9 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -648,6 +648,7 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
         }
     }
     aml_append(parent_scope, method);
+    qobject_decref(bsel);
 }
 
 static void
-- 
2.0.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 2/3] hw/ide/pci: Fix memory leak
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 2/3] hw/ide/pci: " Shannon Zhao
@ 2015-05-25 13:12   ` Paolo Bonzini
  2015-05-26  1:24     ` Shannon Zhao
  0 siblings, 1 reply; 7+ messages in thread
From: Paolo Bonzini @ 2015-05-25 13:12 UTC (permalink / raw
  To: Shannon Zhao, qemu-devel; +Cc: qemu-trivial, shannon.zhao



On 25/05/2015 10:37, Shannon Zhao wrote:
> From: Shannon Zhao <shannon.zhao@linaro.org>
> 
> valgrind complains about:
> ==16447== 16 bytes in 2 blocks are definitely lost in loss record 1,304 of 3,310
> ==16447==    at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==16447==    by 0x2E4FD7: malloc_and_trace (vl.c:2546)
> ==16447==    by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
> ==16447==    by 0x36FB47: qemu_extend_irqs (irq.c:55)
> ==16447==    by 0x36FBD3: qemu_allocate_irqs (irq.c:64)
> ==16447==    by 0x3B4B44: bmdma_init (pci.c:464)
> ==16447==    by 0x3B547B: pci_piix_init_ports (piix.c:144)
> ==16447==    by 0x3B55D2: pci_piix_ide_realize (piix.c:164)
> ==16447==    by 0x3EAEC6: pci_qdev_realize (pci.c:1790)
> ==16447==    by 0x36C685: device_set_realized (qdev.c:1058)
> ==16447==    by 0x47179E: property_set_bool (object.c:1514)
> ==16447==    by 0x470098: object_property_set (object.c:837)
> 
> Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
> ---
>  hw/ide/pci.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/ide/pci.c b/hw/ide/pci.c
> index 1b3d1c1..c5c4441 100644
> --- a/hw/ide/pci.c
> +++ b/hw/ide/pci.c
> @@ -464,6 +464,7 @@ void bmdma_init(IDEBus *bus, BMDMAState *bm, PCIIDEState *d)
>      irq = qemu_allocate_irqs(bmdma_irq, bm, 1);
>      bus->irq = *irq;
>      bm->pci_dev = d;
> +    g_free(irq);
>  }

You can use qemu_allocate_irq here:

   bus->irq = qemu_allocate_irq(bmdma_irq, bm, 0);

Paolo

>  static const TypeInfo pci_ide_type_info = {
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 3/3] hw/i386/acpi-build: decref after use
  2015-05-25  8:37 ` [Qemu-devel] [PATCH 3/3] hw/i386/acpi-build: decref after use Shannon Zhao
@ 2015-05-25 13:57   ` Igor Mammedov
  0 siblings, 0 replies; 7+ messages in thread
From: Igor Mammedov @ 2015-05-25 13:57 UTC (permalink / raw
  To: Shannon Zhao; +Cc: qemu-trivial, qemu-devel, shannon.zhao

On Mon, 25 May 2015 16:37:57 +0800
Shannon Zhao <zhaoshenglong@huawei.com> wrote:

> From: Shannon Zhao <shannon.zhao@linaro.org>
> 
> valgrind complains about:
> ==16447== 48 bytes in 2 blocks are definitely lost in loss record 2,033 of 3,310
> ==16447==    at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==16447==    by 0x2E4FD7: malloc_and_trace (vl.c:2546)
> ==16447==    by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
> ==16447==    by 0x53EC3F: qint_from_int (qint.c:33)
> ==16447==    by 0x53B426: qmp_output_type_int (qmp-output-visitor.c:162)
> ==16447==    by 0x539257: visit_type_uint32 (qapi-visit-core.c:147)
> ==16447==    by 0x471D07: property_get_uint32_ptr (object.c:1651)
> ==16447==    by 0x47000C: object_property_get (object.c:822)
> ==16447==    by 0x472428: object_property_get_qobject (qom-qobject.c:37)
> ==16447==    by 0x25701A: build_append_pci_bus_devices (acpi-build.c:520)
> ==16447==    by 0x25902E: build_ssdt (acpi-build.c:1004)
> ==16447==    by 0x25A0A8: acpi_build (acpi-build.c:1420)
> 
> Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>

> ---
>  hw/i386/acpi-build.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index d0a5c85..1b566c9 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -648,6 +648,7 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus,
>          }
>      }
>      aml_append(parent_scope, method);
> +    qobject_decref(bsel);
>  }
>  
>  static void

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Qemu-devel] [PATCH 2/3] hw/ide/pci: Fix memory leak
  2015-05-25 13:12   ` Paolo Bonzini
@ 2015-05-26  1:24     ` Shannon Zhao
  0 siblings, 0 replies; 7+ messages in thread
From: Shannon Zhao @ 2015-05-26  1:24 UTC (permalink / raw
  To: Paolo Bonzini, qemu-devel; +Cc: qemu-trivial, shannon.zhao


On 2015/5/25 21:12, Paolo Bonzini wrote:
> 
> 
> On 25/05/2015 10:37, Shannon Zhao wrote:
>> From: Shannon Zhao <shannon.zhao@linaro.org>
>>
>> valgrind complains about:
>> ==16447== 16 bytes in 2 blocks are definitely lost in loss record 1,304 of 3,310
>> ==16447==    at 0x4C2845D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
>> ==16447==    by 0x2E4FD7: malloc_and_trace (vl.c:2546)
>> ==16447==    by 0x64C770E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3600.3)
>> ==16447==    by 0x36FB47: qemu_extend_irqs (irq.c:55)
>> ==16447==    by 0x36FBD3: qemu_allocate_irqs (irq.c:64)
>> ==16447==    by 0x3B4B44: bmdma_init (pci.c:464)
>> ==16447==    by 0x3B547B: pci_piix_init_ports (piix.c:144)
>> ==16447==    by 0x3B55D2: pci_piix_ide_realize (piix.c:164)
>> ==16447==    by 0x3EAEC6: pci_qdev_realize (pci.c:1790)
>> ==16447==    by 0x36C685: device_set_realized (qdev.c:1058)
>> ==16447==    by 0x47179E: property_set_bool (object.c:1514)
>> ==16447==    by 0x470098: object_property_set (object.c:837)
>>
>> Signed-off-by: Shannon Zhao <zhaoshenglong@huawei.com>
>> Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
>> ---
>>  hw/ide/pci.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/hw/ide/pci.c b/hw/ide/pci.c
>> index 1b3d1c1..c5c4441 100644
>> --- a/hw/ide/pci.c
>> +++ b/hw/ide/pci.c
>> @@ -464,6 +464,7 @@ void bmdma_init(IDEBus *bus, BMDMAState *bm, PCIIDEState *d)
>>      irq = qemu_allocate_irqs(bmdma_irq, bm, 1);
>>      bus->irq = *irq;
>>      bm->pci_dev = d;
>> +    g_free(irq);
>>  }
> 
> You can use qemu_allocate_irq here:
> 
>    bus->irq = qemu_allocate_irq(bmdma_irq, bm, 0);
> 

Ok, I see. Will replace it. Thanks.

> Paolo
> 
>>  static const TypeInfo pci_ide_type_info = {
>>
> 
> 

-- 
Shannon

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-05-26  1:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-25  8:37 [Qemu-devel] [PATCH 0/3] Fix memory leak spotted by valgrind Shannon Zhao
2015-05-25  8:37 ` [Qemu-devel] [PATCH 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
2015-05-25  8:37 ` [Qemu-devel] [PATCH 2/3] hw/ide/pci: " Shannon Zhao
2015-05-25 13:12   ` Paolo Bonzini
2015-05-26  1:24     ` Shannon Zhao
2015-05-25  8:37 ` [Qemu-devel] [PATCH 3/3] hw/i386/acpi-build: decref after use Shannon Zhao
2015-05-25 13:57   ` Igor Mammedov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.