* [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
* 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
* [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
* 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
* [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] [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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).