All of lore.kernel.org
 help / color / mirror / Atom feed
From: gaojinhao <gaojinhao@huawei.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: "Michael S . Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Stefan Berger" <stefanb@linux.vnet.ibm.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"Greg Kurz" <groug@kaod.org>,
	"Juan Quintela" <quintela@redhat.com>,
	"qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
	"Wanghaibin (D)" <wanghaibin.wang@huawei.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	zhukeqian <zhukeqian1@huawei.com>,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>
Subject: RE: [PATCH 4/8] spapr_pci: Fix memory leak of vmstate_spapr_pci
Date: Mon, 28 Dec 2020 09:31:34 +0000	[thread overview]
Message-ID: <6416730c88794a97b48ea03b2ea9416c@huawei.com> (raw)
In-Reply-To: <20201228083013.GM6952@yekko.fritz.box>

Thank you for you reply, I understand.

Jinhao Gao

-----Original Message-----
From: David Gibson [mailto:david@gibson.dropbear.id.au] 
Sent: 2020年12月28日 16:30
To: gaojinhao <gaojinhao@huawei.com>
Cc: qemu-devel@nongnu.org; qemu-ppc@nongnu.org; Marc-André Lureau <marcandre.lureau@redhat.com>; Stefan Berger <stefanb@linux.vnet.ibm.com>; Michael S . Tsirkin <mst@redhat.com>; Jason Wang <jasowang@redhat.com>; Greg Kurz <groug@kaod.org>; Juan Quintela <quintela@redhat.com>; Dr . David Alan Gilbert <dgilbert@redhat.com>; Wanghaibin (D) <wanghaibin.wang@huawei.com>; zhukeqian <zhukeqian1@huawei.com>
Subject: Re: [PATCH 4/8] spapr_pci: Fix memory leak of vmstate_spapr_pci

On Mon, Dec 28, 2020 at 08:10:31AM +0000, gaojinhao wrote:
> Hi David,
> Firstly, thank you for you review. And then for your review, I worry 
> that a memory leak will occur if QEMU exits after saves vmsd. So, we 
> free it in post_save func.

If qemu exits, all its memory will be freed, so we don't care.

> 
> Jinhao Gao
> 
> -----Original Message-----
> From: David Gibson [mailto:david@gibson.dropbear.id.au]
> Sent: 2020-12-28 14:58
> To: gaojinhao <gaojinhao@huawei.com>
> Cc: qemu-devel@nongnu.org; qemu-ppc@nongnu.org; Marc-André Lureau 
> <marcandre.lureau@redhat.com>; Stefan Berger 
> <stefanb@linux.vnet.ibm.com>; Michael S . Tsirkin <mst@redhat.com>; 
> Jason Wang <jasowang@redhat.com>; Greg Kurz <groug@kaod.org>; Juan 
> Quintela <quintela@redhat.com>; Dr . David Alan Gilbert 
> <dgilbert@redhat.com>; Wanghaibin (D) <wanghaibin.wang@huawei.com>; 
> zhukeqian <zhukeqian1@huawei.com>
> Subject: Re: [PATCH 4/8] spapr_pci: Fix memory leak of 
> vmstate_spapr_pci
> 
> On Sat, Dec 26, 2020 at 06:33:43PM +0800, g00517791 wrote:
> > From: Jinhao Gao <gaojinhao@huawei.com>
> > 
> > When VM migrate VMState of spapr_pci, the field(msi_devs) of 
> > spapr_pci having a flag of VMS_ALLOC need to allocate memory. If the 
> > src doesn't free memory of msi_devs in SaveStateEntry of spapr_pci 
> > after QEMUFile save VMState of spapr_pci, it may result in memory leak of msi_devs.
> > We add the post_save func to free memory, which prevents memory leak.
> > 
> > Signed-off-by: Jinhao Gao <gaojinhao@huawei.com>
> 
> Not really a memory leak, since it will get freed on the next 
> pre_save.  But, we might as well free it earlier if we can ,so
> 
> Acked-by: David Gibson <david@gibson.dropbear.id.au>
> 
> > ---
> >  hw/ppc/spapr_pci.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index
> > 76d7c91e9c..1b2b940606 100644
> > --- a/hw/ppc/spapr_pci.c
> > +++ b/hw/ppc/spapr_pci.c
> > @@ -2173,6 +2173,16 @@ static int spapr_pci_pre_save(void *opaque)
> >      return 0;
> >  }
> >  
> > +static int spapr_pci_post_save(void *opaque) {
> > +    SpaprPhbState *sphb = opaque;
> > +
> > +    g_free(sphb->msi_devs);
> > +    sphb->msi_devs = NULL;
> > +    sphb->msi_devs_num = 0;
> > +    return 0;
> > +}
> > +
> >  static int spapr_pci_post_load(void *opaque, int version_id)  {
> >      SpaprPhbState *sphb = opaque;
> > @@ -2205,6 +2215,7 @@ static const VMStateDescription vmstate_spapr_pci = {
> >      .version_id = 2,
> >      .minimum_version_id = 2,
> >      .pre_save = spapr_pci_pre_save,
> > +    .post_save = spapr_pci_post_save,
> >      .post_load = spapr_pci_post_load,
> >      .fields = (VMStateField[]) {
> >          VMSTATE_UINT64_EQUAL(buid, SpaprPhbState, NULL),
> 

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

  reply	other threads:[~2020-12-28  9:34 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-26 10:33 [PATCH 0/8] Fix memory leak of some device state in migration g00517791
2020-12-26 10:33 ` [PATCH 1/8] vmbus: Fix memory leak of vmstate_gpadl g00517791
2020-12-26 10:33 ` [PATCH 2/8] virtio-net: Fix memory leak of vmstate_virtio_net_rss g00517791
2020-12-26 10:33 ` [PATCH 3/8] spapr: Fix memory leak of vmstate_spapr_event_entry g00517791
2020-12-28  6:56   ` David Gibson
2020-12-26 10:33 ` [PATCH 4/8] spapr_pci: Fix memory leak of vmstate_spapr_pci g00517791
2020-12-28  6:58   ` David Gibson
2020-12-28  8:10     ` gaojinhao
2020-12-28  8:30       ` David Gibson
2020-12-28  9:31         ` gaojinhao [this message]
2020-12-26 10:33 ` [PATCH 5/8] savevm: Fix memory leak of vmstate_configuration g00517791
2020-12-26 10:33 ` [PATCH 6/8] vmbus: Fix memory leak of vmstate_vmbus_chan_req g00517791
2020-12-26 10:33 ` [PATCH 7/8] tpm_emulator: Fix memory leak of vmstate_tpm_emulator g00517791
2020-12-26 10:33 ` [PATCH 8/8] dbus-vmstate: Fix memory leak of dbus_vmstate g00517791
2020-12-26 16:39 ` [PATCH 0/8] Fix memory leak of some device state in migration no-reply
2020-12-27 13:19 ` Michael S. Tsirkin
2020-12-28  8:00   ` gaojinhao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6416730c88794a97b48ea03b2ea9416c@huawei.com \
    --to=gaojinhao@huawei.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=dgilbert@redhat.com \
    --cc=groug@kaod.org \
    --cc=jasowang@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanb@linux.vnet.ibm.com \
    --cc=wanghaibin.wang@huawei.com \
    --cc=zhukeqian1@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.