All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabiano Rosas <farosas@suse.de>
To: Peter Xu <peterx@redhat.com>, qemu-devel@nongnu.org
Cc: peterx@redhat.com, "Igor Mammedov" <imammedo@redhat.com>,
	"Juraj Marcin" <jmarcin@redhat.com>,
	"Michael S . Tsirkin" <mst@redhat.com>,
	"Dr . David Alan Gilbert" <dave@treblig.org>,
	"Cédric Le Goater" <clg@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Daniel P . Berrangé" <berrange@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>
Subject: Re: [PATCH 3/4] migration: Make migration object a singleton object
Date: Thu, 24 Oct 2024 16:20:14 -0300	[thread overview]
Message-ID: <878qudfgup.fsf@suse.de> (raw)
In-Reply-To: <20241024165627.1372621-4-peterx@redhat.com>

Peter Xu <peterx@redhat.com> writes:

> This makes the migration object a singleton unit.  After this, we can do
> something slightly tricky later on with the guarantee that nobody will be
> able to create the object twice.
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  migration/migration.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/migration/migration.c b/migration/migration.c
> index bcb735869b..1b5285af95 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -45,6 +45,7 @@
>  #include "qapi/qmp/qerror.h"
>  #include "qapi/qmp/qnull.h"
>  #include "qemu/rcu.h"
> +#include "qom/object_interfaces.h"
>  #include "postcopy-ram.h"
>  #include "qemu/thread.h"
>  #include "trace.h"
> @@ -3855,11 +3856,19 @@ fail:
>      migrate_fd_cleanup(s);
>  }
>  
> +static Object* migration_get_instance(Error **errp)

static Object *migration_get_instance(Error **errp)
              ^

> +{
> +    return OBJECT(current_migration);
> +}
> +
>  static void migration_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
> +    SingletonClass *singleton = SINGLETON_CLASS(klass);
>  
>      dc->user_creatable = false;
> +    singleton->get_instance = migration_get_instance;
> +
>      device_class_set_props(dc, migration_properties);
>  }
>  
> @@ -3932,6 +3941,10 @@ static const TypeInfo migration_type = {
>      .instance_size = sizeof(MigrationState),
>      .instance_init = migration_instance_init,
>      .instance_finalize = migration_instance_finalize,
> +    .interfaces = (InterfaceInfo[]) {
> +        { TYPE_SINGLETON },
> +        { }
> +    }
>  };
>  
>  static void register_migration_types(void)


  reply	other threads:[~2024-10-24 19:20 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-24 16:56 [PATCH 0/4] QOM: Singleton interface Peter Xu
2024-10-24 16:56 ` [PATCH 1/4] qom: TYPE_SINGLETON interface Peter Xu
2024-10-24 20:02   ` Philippe Mathieu-Daudé
2024-10-24 20:53     ` Peter Xu
2024-10-25 15:11       ` Philippe Mathieu-Daudé
2024-10-25 16:21         ` Peter Xu
2024-10-25  8:07   ` Markus Armbruster
2024-10-25 15:17     ` Peter Xu
2024-10-25  9:51   ` Daniel P. Berrangé
2024-10-25 16:17     ` Peter Xu
2024-10-25 16:22       ` Daniel P. Berrangé
2024-10-25 22:10         ` Peter Xu
2024-10-29  0:01           ` Peter Xu
2024-10-25 16:37     ` Peter Xu
2024-10-24 16:56 ` [PATCH 2/4] x86/iommu: Make x86-iommu a singleton object Peter Xu
2024-10-25  9:25   ` Markus Armbruster
2024-10-25 21:55     ` Peter Xu
2024-10-25 22:13       ` Peter Xu
2024-11-07 11:12         ` Markus Armbruster
2024-11-07 15:29           ` Peter Xu
2024-11-08  8:50             ` Markus Armbruster
2024-10-29 10:47   ` Daniel P. Berrangé
2024-10-29 14:32     ` Peter Xu
2024-10-24 16:56 ` [PATCH 3/4] migration: Make migration object " Peter Xu
2024-10-24 19:20   ` Fabiano Rosas [this message]
2024-10-24 16:56 ` [PATCH 4/4] migration: Reset current_migration properly Peter Xu
2024-10-24 19:34   ` Fabiano Rosas
2024-10-24 20:15     ` Peter Xu
2024-10-24 20:51       ` Fabiano Rosas
2024-10-25  7:38 ` [PATCH 0/4] QOM: Singleton interface Markus Armbruster
2024-10-25 15:01   ` Peter Xu
2024-10-29 10:42     ` Daniel P. Berrangé
2024-10-29 14:45       ` Peter Xu
2024-10-29 16:04         ` Daniel P. Berrangé
2024-10-29 17:05           ` Peter Xu
2024-10-29 17:17             ` Daniel P. Berrangé
2024-12-11  8:19             ` Markus Armbruster
2024-12-11 22:10               ` Peter Xu

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=878qudfgup.fsf@suse.de \
    --to=farosas@suse.de \
    --cc=alex.williamson@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=clg@redhat.com \
    --cc=dave@treblig.org \
    --cc=eduardo@habkost.net \
    --cc=imammedo@redhat.com \
    --cc=jmarcin@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.