From: Li Zhang <lizhang@suse.de>
To: quintela@redhat.com
Cc: cfontana@suse.de, qemu-devel@nongnu.org, dgilbert@redhat.com
Subject: Re: [PATCH v2 1/1] multifd: Remove some redundant code
Date: Thu, 27 Jan 2022 20:10:10 +0100 [thread overview]
Message-ID: <979a3bc6-a73e-3a23-3baf-f2d0776266a1@suse.de> (raw)
In-Reply-To: <fc7232e7-65c2-15d5-cb0c-68079ad119ab@suse.de>
On 1/27/22 7:31 PM, Li Zhang wrote:
> On 1/27/22 7:11 PM, Li Zhang wrote:
>> On 1/27/22 10:53 AM, Juan Quintela wrote:
>>> Li Zhang <lizhang@suse.de> wrote:
>>>> Clean up some unnecessary code
>>>>
>>>> Signed-off-by: Li Zhang <lizhang@suse.de>
>>>
>>> Hi
>>>
>>>> ---
>>>> migration/multifd.c | 12 +++---------
>>>> 1 file changed, 3 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/migration/multifd.c b/migration/multifd.c
>>>> index 3242f688e5..212be1ed04 100644
>>>> --- a/migration/multifd.c
>>>> +++ b/migration/multifd.c
>>>> @@ -854,19 +854,16 @@ static void
>>>> multifd_new_send_channel_async(QIOTask *task, gpointer opaque)
>>>> Error *local_err = NULL;
>>>> trace_multifd_new_send_channel_async(p->id);
>>>> - if (qio_task_propagate_error(task, &local_err)) {
>>>> - goto cleanup;
>>>> - } else {
>>>> + if (!qio_task_propagate_error(task, &local_err)) {
>>>> p->c = QIO_CHANNEL(sioc);
>>>> qio_channel_set_delay(p->c, false);
>>>> p->running = true;
>>>> if (!multifd_channel_connect(p, sioc, local_err)) {
>>>> - goto cleanup;
>>>> + multifd_new_send_channel_cleanup(p, sioc, local_err);
>>>> }
>>>> return;
>>>> }
>>>> -cleanup:
>>>> multifd_new_send_channel_cleanup(p, sioc, local_err);
>>>> }
>>>
>>> Once there, why are we duplicating the call to
>>> multifd_new_send_channel_cleanup()
>>>
>>> What about:
>>>
>>> static void multifd_new_send_channel_async(QIOTask *task, gpointer
>>> opaque)
>>> {
>>> MultiFDSendParams *p = opaque;
>>> QIOChannel *sioc = QIO_CHANNEL(qio_task_get_source(task));
>>> Error *local_err = NULL;
>>>
>>> trace_multifd_new_send_channel_async(p->id);
>>> if (!qio_task_propagate_error(task, &local_err)) {
>>> p->c = QIO_CHANNEL(sioc);
>>> qio_channel_set_delay(p->c, false);
>>> p->running = true;
>>> if (multifd_channel_connect(p, sioc, local_err)) {
>>> return;
>>> }
>>> }
>>> multifd_new_send_channel_cleanup(p, sioc, local_err);
>>> }
>>>
>>> What do you think?
>>
>> Hi Juan,
>>
>> Sorry about the code. I check it again, it still needs to cleaup
>> if it fails on multifd_channel_connect(). I just remove the goto
>> and put the cleanup function there.
>>
>> The second cleanup is called if (qio_task_propagate_error(task,
>> &local_err)) ), otherwise, it won't cleanup and return normally.
>>
>> If removing the first cleanup and move the return, the logic is not
>> right. It is that: when no error happens, it still calls the second
>> cleanup.
>>
>
> I checked source code from the qemu.
> This condition is not right,
> if (!multifd_channel_connect(p, sioc, local_err)) is not right.
> The function multifd_channel_connect return true if no error.
>
> The mail is right. :)
Please ignore my mail. I made mistakes and I will update it soon.
Thanks
LI
>
>>
>> Thanks
>> Li
>>>
>>> Later, Juan.
>>>
>>>
>>>> @@ -1078,10 +1075,7 @@ static void *multifd_recv_thread(void *opaque)
>>>> ret = qio_channel_read_all_eof(p->c, (void *)p->packet,
>>>> p->packet_len, &local_err);
>>>> - if (ret == 0) { /* EOF */
>>>> - break;
>>>> - }
>>>> - if (ret == -1) { /* Error */
>>>> + if (ret == 0 || ret == -1) { /* 0: EOF -1: Error */
>>>> break;
>>>> }
>>>
>>> This bit is ok.
>>>
>>
>
>
prev parent reply other threads:[~2022-01-27 19:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-17 10:12 [PATCH v2 1/1] multifd: Remove some redundant code Li Zhang
2022-01-06 10:06 ` Li Zhang
2022-01-27 9:53 ` Juan Quintela
2022-01-27 9:56 ` Li Zhang
2022-01-27 18:11 ` Li Zhang
2022-01-27 18:31 ` Li Zhang
2022-01-27 19:10 ` Li Zhang [this message]
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=979a3bc6-a73e-3a23-3baf-f2d0776266a1@suse.de \
--to=lizhang@suse.de \
--cc=cfontana@suse.de \
--cc=dgilbert@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.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 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).