[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Patch v1 25/29] qmp: add QMP interface "query-cpu-mode
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-devel] [Patch v1 25/29] qmp: add QMP interface "query-cpu-model-comparison" |
Date: |
Wed, 3 Aug 2016 14:39:24 -0300 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
On Wed, Aug 03, 2016 at 09:09:25AM +0200, David Hildenbrand wrote:
[...]
> > > > > Other architectures are not
> > > > > +# supported yet.
> > > >
> > > > What if we provide a generic comparison function that does like
> > > > the following pseudocode:
> > > >
> > > > def basic_comparison(modela, modelb):
> > > > if modela.name == modelb.name:
> > > > if modela.props == modelb.props:
> > > > return "identical", []
> > > > else:
> > > > #XXX: maybe add some extra logic to check if
> > > > # modela.props is a subset or superset of modelb.props?
> > > > return "incompatible", set(modela.props.keys(),
> > > > modelb.props.keys())
> > > > else:
> > > > return "incompatible", ["type"]
> > > >
> > > > def full_comparison(modela, modelb):
> > > > r,p = basic_comparison(modela, modelb)
> > > > if r == "incompatible":
> > > > try:
> > > > modela = expand_cpu_model(modela, "full")
> > > > modelb = expand_cpu_model(modelb, "full")
> > > > except:
> > > > # in case "full" expansion mode is not supported
> > > > return r,p
> > > > return basic_comparison(modela, modelb)
> > > >
> > >
> > > While I agree that that would be nice to have, it doesn't fit for s390x
> > > right
> > > now: The result on s390x does not rely on features/name only, but
> > > internal data
> > > we don't want to expose.
> > >
> > > e.g. z13.2 and z13s are considered identically.
> > >
> > > z13 is a subset of z13.2, although they have exactly the same
> > > features/properties (right now). It basically has to do with internal data
> > > (e.g. address bus sizes for hamax as an example)
> > >
> > > (that's where we indictate "type" under "responsible-properties" - they
> > > can
> > > never be made identically, you have to baseline).
> >
> > Right, I don't mean it to be enough for all architectures, but as
> > a basic implementation that is minimally useful when there's no
> > arch-specific comparison function.
>
> Then the question would be: Is it better to have a wrong result than any
> result?
> As it doesn't work on s390x, there could also be a problem with other
> architectures.
>
> Especially when comparing against "host", the name after expansion would give
> no identication about runnability. And only living with
> "incompatible" and "identical" might also not really be enough.
>
> While this could make sense, I'd suggest postponing such a basic comapare
> function until other architectures support the basics (expanding to full) and
> then see if this basic function would work for them (maybe x86 is a good
> candidate once the expanded name would not be "host" anymore).
Agreed. After we have a x86 implementation, we can look into
implementing a generic comparison function (but make it opt-in,
instead of enabling it for all architectures at once).
--
Eduardo
- [Qemu-devel] [Patch v1 11/29] s390x/cpumodel: let the CPU model handle feature checks, (continued)
- [Qemu-devel] [Patch v1 11/29] s390x/cpumodel: let the CPU model handle feature checks, David Hildenbrand, 2016/08/02
- [Qemu-devel] [Patch v1 20/29] s390x/kvm: allow runtime-instrumentation for "none" machine, David Hildenbrand, 2016/08/02
- [Qemu-devel] [Patch v1 19/29] linux-headers: update against kvm/next, David Hildenbrand, 2016/08/02
- [Qemu-devel] [Patch v1 21/29] s390x/kvm: implement CPU model support, David Hildenbrand, 2016/08/02
- [Qemu-devel] [Patch v1 22/29] s390x/kvm: disable host model for existing compat machines, David Hildenbrand, 2016/08/02
- [Qemu-devel] [Patch v1 25/29] qmp: add QMP interface "query-cpu-model-comparison", David Hildenbrand, 2016/08/02
Re: [Qemu-devel] [Patch v1 25/29] qmp: add QMP interface "query-cpu-model-comparison", David Hildenbrand, 2016/08/04
[Qemu-devel] [Patch v1 29/29] s390x/cpumodel: implement QMP interface "query-cpu-model-baseline", David Hildenbrand, 2016/08/02
[Qemu-devel] [Patch v1 06/29] s390x/cpumodel: generate CPU feature group lists, David Hildenbrand, 2016/08/02
[Qemu-devel] [Patch v1 27/29] s390x/cpumodel: implement QMP interface "query-cpu-model-expansion", David Hildenbrand, 2016/08/02
[Qemu-devel] [Patch v1 08/29] s390x/cpumodel: register defined CPU models as subclasses, David Hildenbrand, 2016/08/02
[Qemu-devel] [Patch v1 10/29] s390x/cpumodel: expose features and feature groups as properties, David Hildenbrand, 2016/08/02
[Qemu-devel] [Patch v1 13/29] s390x/sclp: factor out preparation of cpu entries, David Hildenbrand, 2016/08/02