On Thu, Feb 09, 2023 at 01:12:17PM +0100, Nina Schoetterl-Glausch wrote: > On Thu, 2023-02-09 at 10:04 +0000, Daniel P. Berrangé wrote: > > On Wed, Feb 08, 2023 at 06:35:39PM +0100, Nina Schoetterl-Glausch wrote: > > > On Wed, 2023-02-01 at 14:20 +0100, Pierre Morel wrote: > > > > When the guest asks to change the polarity this change > > > > is forwarded to the admin using QAPI. > > > > The admin is supposed to take according decisions concerning > > > > CPU provisioning. > > > > > > > > Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx> > > > > --- > > > > qapi/machine-target.json | 30 ++++++++++++++++++++++++++++++ > > > > hw/s390x/cpu-topology.c | 2 ++ > > > > 2 files changed, 32 insertions(+) > > > > > > > > diff --git a/qapi/machine-target.json b/qapi/machine-target.json > > > > index 58df0f5061..5883c3b020 100644 > > > > --- a/qapi/machine-target.json > > > > +++ b/qapi/machine-target.json > > > > @@ -371,3 +371,33 @@ > > > > }, > > > > 'if': { 'all': [ 'TARGET_S390X', 'CONFIG_KVM' ] } > > > > } > > > > + > > > > +## > > > > +# @CPU_POLARITY_CHANGE: > > > > +# > > > > +# Emitted when the guest asks to change the polarity. > > > > +# > > > > +# @polarity: polarity specified by the guest > > > > +# > > > > +# The guest can tell the host (via the PTF instruction) whether the > > > > +# CPUs should be provisioned using horizontal or vertical polarity. > > > > +# > > > > +# On horizontal polarity the host is expected to provision all vCPUs > > > > +# equally. > > > > +# On vertical polarity the host can provision each vCPU differently. > > > > +# The guest will get information on the details of the provisioning > > > > +# the next time it uses the STSI(15) instruction. > > > > +# > > > > +# Since: 8.0 > > > > +# > > > > +# Example: > > > > +# > > > > +# <- { "event": "CPU_POLARITY_CHANGE", > > > > +# "data": { "polarity": 0 }, > > > > +# "timestamp": { "seconds": 1401385907, "microseconds": 422329 } } > > > > +# > > > > +## > > > > +{ 'event': 'CPU_POLARITY_CHANGE', > > > > + 'data': { 'polarity': 'int' }, > > > > + 'if': { 'all': [ 'TARGET_S390X', 'CONFIG_KVM'] } > > > > > > I wonder if you should depend on CONFIG_KVM or not. If tcg gets topology > > > support it will use the same event and right now it would just never be emitted. > > > On the other hand it's more conservative this way. > > > > > > I also wonder if you should add 'feature' : [ 'unstable' ]. > > > On the upside, it would mark the event as unstable, but I don't know what the > > > consequences are exactly. > > > > The intention of this flag is to allow mgmt apps to make a usage policy > > decision. > > > > Libvirt's policy is that we'll never use features marked unstable. > > Does it enforce that, e.g via compat policies? The policy is applied at time of code review, in that we'll not merge patches that use features marked unstable. > If so, I assume there is some way to allow use of unstable features in libvirt for development? > If for example you're prototyping a new mgmt feature that uses unstable commands. You can prototype usage in libvirt in a fork of course, but we won't take patches into the libvirt upstream repo. Alternatively in some cases the the libvirt QMP passthrough can be used for experiemnts (eg virsh qemu-monitor-command ) in a non-production envionrment. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|