All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pan Nengyuan <pannengyuan@huawei.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: peter.maydell@linaro.org, zhang.zhanghailiang@huawei.com,
	David Hildenbrand <david@redhat.com>,
	qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
	qemu-arm@nongnu.org, euler.robot@huawei.com,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [PATCH v3 1/6] s390x: fix memleaks in cpu_finalize
Date: Thu, 27 Feb 2020 19:25:55 +0800	[thread overview]
Message-ID: <50512b17-856b-f509-adb6-46015e86e000@huawei.com> (raw)
In-Reply-To: <20200227120649.50e6ea68.cohuck@redhat.com>



On 2/27/2020 7:06 PM, Cornelia Huck wrote:
> On Thu, 27 Feb 2020 10:50:50 +0800
> Pan Nengyuan <pannengyuan@huawei.com> wrote:
> 
>> This patch fix memleaks when we call tests/qtest/cpu-plug-test on s390x. The leak stack is as follow:
>>
>> Direct leak of 48 byte(s) in 1 object(s) allocated from:
>>     #0 0x7fb43c7cd970 in __interceptor_calloc (/lib64/libasan.so.5+0xef970)
>>     #1 0x7fb43be2149d in g_malloc0 (/lib64/libglib-2.0.so.0+0x5249d)
>>     #2 0x558ba96da716 in timer_new_full /mnt/sdb/qemu-new/qemu/include/qemu/timer.h:530
>>     #3 0x558ba96da716 in timer_new /mnt/sdb/qemu-new/qemu/include/qemu/timer.h:551
>>     #4 0x558ba96da716 in timer_new_ns /mnt/sdb/qemu-new/qemu/include/qemu/timer.h:569
>>     #5 0x558ba96da716 in s390_cpu_initfn /mnt/sdb/qemu-new/qemu/target/s390x/cpu.c:285
>>     #6 0x558ba9c969ab in object_init_with_type /mnt/sdb/qemu-new/qemu/qom/object.c:372
>>     #7 0x558ba9c9eb5f in object_initialize_with_type /mnt/sdb/qemu-new/qemu/qom/object.c:516
>>     #8 0x558ba9c9f053 in object_new_with_type /mnt/sdb/qemu-new/qemu/qom/object.c:684
>>     #9 0x558ba967ede6 in s390x_new_cpu /mnt/sdb/qemu-new/qemu/hw/s390x/s390-virtio-ccw.c:64
>>     #10 0x558ba99764b3 in hmp_cpu_add /mnt/sdb/qemu-new/qemu/hw/core/machine-hmp-cmds.c:57
>>     #11 0x558ba9b1c27f in handle_hmp_command /mnt/sdb/qemu-new/qemu/monitor/hmp.c:1082
>>     #12 0x558ba96c1b02 in qmp_human_monitor_command /mnt/sdb/qemu-new/qemu/monitor/misc.c:142
>>
>> Reported-by: Euler Robot <euler.robot@huawei.com>
>> Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
>> ---
>> Cc: Richard Henderson <rth@twiddle.net>
>> Cc: David Hildenbrand <david@redhat.com>
>> Cc: Cornelia Huck <cohuck@redhat.com>
>> Cc: qemu-s390x@nongnu.org
>> ---
>> v2->v1:
>> - Similarly to other cleanups, move timer_new into realize(Suggested by Philippe Mathieu-Daudé)
>> v3->v2:
>> - Also do the timer_free in unrealize, it seems more balance.
>> ---
>>  target/s390x/cpu.c | 22 ++++++++++++++++++----
>>  1 file changed, 18 insertions(+), 4 deletions(-)
>>
>> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
>> index cf84d307c6..cc63c9db22 100644
>> --- a/target/s390x/cpu.c
>> +++ b/target/s390x/cpu.c
>> @@ -170,7 +170,12 @@ static void s390_cpu_realizefn(DeviceState *dev, Error **errp)
>>      S390CPUClass *scc = S390_CPU_GET_CLASS(dev);
>>  #if !defined(CONFIG_USER_ONLY)
>>      S390CPU *cpu = S390_CPU(dev);
>> +    cpu->env.tod_timer =
>> +        timer_new_ns(QEMU_CLOCK_VIRTUAL, s390x_tod_timer, cpu);
>> +    cpu->env.cpu_timer =
>> +        timer_new_ns(QEMU_CLOCK_VIRTUAL, s390x_cpu_timer, cpu);
>>  #endif
> 
> It does not seem you addressed the comments I had last time, namely
> - memory leak on error (we do not go through unrealize if the device
>   was never completely realized)
> - coding style (initialization in middle of declaration section)

I am sorry, I misread the peter's reply and miss the codeing style too.

Apologies for you. I will change it.

Thanks.

> 
>> +
>>      Error *err = NULL;
>>  
>>      /* the model has to be realized before qemu_init_vcpu() due to kvm */
> 
> .
> 


  reply	other threads:[~2020-02-27 11:27 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27  2:50 [PATCH v3 0/6] delay timer_new from init to realize to fix memleaks Pan Nengyuan
2020-02-27  2:50 ` [PATCH v3 1/6] s390x: fix memleaks in cpu_finalize Pan Nengyuan
2020-02-27  8:41   ` David Hildenbrand
2020-02-27  8:55     ` Philippe Mathieu-Daudé
2020-02-27  9:06       ` David Hildenbrand
2020-02-27  8:58     ` Pan Nengyuan
2020-02-27  9:04       ` David Hildenbrand
2020-02-27  9:15         ` Pan Nengyuan
2020-02-27 11:06   ` Cornelia Huck
2020-02-27 11:25     ` Pan Nengyuan [this message]
2020-03-02 14:34   ` Stefan Hajnoczi
2020-03-03  1:39     ` Pan Nengyuan
2020-02-27  2:50 ` [PATCH v3 2/6] hw/arm/pxa2xx: move timer_new from init() into realize() to avoid memleaks Pan Nengyuan
2020-02-27  2:50 ` [PATCH v3 3/6] hw/arm/spitz: " Pan Nengyuan
2020-02-27  2:50 ` [PATCH v3 4/6] hw/arm/strongarm: " Pan Nengyuan
2020-02-27  2:50 ` [PATCH v3 5/6] hw/misc/mos6522: " Pan Nengyuan
2020-03-02 13:21   ` Peter Maydell
2020-03-02 19:17     ` Mark Cave-Ayland
2020-03-03  1:36       ` Pan Nengyuan
2020-03-04 20:40         ` Mark Cave-Ayland
2020-02-27  2:50 ` [PATCH v3 6/6] hw/timer/cadence_ttc: " Pan Nengyuan
2020-02-27  6:33   ` Alistair Francis
2020-03-02 13:21 ` [PATCH v3 0/6] delay timer_new from init to realize to fix memleaks Peter Maydell
2020-03-03  1:26   ` Pan Nengyuan

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=50512b17-856b-f509-adb6-46015e86e000@huawei.com \
    --to=pannengyuan@huawei.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=euler.robot@huawei.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=rth@twiddle.net \
    --cc=zhang.zhanghailiang@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.