From: David Hildenbrand <david@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: "Thomas Huth" <thuth@redhat.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Janosch Frank" <frankja@linux.ibm.com>,
"Cornelia Huck" <cohuck@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
qemu-devel@nongnu.org, "Markus Armbruster" <armbru@redhat.com>,
"Halil Pasic" <pasic@linux.ibm.com>,
qemu-s390x@nongnu.org, "Jiri Denemark" <jdenemar@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>
Subject: Re: [PATCH v2 2/2] s390x/cpumodel: Introduce dynamic feature groups
Date: Tue, 26 Nov 2019 15:07:32 +0100 [thread overview]
Message-ID: <b4ee8526-b1e3-21ee-5e1e-b22520e29339@redhat.com> (raw)
In-Reply-To: <b4f4546d-b620-0428-40bf-59f4584a80f3@de.ibm.com>
On 26.11.19 13:59, Christian Borntraeger wrote:
> re-adding ccs from the cover-letter
>
>>>> On 25.11.19 18:20, David Hildenbrand wrote:
>>>>
>>>> As soon as dynamic feature groups are used, the CPU model becomes
>>>> migration-unsafe. Upper layers can expand these models to migration-safe
>>>> and static variants, allowing them to be migrated.
>>>
>>> I really dislike that. I am trying to get rid of the unsafe variants (e.g. now
>>> defaulting to host-model instead of host-passthrough). I do not want to give
>>> users new ways of hurting themselves.
>>>
>>
>> Please note that this is just on the bare command line. Libvirt and friends will expand the model and have proper migration in place. What exactly is your concern in that regard?
>
> What is then the value? libvirt can also use host-model or baselining if necessary.
> And for the command line this will just add more opportunity to shot yourself in the
> foot, no?
I don't think so. It's in no way more dangerous than "-cpu host" or
"-cpu max". And it is in no way more dangerous than the discussed CPU
versions, where even a "-cpu z13" would no longer be migration-safe.
You could - in theory - baseline(z13, host), but it could suddenly
fallback to a, say, zEC12 - and that's not what you asked for. And you
should not simply mask of deprecated features when baselining. Sure, we
could eventually add config knobs for that , but ...
... I really do like the part where you can specify on the command line
to have specific CPU definition, but including all available/recommended
features (e.g., nested virtualization).
>
> Let me put it this way, I might have misunderstood what you are trying to do here,
> but if I do not get, then others (e.g. users) will also not get it.
I remember you participated in the relevant discussions. That's where we
also agreed that versioned CPU models on s390x don't make any sense. But
I can refine what's included in this patch description
"There is the demand from higher levels in the stack to "have the
best CPU model possible on a given accelerator, firmware and HW"" - the
best CPU model for a specific *CPU definition*.
Say the user has the option to select a model (zEC12, z13, z14), upper
layers always want to have a model that includes all backported security
features. While the host model can do that, CPU definitions can't. You
can't change default models within a QEMU release, or for older releases
(e.g., a z13).
>
> Maybe its just the interface or the name. But I find this very non-intuitive
I'm open for suggestions.
>
> e.g. you wrote
>
> Get the maximum possible feature set (e.g., including deprecated
> features) for a CPU definition in the configuration ("everything that
> could be enabled"):
> -cpu z14,all-features=off,available-features=on
>
> Get all valid features for a CPU definition:
> -cpu z14,all-features=on
>
> What is the point of this? It is either the same as the one before, or it wont
> be able to start.
valid != available, all != available. Yes, the model won't run unless
you are on pretty good HW :)
Maybe I should just have dropped the last example, as it seems to
confuse people - it's mostly only relevant for introspection via CPU
model expansion.
I am open for better names. e.g. all-features -> valid-features.
--
Thanks,
David / dhildenb
next prev parent reply other threads:[~2019-11-26 14:09 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-25 17:20 [PATCH v2 0/2] s390x/cpumodel: Introduce dynamic feature group David Hildenbrand
2019-11-25 17:20 ` [PATCH v2 1/2] s390x/cpumodel: Factor out CPU feature dependencies David Hildenbrand
2019-11-25 17:20 ` [PATCH v2 2/2] s390x/cpumodel: Introduce dynamic feature groups David Hildenbrand
2019-11-26 7:54 ` Christian Borntraeger
2019-11-26 8:04 ` David Hildenbrand
2019-11-26 12:59 ` Christian Borntraeger
2019-11-26 14:07 ` David Hildenbrand [this message]
2019-11-29 19:33 ` Eduardo Habkost
2019-12-02 9:15 ` David Hildenbrand
2019-12-05 14:35 ` Eduardo Habkost
2019-12-05 14:48 ` David Hildenbrand
2019-12-09 23:29 ` Eduardo Habkost
2019-12-12 15:27 ` David Hildenbrand
2019-11-25 23:20 ` [PATCH v2 0/2] s390x/cpumodel: Introduce dynamic feature group no-reply
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=b4ee8526-b1e3-21ee-5e1e-b22520e29339@redhat.com \
--to=david@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=ehabkost@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=jdenemar@redhat.com \
--cc=pasic@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).