All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juan Quintela <quintela@redhat.com>
To: Jiang Jiacheng <jiangjiacheng@huawei.com>
Cc: <qemu-devel@nongnu.org>,  <berrange@redhat.com>,
	 <dgilbert@redhat.com>, <yubihong@huawei.com>,
	 <xiexiangyou@huawei.com>, <zhengchuan@huawei.com>,
	 <linyilu@huawei.com>
Subject: Re: [PATCH V2 1/2] migration: Introduce interface query-migrationthreads
Date: Fri, 03 Feb 2023 20:47:34 +0100	[thread overview]
Message-ID: <87k00yfs4p.fsf@secure.mitica> (raw)
In-Reply-To: <20230203073519.2969147-2-jiangjiacheng@huawei.com> (Jiang Jiacheng's message of "Fri, 3 Feb 2023 15:35:18 +0800")

Jiang Jiacheng <jiangjiacheng@huawei.com> wrote:
> Introduce interface query-migrationthreads. The interface is used
> to query information about migration threads and returns with
> migration thread's name and its id.
> Introduce threadinfo.c to manage threads with migration.
>
> Signed-off-by: Jiang Jiacheng <jiangjiacheng@huawei.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>

I will fix this by hand.

> +MigrationThread* MigrationThreadAdd(const char *name, int thread_id)
* on the left instead of the right.

> +{
> +    MigrationThread *thread = NULL;
> +
> +    thread = g_new0(MigrationThread, 1);

This is too much.

      MigrationThread *thread = g_new0(MigrationThread, 1);

If you initialize a variable, don't do a NULL and just in the next line
the right value.


> +    thread->name = (char*)name;

Why not doing it properly and call it just const char * on the header?

> +    thread->thread_id = thread_id;
> +
> +    QLIST_INSERT_HEAD(&migration_threads, thread, node);
> +
> +    return thread;
> +}
> +
> +void MigrationThreadDel(MigrationThread* thread)
> +{
> +    if (thread) {
> +        QLIST_REMOVE(thread, node);

Spaces for indentation

> +	    g_free(thread);

Tabs + spaces.

> +    }
> +}
> +
> +MigrationThreadInfoList* qmp_query_migrationthreads(Error **errp)

* on the worong side.

> +{
> +    MigrationThreadInfoList *head = NULL;
> +    MigrationThreadInfoList **tail = &head;
> +    MigrationThread *thread = NULL;
> +    MigrationThreadInfo *info = NULL;
> +
> +    QLIST_FOREACH(thread, &migration_threads, node) {
> +        info = g_new0(MigrationThreadInfo, 1);

MigrationThreadInfo *info = g_new0(MigrationThreadInfo, 1);

> +        info->name = g_strdup(thread->name);
> +        info->thread_id = thread->thread_id;
> +
> +        QAPI_LIST_APPEND(tail, info);
> +    }
> +
> +    return head;
> +}
> diff --git a/migration/threadinfo.h b/migration/threadinfo.h
> new file mode 100644
> index 0000000000..ebe86a2699
> --- /dev/null
> +++ b/migration/threadinfo.h
> @@ -0,0 +1,28 @@
> +/*
> + *  Migration Threads info
> + *
> + *  Copyright (c) 2022 HUAWEI TECHNOLOGIES CO., LTD.
> + *
> + *  Authors:
> + *  Jiang Jiacheng <jiangjiacheng@huawei.com>
> + *
> + *  This work is licensed under the terms of the GNU GPL, version 2 or later.
> + *  See the COPYING file in the top-level directory.
> + */
> +
> +#include "qemu/queue.h"
> +#include "qemu/osdep.h"
> +#include "qapi/error.h"
> +#include "qapi/qapi-commands-migration.h"
> +
> +typedef struct MigrationThread MigrationThread;
> +
> +struct MigrationThread {
> +    char *name; /* the name of migration thread */
> +    int thread_id; /* ID of the underlying host thread */
> +    QLIST_ENTRY(MigrationThread) node;
> +};
> +
> +MigrationThread *MigrationThreadAdd(const char *name, int thread_id);
> +
> +void MigrationThreadDel(MigrationThread* info);
> diff --git a/qapi/migration.json b/qapi/migration.json
> index 88ecf86ac8..c84fa10e86 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -1958,6 +1958,35 @@
>  { 'command': 'query-vcpu-dirty-limit',
>    'returns': [ 'DirtyLimitInfo' ] }
>  
> +##
> +# @MigrationThreadInfo:
> +#
> +# Information about migrationthreads
> +#
> +# @name: the name of migration thread
> +#
> +# @thread-id: ID of the underlying host thread
> +#
> +# Since: 7.2

            8.0

Same on the next one.

> +##
> +{ 'struct': 'MigrationThreadInfo',
> +  'data': {'name': 'str',
> +           'thread-id': 'int'} }
> +
> +##
> +# @query-migrationthreads:
> +#
> +# Returns information of migration threads
> +#
> +# data: migration thread name
> +#
> +# returns: information about migration threads
> +#
> +# Since: 7.2
> +##
> +{ 'command': 'query-migrationthreads',
> +  'returns': ['MigrationThreadInfo'] }
> +
>  ##
>  # @snapshot-save:
>  #

Later, Juan.



  reply	other threads:[~2023-02-03 19:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-03  7:35 [RFC PATCH V2 0/2] migration: support query migration thread information Jiang Jiacheng via
2023-02-03  7:35 ` [PATCH V2 1/2] migration: Introduce interface query-migrationthreads Jiang Jiacheng via
2023-02-03 19:47   ` Juan Quintela [this message]
2023-02-03  7:35 ` [PATCH V2 2/2] migration: save/delete migration thread info Jiang Jiacheng via
2023-02-03 19:56   ` Juan Quintela

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=87k00yfs4p.fsf@secure.mitica \
    --to=quintela@redhat.com \
    --cc=berrange@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=jiangjiacheng@huawei.com \
    --cc=linyilu@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=xiexiangyou@huawei.com \
    --cc=yubihong@huawei.com \
    --cc=zhengchuan@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.