All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind
@ 2015-05-26  1:46 Shannon Zhao
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Shannon Zhao @ 2015-05-26  1:46 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.

changes since v1:
  * use qemu_allocate_irq instead of qemu_allocate_irqs for allocating
    one irq (Paolo)
  * Add review-by from Igor for PATCH 3/3

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    | 7 ++++---
 hw/ide/pci.c         | 5 +----
 3 files changed, 6 insertions(+), 7 deletions(-)

-- 
2.0.4

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

* [Qemu-devel] [PATCH v2 1/3] hw/i386/pc_piix: Fix memory leak
  2015-05-26  1:46 [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind Shannon Zhao
@ 2015-05-26  1:46 ` Shannon Zhao
  2015-05-26  9:00   ` [Qemu-devel] [Qemu-trivial] " Marcel Apfelbaum
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 2/3] hw/ide/pci: " Shannon Zhao
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Shannon Zhao @ 2015-05-26  1:46 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 | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 1fe7bfb..d567887 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -89,7 +89,7 @@ static void pc_init1(MachineState *machine,
     qemu_irq *cpu_irq;
     qemu_irq *gsi;
     qemu_irq *i8259;
-    qemu_irq *smi_irq;
+    qemu_irq smi_irq;
     GSIState *gsi_state;
     DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
     BusState *idebus[MAX_IDE_BUS];
@@ -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");
     }
@@ -284,10 +285,10 @@ static void pc_init1(MachineState *machine,
         DeviceState *piix4_pm;
         I2CBus *smbus;
 
-        smi_irq = qemu_allocate_irqs(pc_acpi_smi_interrupt, first_cpu, 1);
+        smi_irq = qemu_allocate_irq(pc_acpi_smi_interrupt, first_cpu, 0);
         /* TODO: Populate SPD eeprom data.  */
         smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100,
-                              gsi[9], *smi_irq,
+                              gsi[9], smi_irq,
                               kvm_enabled(), fw_cfg, &piix4_pm);
         smbus_eeprom_init(smbus, 8, NULL, 0);
 
-- 
2.0.4

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

* [Qemu-devel] [PATCH v2 2/3] hw/ide/pci: Fix memory leak
  2015-05-26  1:46 [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind Shannon Zhao
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
@ 2015-05-26  1:46 ` Shannon Zhao
  2015-05-26  8:51   ` [Qemu-devel] [Qemu-trivial] " Marcel Apfelbaum
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 3/3] hw/i386/acpi-build: decref after use Shannon Zhao
  2015-05-28 11:39 ` [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind Michael Tokarev
  3 siblings, 1 reply; 7+ messages in thread
From: Shannon Zhao @ 2015-05-26  1:46 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 | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/hw/ide/pci.c b/hw/ide/pci.c
index 1b3d1c1..4b5e32d 100644
--- a/hw/ide/pci.c
+++ b/hw/ide/pci.c
@@ -452,8 +452,6 @@ static const struct IDEDMAOps bmdma_ops = {
 
 void bmdma_init(IDEBus *bus, BMDMAState *bm, PCIIDEState *d)
 {
-    qemu_irq *irq;
-
     if (bus->dma == &bm->dma) {
         return;
     }
@@ -461,8 +459,7 @@ void bmdma_init(IDEBus *bus, BMDMAState *bm, PCIIDEState *d)
     bm->dma.ops = &bmdma_ops;
     bus->dma = &bm->dma;
     bm->irq = bus->irq;
-    irq = qemu_allocate_irqs(bmdma_irq, bm, 1);
-    bus->irq = *irq;
+    bus->irq = qemu_allocate_irq(bmdma_irq, bm, 0);
     bm->pci_dev = d;
 }
 
-- 
2.0.4

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

* [Qemu-devel] [PATCH v2 3/3] hw/i386/acpi-build: decref after use
  2015-05-26  1:46 [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind Shannon Zhao
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 2/3] hw/ide/pci: " Shannon Zhao
@ 2015-05-26  1:46 ` Shannon Zhao
  2015-05-28 11:39 ` [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind Michael Tokarev
  3 siblings, 0 replies; 7+ messages in thread
From: Shannon Zhao @ 2015-05-26  1:46 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>
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
-- 
2.0.4

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

* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 2/3] hw/ide/pci: Fix memory leak
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 2/3] hw/ide/pci: " Shannon Zhao
@ 2015-05-26  8:51   ` Marcel Apfelbaum
  0 siblings, 0 replies; 7+ messages in thread
From: Marcel Apfelbaum @ 2015-05-26  8:51 UTC (permalink / raw)
  To: Shannon Zhao, qemu-devel; +Cc: qemu-trivial, shannon.zhao

On 05/26/2015 04:46 AM, 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 | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/hw/ide/pci.c b/hw/ide/pci.c
> index 1b3d1c1..4b5e32d 100644
> --- a/hw/ide/pci.c
> +++ b/hw/ide/pci.c
> @@ -452,8 +452,6 @@ static const struct IDEDMAOps bmdma_ops = {
>
>   void bmdma_init(IDEBus *bus, BMDMAState *bm, PCIIDEState *d)
>   {
> -    qemu_irq *irq;
> -
>       if (bus->dma == &bm->dma) {
>           return;
>       }
> @@ -461,8 +459,7 @@ void bmdma_init(IDEBus *bus, BMDMAState *bm, PCIIDEState *d)
>       bm->dma.ops = &bmdma_ops;
>       bus->dma = &bm->dma;
>       bm->irq = bus->irq;
> -    irq = qemu_allocate_irqs(bmdma_irq, bm, 1);
> -    bus->irq = *irq;
> +    bus->irq = qemu_allocate_irq(bmdma_irq, bm, 0);
>       bm->pci_dev = d;
>   }
>
>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>

Thanks,
Marcel

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

* Re: [Qemu-devel] [Qemu-trivial] [PATCH v2 1/3] hw/i386/pc_piix: Fix memory leak
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
@ 2015-05-26  9:00   ` Marcel Apfelbaum
  0 siblings, 0 replies; 7+ messages in thread
From: Marcel Apfelbaum @ 2015-05-26  9:00 UTC (permalink / raw)
  To: Shannon Zhao, qemu-devel; +Cc: qemu-trivial, shannon.zhao

On 05/26/2015 04:46 AM, Shannon Zhao wrote:
> 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 | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 1fe7bfb..d567887 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -89,7 +89,7 @@ static void pc_init1(MachineState *machine,
>       qemu_irq *cpu_irq;
>       qemu_irq *gsi;
>       qemu_irq *i8259;
> -    qemu_irq *smi_irq;
> +    qemu_irq smi_irq;
>       GSIState *gsi_state;
>       DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
>       BusState *idebus[MAX_IDE_BUS];
> @@ -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");
>       }
> @@ -284,10 +285,10 @@ static void pc_init1(MachineState *machine,
>           DeviceState *piix4_pm;
>           I2CBus *smbus;
>
> -        smi_irq = qemu_allocate_irqs(pc_acpi_smi_interrupt, first_cpu, 1);
> +        smi_irq = qemu_allocate_irq(pc_acpi_smi_interrupt, first_cpu, 0);
>           /* TODO: Populate SPD eeprom data.  */
>           smbus = piix4_pm_init(pci_bus, piix3_devfn + 3, 0xb100,
> -                              gsi[9], *smi_irq,
> +                              gsi[9], smi_irq,
>                                 kvm_enabled(), fw_cfg, &piix4_pm);
>           smbus_eeprom_init(smbus, 8, NULL, 0);
>
>

Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>

Thanks,
Marcel

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

* Re: [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind
  2015-05-26  1:46 [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind Shannon Zhao
                   ` (2 preceding siblings ...)
  2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 3/3] hw/i386/acpi-build: decref after use Shannon Zhao
@ 2015-05-28 11:39 ` Michael Tokarev
  3 siblings, 0 replies; 7+ messages in thread
From: Michael Tokarev @ 2015-05-28 11:39 UTC (permalink / raw)
  To: Shannon Zhao, qemu-devel; +Cc: qemu-trivial, shannon.zhao

26.05.2015 04:46, Shannon Zhao wrote:
> From: Shannon Zhao <shannon.zhao@linaro.org>
> 
> These patches fix memmory leak spotted by valgrind.
> 
> changes since v1:
>   * use qemu_allocate_irq instead of qemu_allocate_irqs for allocating
>     one irq (Paolo)
>   * Add review-by from Igor for PATCH 3/3
> 
> Shannon Zhao (3):
>   hw/i386/pc_piix: Fix memory leak
>   hw/ide/pci: Fix memory leak
>   hw/i386/acpi-build: decref after use

Applied all 3 of this v2 to -trivial, thank you!

/mjt

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

end of thread, other threads:[~2015-05-28 11:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-26  1:46 [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind Shannon Zhao
2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 1/3] hw/i386/pc_piix: Fix memory leak Shannon Zhao
2015-05-26  9:00   ` [Qemu-devel] [Qemu-trivial] " Marcel Apfelbaum
2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 2/3] hw/ide/pci: " Shannon Zhao
2015-05-26  8:51   ` [Qemu-devel] [Qemu-trivial] " Marcel Apfelbaum
2015-05-26  1:46 ` [Qemu-devel] [PATCH v2 3/3] hw/i386/acpi-build: decref after use Shannon Zhao
2015-05-28 11:39 ` [Qemu-devel] [PATCH v2 0/3] Fix memory leak spotted by valgrind Michael Tokarev

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.