On Tue, Jun 21, 2016 at 17:33:09 -0300, Eduardo Habkost wrote: > On Tue, Jun 21, 2016 at 07:01:44PM +0200, David Hildenbrand wrote: > > > (CCing libvirt people) > > > > > > On Tue, Jun 21, 2016 at 03:02:05PM +0200, David Hildenbrand wrote: > > > > This is our second attempt to implement CPU models for s390x. We realized > > > > that we also want to have features exposed via the CPU model. While doing > > > > that we realized that we want to have a better interface for libvirt. > > > > > > Before getting into the details, I would like to clarify how the > > > following could be accomplished using the new commands: > > > > > > Example: > > > > > > 1) User configures libvirt with: > > > <cpu match='exact'> > > > <model fallback='forbid'>Westmere</model> > > > <feature policy='require' name='aes'/> > > > </cpu> > > > 2) libvirt will translate that to: > > > "-cpu Westmere,+aes" or "-cpu Westmere,aes=on" > > > 3) libvirt wants to know if "-cpu Westmere,aes=on" is usable in > > > the current host, before trying to start the VM. > > > > > > How exactly would this be done using the new commands? > > > > Hi Eduardo, > > > > thanks for having a look - highly appreciated that you actually map this > > to libvirt requirements! > > > > That would map to a compare operation between "host" and "Westmere,aes=on". > > > > Host could at that point already be expanded by libvirt. Doesn't matter at that > > point. > > > > If the result is "identica"l or "superset", it is runnable. If the result is > > "subset" or "incompatible", details about the responsible properties is > > indicated. (I actually took that idea from your patch for indicating > > runnability). > > So, I have two worries about the proposal: > > > 1) "query-cpu-model-expansion model=host" vs "query-host-cpu": > > I still don't think we want to set in stone that "the result the > guest sees when using -cpu host" is always the same as "what the > host supports running". > > For example: let's assume a given architecture have two features > (A and B) that are both supported by the host but can never be > enabled together. For actual "-cpu host" usage, QEMU would have > to choose between enabling A and B. For querying host > capabilities, we still want to let management software know that > either A or B are supported. What libvirt is really interested in is the guest CPU which would be used with -cpu host. This is actually what I thought query-host-cpu was all about. Perhaps because there's no difference for x86. > 2) Requiring a running QEMU instance to run > query-cpu-model-comparison > > With my previous query-host-cpu proposal, the task of comparing > the configuration requested by the user with host capabilities > can be done directly by libvirt. This way, no extra QEMU instance > needs to be run before starting a VM. I think we can just easily get around this by not comparing a guest CPU to host (except for the explicit virConnectCompareCPU, which is not very useful in its current form anyway). Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list