All of lore.kernel.org
 help / color / mirror / Atom feed
From: Igor Mammedov <imammedo@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: peter.maydell@linaro.org,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	ehabkost@redhat.com, libvir-list@redhat.com,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	qemu-devel@nongnu.org, qemu-arm@nongnu.org, qemu-ppc@nongnu.org,
	pbonzini@redhat.com, david@gibson.dropbear.id.au
Subject: Re: [Qemu-arm] [Qemu-devel] [libvirt] [PATCH 1/2] numa: deprecate 'mem' parameter of '-numa node' option
Date: Tue, 19 Mar 2019 15:17:08 +0100	[thread overview]
Message-ID: <20190319151708.0969b53f@redhat.com> (raw)
In-Reply-To: <8736nvxci7.fsf@dusky.pond.sub.org>

On Sun, 10 Mar 2019 11:14:08 +0100
Markus Armbruster <armbru@redhat.com> wrote:

> Daniel P. Berrangé <berrange@redhat.com> writes:
> 
> > On Mon, Mar 04, 2019 at 12:45:14PM +0100, Markus Armbruster wrote:  
> >> Daniel P. Berrangé <berrange@redhat.com> writes:
> >>   
> >> > On Mon, Mar 04, 2019 at 08:13:53AM +0100, Markus Armbruster wrote:  
> >> >> If we deprecate outdated NUMA configurations now, we can start rejecting
> >> >> them with new machine types after a suitable grace period.  
> >> >
> >> > How is libvirt going to know what machines it can use with the feature ?
> >> > We don't have any way to introspect machine type specific logic, since we
> >> > run all probing with "-machine none", and QEMU can't report anything about
> >> > machines without instantiating them.  
> >> 
> >> Fair point.  A practical way for management applications to decide which
> >> of the two interfaces they can use with which machine type may be
> >> required for deprecating one of the interfaces with new machine types.  
> >
> > We currently have  "qom-list-properties" which can report on the
> > existance of properties registered against object types. What it
> > can't do though is report on the default values of these properties.  
> 
> Yes.
> 
> > What's interesting though is that qmp_qom_list_properties will actually
> > instantiate objects in order to query properties, if the type isn't an
> > abstract type.  
> 
> If it's an abstract type, qom-list-properties returns the properties
> created with object_class_property_add() & friends, typically by the
> class_init method.  This is possible without instantiating the type.
> 
> If it's a concrete type, qom-list-properties additionally returns the
> properties created with object_property_add(), typically by the
> instance_init() method.  This requires instantiating the type.
> 
> Both kinds of properties can be added or deleted at any time.  For
> instance, setting a property value with object_property_set() or similar
> could create additional properties.
> 
> For historical reasons, we use often use object_property_add() where
> object_class_property_add() would do.  Sad.
> 
> > IOW, even if you are running "$QEMU -machine none", then if at the qmp-shell
> > you do
> >
> >    (QEMU) qom-list-properties typename=pc-q35-2.6-machine
> >
> > it will have actually instantiate the pc-q35-2.6-machine machine type.
> > Since it has instantiated the machine, the object initializer function
> > will have run and initialized the default values for various properties.
> >
> > IOW, it is possible for qom-list-properties to report on default values
> > for non-abstract types.  
> 
> instance_init() also initializes the properties' values.
> qom-list-properties could show these initial values (I hesitate calling
> them default values).
> 
> Setting a property's value can change other properties' values by side
> effect.
> 
> My point is: the properties qom-list-properties shows and the initial
> values it could show are not necessarily final.  QOM is designed to be
> maximally flexible, and flexibility brings along its bosom-buddy
> complexity.
> 
> If you keep that in mind, qom-list-properties can be put to good use all
> the same.
> 
> A way to report "default values" (really: whatever the values are after
> object_new()) feels like a fair feature request to me, if backed by an
> actual use case.

Looks like trying to migrate from 'mem' to 'memdev', just creates another
train-wreck (where libvirt would have to hunt for 'right' backend
configuration to make migration work and even that would be best effort
attempt). If that would work reliably, I'd go for it since it allows to
drop 'mem' codepath altogether but it doesn't look possible.
So I'll look into adding machine level introspection and deprecating 'mem'
option for new machine types.

> [...]
> 


  reply	other threads:[~2019-03-19 14:19 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-01 15:42 [Qemu-devel] [PATCH 0/2] numa: deprecate -numa node, mem and default memory distribution Igor Mammedov
2019-03-01 15:42 ` Igor Mammedov
2019-03-01 15:42 ` [Qemu-arm] [PATCH 1/2] numa: deprecate 'mem' parameter of '-numa node' option Igor Mammedov
2019-03-01 15:42   ` [Qemu-devel] " Igor Mammedov
2019-03-01 15:49   ` [Qemu-devel] [libvirt] " Daniel P. Berrangé
2019-03-01 15:49     ` Daniel P. Berrangé
2019-03-01 17:33     ` [Qemu-arm] " Igor Mammedov
2019-03-01 17:33       ` Igor Mammedov
2019-03-01 17:48       ` [Qemu-arm] " Daniel P. Berrangé
2019-03-01 17:48         ` Daniel P. Berrangé
2019-03-04  7:13         ` [Qemu-arm] " Markus Armbruster
2019-03-04  7:13           ` Markus Armbruster
2019-03-04 10:19           ` [Qemu-arm] " Daniel P. Berrangé
2019-03-04 10:19             ` Daniel P. Berrangé
2019-03-04 11:45             ` [Qemu-arm] " Markus Armbruster
2019-03-04 11:45               ` Markus Armbruster
2019-03-04 15:28               ` [Qemu-arm] " Daniel P. Berrangé
2019-03-04 15:28                 ` Daniel P. Berrangé
2019-03-04 15:46                 ` [Qemu-arm] " Igor Mammedov
2019-03-04 15:46                   ` Igor Mammedov
2019-03-10 10:14                 ` [Qemu-arm] " Markus Armbruster
2019-03-10 10:14                   ` Markus Armbruster
2019-03-19 14:17                   ` Igor Mammedov [this message]
2019-03-04 14:24             ` Michal Privoznik
2019-03-04 14:24               ` Michal Privoznik
2019-03-04 15:03               ` [Qemu-arm] [libvirt] [Qemu-devel] " Igor Mammedov
2019-03-04 15:03                 ` [Qemu-devel] [libvirt] " Igor Mammedov
2019-03-04 12:25           ` [Qemu-arm] " Igor Mammedov
2019-03-04 12:25             ` Igor Mammedov
2019-03-04 12:39             ` [Qemu-arm] " Daniel P. Berrangé
2019-03-04 12:39               ` Daniel P. Berrangé
2019-03-04 14:16               ` [Qemu-arm] " Igor Mammedov
2019-03-04 14:16                 ` Igor Mammedov
2019-03-04 14:24                 ` [Qemu-arm] " Daniel P. Berrangé
2019-03-04 14:24                   ` Daniel P. Berrangé
2019-03-04 15:19                   ` [Qemu-arm] " Igor Mammedov
2019-03-04 15:19                     ` Igor Mammedov
2019-03-04 16:12                     ` [Qemu-arm] " Michal Privoznik
2019-03-04 16:12                       ` Michal Privoznik
2019-03-04 16:27                       ` [Qemu-arm] " Daniel P. Berrangé
2019-03-04 16:27                         ` Daniel P. Berrangé
2019-03-04 16:20                   ` Michal Privoznik
2019-03-04 16:20                     ` Michal Privoznik
2019-03-04 16:31                     ` Dr. David Alan Gilbert
2019-03-04 16:31                       ` Dr. David Alan Gilbert
2019-03-04 16:35                     ` [Qemu-arm] " Daniel P. Berrangé
2019-03-04 16:35                       ` Daniel P. Berrangé
2019-03-06 19:03                       ` [Qemu-arm] " Igor Mammedov
2019-03-06 19:03                         ` Igor Mammedov
2019-03-07  9:59                         ` [Qemu-arm] " Daniel P. Berrangé
2019-03-07  9:59                           ` Daniel P. Berrangé
2019-03-10 10:16                           ` [Qemu-arm] " Markus Armbruster
2019-03-10 10:16                             ` Markus Armbruster
2019-03-14 14:52                             ` Igor Mammedov
2019-03-06 19:56                     ` [Qemu-arm] " Igor Mammedov
2019-03-06 19:56                       ` Igor Mammedov
2019-03-04 14:34                 ` Michal Privoznik
2019-03-04 14:34                   ` Michal Privoznik
2019-03-04  8:11         ` [Qemu-arm] [Qemu-ppc] " Thomas Huth
2019-03-04  8:11           ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
2019-03-04 13:55           ` [Qemu-arm] [Qemu-ppc] [Qemu-devel] " Igor Mammedov
2019-03-04 13:55             ` [Qemu-devel] [Qemu-ppc] " Igor Mammedov
2019-03-04 13:59             ` [Qemu-arm] [Qemu-ppc] [Qemu-devel] " Daniel P. Berrangé
2019-03-04 13:59               ` [Qemu-devel] [Qemu-ppc] " Daniel P. Berrangé
2019-03-04 14:54               ` [Qemu-arm] [Qemu-ppc] [Qemu-devel] " Igor Mammedov
2019-03-04 14:54                 ` [Qemu-devel] [Qemu-ppc] " Igor Mammedov
2019-03-04 15:02                 ` [Qemu-arm] [Qemu-ppc] [Qemu-devel] " Daniel P. Berrangé
2019-03-04 15:02                   ` [Qemu-devel] [Qemu-ppc] " Daniel P. Berrangé
2019-03-04 16:45                   ` [Qemu-arm] [Qemu-ppc] [Qemu-devel] " Igor Mammedov
2019-03-04 16:45                     ` [Qemu-devel] [Qemu-ppc] " Igor Mammedov
2019-03-01 18:01       ` [Qemu-arm] [Qemu-devel] " Dr. David Alan Gilbert
2019-03-01 18:01         ` Dr. David Alan Gilbert
2019-03-04 13:52         ` [Qemu-arm] " Igor Mammedov
2019-03-04 13:52           ` Igor Mammedov
2019-03-18 16:44           ` [Qemu-arm] " Igor Mammedov
2019-03-01 15:42 ` [Qemu-arm] [PATCH 2/2] numa: deprecate implict memory distribution between nodes Igor Mammedov
2019-03-01 15:42   ` [Qemu-devel] " Igor Mammedov

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=20190319151708.0969b53f@redhat.com \
    --to=imammedo@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=dgilbert@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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.