[Qemu-devel] [PATCH v2 00/30] Various memory leak fixes

Marc-André Lureau posted 30 patches 7 years, 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170221141451.28305-1-marcandre.lureau@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
include/glib-compat.h           |  21 +++++++
include/hw/ptimer.h             |   1 +
include/hw/usb.h                |   5 --
include/qemu/timer.h            |   5 +-
tests/libqos/usb.h              |   1 +
tests/libqos/virtio-pci.h       |   6 +-
hw/acpi/pcihp.c                 |  11 ----
hw/core/bus.c                   |   2 +-
hw/core/ptimer.c                |   8 +++
hw/i386/acpi-build.c            |   4 +-
hw/usb/bus.c                    |   9 +--
hw/usb/dev-audio.c              |   4 +-
hw/usb/dev-bluetooth.c          |   4 +-
hw/usb/dev-hid.c                |   4 +-
hw/usb/dev-hub.c                |   4 +-
hw/usb/dev-network.c            |   4 +-
hw/usb/dev-smartcard-reader.c   |   4 +-
hw/usb/dev-storage.c            |  16 ++++++
hw/usb/dev-uas.c                |   6 +-
hw/usb/dev-wacom.c              |   4 +-
hw/usb/host-libusb.c            |   4 +-
hw/usb/redirect.c               |   4 +-
migration/savevm.c              |   1 +
qemu-timer.c                    |   5 --
qtest.c                         |   1 +
tests/bios-tables-test.c        |   2 +-
tests/e1000-test.c              |   1 +
tests/e1000e-test.c             |   6 +-
tests/eepro100-test.c           |   1 +
tests/endianness-test.c         |   3 +
tests/hd-geo-test.c             |  47 ++++++++++------
tests/i440fx-test.c             |   5 ++
tests/ide-test.c                |  12 ++++
tests/ipmi-bt-test.c            |   1 +
tests/ipmi-kcs-test.c           |   1 +
tests/libqos/usb.c              |   6 ++
tests/libqos/virtio-pci.c       |  38 +++++++++++--
tests/libqtest.c                |  10 ----
tests/postcopy-test.c           |   2 +-
tests/ptimer-test-stubs.c       |   5 ++
tests/ptimer-test.c             | 122 ++++++++++++++++++++++++----------------
tests/pvpanic-test.c            |   1 +
tests/q35-test.c                |   3 +
tests/tco-test.c                |  35 +++++++-----
tests/test-filter-mirror.c      |   2 +-
tests/test-filter-redirector.c  |   4 +-
tests/test-io-channel-command.c |   6 +-
tests/usb-hcd-ehci-test.c       |  19 +++++--
tests/usb-hcd-uhci-test.c       |   1 +
tests/vhost-user-test.c         |  11 ++--
tests/virtio-9p-test.c          |   2 +-
tests/virtio-blk-test.c         |  29 +++++-----
tests/virtio-scsi-test.c        |   2 +-
53 files changed, 338 insertions(+), 177 deletions(-)
[Qemu-devel] [PATCH v2 00/30] Various memory leak fixes
Posted by Marc-André Lureau 7 years, 2 months ago
After this series removing a few memory leaks, make check with ASAN
enabled gives a "clean" run with x86_64-softmmu target (there are
warnings related to coroutine makecontext/swapcontext).

This should help spot memory related regressions when introducing one.

Note: some of these patches were sent and reviewed previously but not
yet applied, I rebased them and included them here for completeness.

v2:
- add r-b tags
- fix gtest compatibility with old glib
- add "migration: fix id leak regression" patch

Igor Mammedov (1):
  pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice

Marc-André Lureau (29):
  qtest: fix a memory leak
  tests: fix qmp response leak
  tests: fix leaks in test-io-channel-command
  timer: use an inline function for free
  glib-compat: add g_test_add_data_func_full fallback
  tests: fix ptimer leaks
  tests: fix endianness-test leaks
  tests: fix q35-test leaks
  tests: fix vhost-user-test leaks
  tests: fix ide-test leaks
  tests: fix hd-geo-test leaks
  tests: fix bios-tables-test leak
  tests: fix ipmi-kcs-test leak
  tests: fix ipmi-bt-test leak
  tests: fix eepro100-test leak
  tests: fix tco-test leaks
  tests: fix e1000-test leak
  tests: fix i440fx-test leaks
  tests: fix e1000e leaks
  tests: fix virtio-scsi-test leak
  tests: fix virtio-9p-test leaks
  bus: do not unref hotplug handler
  usb: replace handle_destroy with unrealize
  usb: release the created buses
  tests: allows to run single test in usb-hcd-ehci-test
  tests: fix usb-test leaks
  tests: add specialized device_find function
  tests: fix virtio-blk-test leaks
  migration: fix id leak regression

 include/glib-compat.h           |  21 +++++++
 include/hw/ptimer.h             |   1 +
 include/hw/usb.h                |   5 --
 include/qemu/timer.h            |   5 +-
 tests/libqos/usb.h              |   1 +
 tests/libqos/virtio-pci.h       |   6 +-
 hw/acpi/pcihp.c                 |  11 ----
 hw/core/bus.c                   |   2 +-
 hw/core/ptimer.c                |   8 +++
 hw/i386/acpi-build.c            |   4 +-
 hw/usb/bus.c                    |   9 +--
 hw/usb/dev-audio.c              |   4 +-
 hw/usb/dev-bluetooth.c          |   4 +-
 hw/usb/dev-hid.c                |   4 +-
 hw/usb/dev-hub.c                |   4 +-
 hw/usb/dev-network.c            |   4 +-
 hw/usb/dev-smartcard-reader.c   |   4 +-
 hw/usb/dev-storage.c            |  16 ++++++
 hw/usb/dev-uas.c                |   6 +-
 hw/usb/dev-wacom.c              |   4 +-
 hw/usb/host-libusb.c            |   4 +-
 hw/usb/redirect.c               |   4 +-
 migration/savevm.c              |   1 +
 qemu-timer.c                    |   5 --
 qtest.c                         |   1 +
 tests/bios-tables-test.c        |   2 +-
 tests/e1000-test.c              |   1 +
 tests/e1000e-test.c             |   6 +-
 tests/eepro100-test.c           |   1 +
 tests/endianness-test.c         |   3 +
 tests/hd-geo-test.c             |  47 ++++++++++------
 tests/i440fx-test.c             |   5 ++
 tests/ide-test.c                |  12 ++++
 tests/ipmi-bt-test.c            |   1 +
 tests/ipmi-kcs-test.c           |   1 +
 tests/libqos/usb.c              |   6 ++
 tests/libqos/virtio-pci.c       |  38 +++++++++++--
 tests/libqtest.c                |  10 ----
 tests/postcopy-test.c           |   2 +-
 tests/ptimer-test-stubs.c       |   5 ++
 tests/ptimer-test.c             | 122 ++++++++++++++++++++++++----------------
 tests/pvpanic-test.c            |   1 +
 tests/q35-test.c                |   3 +
 tests/tco-test.c                |  35 +++++++-----
 tests/test-filter-mirror.c      |   2 +-
 tests/test-filter-redirector.c  |   4 +-
 tests/test-io-channel-command.c |   6 +-
 tests/usb-hcd-ehci-test.c       |  19 +++++--
 tests/usb-hcd-uhci-test.c       |   1 +
 tests/vhost-user-test.c         |  11 ++--
 tests/virtio-9p-test.c          |   2 +-
 tests/virtio-blk-test.c         |  29 +++++-----
 tests/virtio-scsi-test.c        |   2 +-
 53 files changed, 338 insertions(+), 177 deletions(-)

-- 
2.11.0.295.gd7dffce1c.dirty


Re: [Qemu-devel] [PATCH v2 00/30] Various memory leak fixes
Posted by Marc-André Lureau 7 years, 1 month ago
Hi

On Tue, Feb 21, 2017 at 6:27 PM Marc-André Lureau <
marcandre.lureau@redhat.com> wrote:

> After this series removing a few memory leaks, make check with ASAN
> enabled gives a "clean" run with x86_64-softmmu target (there are
> warnings related to coroutine makecontext/swapcontext).
>
> This should help spot memory related regressions when introducing one.
>
> Note: some of these patches were sent and reviewed previously but not
> yet applied, I rebased them and included them here for completeness.
>

The series is missing reviews of the following patches: 8, 9, 11, 12, 17,
19, 20, 28, 29

Any volunteer? Thanks!


>
> v2:
> - add r-b tags
> - fix gtest compatibility with old glib
> - add "migration: fix id leak regression" patch
>
> Igor Mammedov (1):
>   pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice
>
> Marc-André Lureau (29):
>   qtest: fix a memory leak
>   tests: fix qmp response leak
>   tests: fix leaks in test-io-channel-command
>   timer: use an inline function for free
>   glib-compat: add g_test_add_data_func_full fallback
>   tests: fix ptimer leaks
>   tests: fix endianness-test leaks
>   tests: fix q35-test leaks
>   tests: fix vhost-user-test leaks
>   tests: fix ide-test leaks
>   tests: fix hd-geo-test leaks
>   tests: fix bios-tables-test leak
>   tests: fix ipmi-kcs-test leak
>   tests: fix ipmi-bt-test leak
>   tests: fix eepro100-test leak
>   tests: fix tco-test leaks
>   tests: fix e1000-test leak
>   tests: fix i440fx-test leaks
>   tests: fix e1000e leaks
>   tests: fix virtio-scsi-test leak
>   tests: fix virtio-9p-test leaks
>   bus: do not unref hotplug handler
>   usb: replace handle_destroy with unrealize
>   usb: release the created buses
>   tests: allows to run single test in usb-hcd-ehci-test
>   tests: fix usb-test leaks
>   tests: add specialized device_find function
>   tests: fix virtio-blk-test leaks
>   migration: fix id leak regression
>
>  include/glib-compat.h           |  21 +++++++
>  include/hw/ptimer.h             |   1 +
>  include/hw/usb.h                |   5 --
>  include/qemu/timer.h            |   5 +-
>  tests/libqos/usb.h              |   1 +
>  tests/libqos/virtio-pci.h       |   6 +-
>  hw/acpi/pcihp.c                 |  11 ----
>  hw/core/bus.c                   |   2 +-
>  hw/core/ptimer.c                |   8 +++
>  hw/i386/acpi-build.c            |   4 +-
>  hw/usb/bus.c                    |   9 +--
>  hw/usb/dev-audio.c              |   4 +-
>  hw/usb/dev-bluetooth.c          |   4 +-
>  hw/usb/dev-hid.c                |   4 +-
>  hw/usb/dev-hub.c                |   4 +-
>  hw/usb/dev-network.c            |   4 +-
>  hw/usb/dev-smartcard-reader.c   |   4 +-
>  hw/usb/dev-storage.c            |  16 ++++++
>  hw/usb/dev-uas.c                |   6 +-
>  hw/usb/dev-wacom.c              |   4 +-
>  hw/usb/host-libusb.c            |   4 +-
>  hw/usb/redirect.c               |   4 +-
>  migration/savevm.c              |   1 +
>  qemu-timer.c                    |   5 --
>  qtest.c                         |   1 +
>  tests/bios-tables-test.c        |   2 +-
>  tests/e1000-test.c              |   1 +
>  tests/e1000e-test.c             |   6 +-
>  tests/eepro100-test.c           |   1 +
>  tests/endianness-test.c         |   3 +
>  tests/hd-geo-test.c             |  47 ++++++++++------
>  tests/i440fx-test.c             |   5 ++
>  tests/ide-test.c                |  12 ++++
>  tests/ipmi-bt-test.c            |   1 +
>  tests/ipmi-kcs-test.c           |   1 +
>  tests/libqos/usb.c              |   6 ++
>  tests/libqos/virtio-pci.c       |  38 +++++++++++--
>  tests/libqtest.c                |  10 ----
>  tests/postcopy-test.c           |   2 +-
>  tests/ptimer-test-stubs.c       |   5 ++
>  tests/ptimer-test.c             | 122
> ++++++++++++++++++++++++----------------
>  tests/pvpanic-test.c            |   1 +
>  tests/q35-test.c                |   3 +
>  tests/tco-test.c                |  35 +++++++-----
>  tests/test-filter-mirror.c      |   2 +-
>  tests/test-filter-redirector.c  |   4 +-
>  tests/test-io-channel-command.c |   6 +-
>  tests/usb-hcd-ehci-test.c       |  19 +++++--
>  tests/usb-hcd-uhci-test.c       |   1 +
>  tests/vhost-user-test.c         |  11 ++--
>  tests/virtio-9p-test.c          |   2 +-
>  tests/virtio-blk-test.c         |  29 +++++-----
>  tests/virtio-scsi-test.c        |   2 +-
>  53 files changed, 338 insertions(+), 177 deletions(-)
>
> --
> 2.11.0.295.gd7dffce1c.dirty
>
>
> --
Marc-André Lureau
Re: [Qemu-devel] [PATCH v2 00/30] Various memory leak fixes
Posted by Eric Blake 7 years, 1 month ago
On 02/27/2017 05:04 AM, Marc-André Lureau wrote:
> Hi
> 
> On Tue, Feb 21, 2017 at 6:27 PM Marc-André Lureau <
> marcandre.lureau@redhat.com> wrote:
> 
>> After this series removing a few memory leaks, make check with ASAN
>> enabled gives a "clean" run with x86_64-softmmu target (there are
>> warnings related to coroutine makecontext/swapcontext).
>>
>> This should help spot memory related regressions when introducing one.
>>
>> Note: some of these patches were sent and reviewed previously but not
>> yet applied, I rebased them and included them here for completeness.
>>
> 
> The series is missing reviews of the following patches: 8, 9, 11, 12, 17,
> 19, 20, 28, 29
> 
> Any volunteer? Thanks!

I think we've covered it all now; if not, ping me for another review.

As these are leak fixes, I think they are appropriate even if your pull
request missed soft freeze.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org