From: Peter Xu <peterx@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: qemu-devel@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
"Daniel P . Berrange" <berrange@redhat.com>,
Stefan Hajnoczi <shajnocz@redhat.com>,
Fam Zheng <famz@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Manos Pitsidianakis <el13635@mail.ntua.gr>
Subject: Re: [Qemu-devel] [PATCH v2 1/4] qom: provide root container for internal objs
Date: Tue, 26 Sep 2017 11:18:15 +0800 [thread overview]
Message-ID: <20170926031815.GL19505@pxdev.xzpeter.org> (raw)
In-Reply-To: <f8b295e1-e2c5-fdce-d4ea-2161490ca08b@suse.de>
On Mon, Sep 25, 2017 at 11:00:33AM +0200, Andreas Färber wrote:
> Hi,
>
> Am 25.09.2017 um 10:14 schrieb Peter Xu:
> > On Mon, Sep 25, 2017 at 09:14:21AM +0200, Andreas Färber wrote:
> >> Am 25.09.2017 um 08:37 schrieb Peter Xu:
> >>> We have object_get_objects_root() to keep user created objects, however
> >>> no place for objects that will be used internally. Create such a
> >>> container for internal objects.
> >>>
> >>> CC: Andreas Färber <afaerber@suse.de>
> >>> CC: Markus Armbruster <armbru@redhat.com>
> >>> CC: Paolo Bonzini <pbonzini@redhat.com>
> >>> Suggested-by: Daniel P. Berrange <berrange@redhat.com>
> >>> Signed-off-by: Peter Xu <peterx@redhat.com>
> >>> ---
> >>> include/qom/object.h | 10 ++++++++++
> >>> qom/object.c | 5 +++++
> >>> 2 files changed, 15 insertions(+)
> >>>
> >>> diff --git a/include/qom/object.h b/include/qom/object.h
> >>> index f3e5cff..f567052 100644
> >>> --- a/include/qom/object.h
> >>> +++ b/include/qom/object.h
> >>> @@ -1214,6 +1214,16 @@ Object *object_get_root(void);
> >>> Object *object_get_objects_root(void);
> >>>
> >>> /**
> >>> + * object_get_internal_root:
> >>> + *
> >>> + * Get the container object that holds internally used object
> >>> + * instances. This is the object at path "/internal-objects"
> >>> + *
> >>> + * Returns: the internal object container
> >>> + */
> >>> +Object *object_get_internal_root(void);
> >>> +
> >>> +/**
> >>> * object_get_canonical_path_component:
> >>> *
> >>> * Returns: The final component in the object's canonical path. The canonical
> >>> diff --git a/qom/object.c b/qom/object.c
> >>> index 3e18537..857cee7 100644
> >>> --- a/qom/object.c
> >>> +++ b/qom/object.c
> >>> @@ -1370,6 +1370,11 @@ Object *object_get_objects_root(void)
> >>> return container_get(object_get_root(), "/objects");
> >>> }
> >>>
> >>> +Object *object_get_internal_root(void)
> >>> +{
> >>> + return container_get(object_get_root(), "/internal-objects");
> >>
> >> Whatever you expose in the QOM tree is no longer internal. Other name?
> >
> > Hi, Andreas,
> >
> > If you mean "info qom-tree" here, can we still treat it as internal?
> > Since after all it's not exposed in QMP (while IMHO QMP is the
> > official protocol for QEMU clients). And IIUC some HMP commands do
> > dump some internal structs for debugging purpose (like: "info
> > ramblock").
> >
> > Or, do you have any suggestion?
> >
> > (I did think about something like "hidden-objects", but I believe they
> > are not hidden as well if we think they are not internal...)
>
> I'm on travels and only seeing this 1/4 without context - according to
> Manos apparently something about IOThreads.
>
> The reason that certain container groups such as "/machine/peripheral"
> exist was more of a legacy reason for migration from qdev, so yes I am
> critical of "/hidden-objects" as well. If the objects are not related to
> an existing device, you could just place them somewhere outside
> "/machine", e.g. directly in the root node or in a container specific to
> that use case (/io? /threads?), rather than a new generic bucket of
> whatever name. Any objects not under /machine should be close to what
> you consider internal.
>
> Note that "info qom-tree" is not the only way to query the objects,
> there's some Python QMP scripts as well.
I see. I'll take away Stefan's suggestion to create a standalone
container for internal objects, so that it will be totally hidden.
I didn't choose to allow parent == NULL to avoid breaking or modifying
QOM interfaces.
Preparing another post. Thanks all!
>
> Regards,
> Andreas
>
> --
> SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Felix Imendörffer, Jane Smithard, Graham Norton
> HRB 21284 (AG Nürnberg)
--
Peter Xu
next prev parent reply other threads:[~2017-09-26 3:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-25 6:37 [Qemu-devel] [PATCH v2 0/4] iothread: allow to create internal iothreads Peter Xu
2017-09-25 6:37 ` [Qemu-devel] [PATCH v2 1/4] qom: provide root container for internal objs Peter Xu
2017-09-25 7:14 ` Andreas Färber
2017-09-25 8:14 ` Peter Xu
2017-09-25 8:34 ` Manos Pitsidianakis
2017-09-25 9:55 ` Stefan Hajnoczi
2017-09-25 9:00 ` Andreas Färber
2017-09-26 3:18 ` Peter Xu [this message]
2017-09-25 9:01 ` Daniel P. Berrange
2017-09-25 6:37 ` [Qemu-devel] [PATCH v2 2/4] iothread: provide helpers for internal use Peter Xu
2017-09-25 6:37 ` [Qemu-devel] [PATCH v2 3/4] iothread: export iothread_stop() Peter Xu
2017-09-25 7:30 ` Fam Zheng
2017-09-25 9:56 ` Stefan Hajnoczi
2017-09-25 6:37 ` [Qemu-devel] [PATCH v2 4/4] iothread: delay the context release to finalize Peter Xu
2017-09-25 10:00 ` Stefan Hajnoczi
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=20170926031815.GL19505@pxdev.xzpeter.org \
--to=peterx@redhat.com \
--cc=afaerber@suse.de \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dgilbert@redhat.com \
--cc=el13635@mail.ntua.gr \
--cc=famz@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=shajnocz@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 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.