* [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.