On 18.04.19 14:48, David Hildenbrand wrote:
> On 18.04.19 13:31, Christian Borntraeger wrote:
>> While we have removed csske and bpb from the default model, the very
>> common case of "host-model" in libvirt (expanded to a base model
>> + features) would still contain bpb and csske. This can prevent
>> migration to a future machine for a host-model machine. Let us fence
>> bpb and csske when we run on a generation 15. If necessary the
>> user can still use -cpu 8561,csske=on,bpb=on to force enable these
>> features.
>>
>> Signed-off-by: Christian Borntraeger <borntrae...@de.ibm.com>
>> ---
>> target/s390x/cpu_models.c | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
>> index e727519686..03bdca1fb8 100644
>> --- a/target/s390x/cpu_models.c
>> +++ b/target/s390x/cpu_models.c
>> @@ -629,6 +629,17 @@ CpuModelExpansionInfo
>> *qmp_query_cpu_model_expansion(CpuModelExpansionType type,
>> return NULL;
>> }
>>
>> + /*
>> + * Do not claim CSSKE and BPB if the host model expands to
>> + * generation 15 or newer
>> + */
>> + if (s390_model.def->gen >= 15) {
>> + clear_bit(S390_FEAT_CONDITIONAL_SSKE,
>> + (unsigned long *) &s390_model.features);
>> + clear_bit(S390_FEAT_BPB,
>> + (unsigned long *) &s390_model.features);
>> + }
>> +
>> if (type == CPU_MODEL_EXPANSION_TYPE_STATIC) {
>> delta_changes = true;
>> } else if (type != CPU_MODEL_EXPANSION_TYPE_FULL) {
>>
>
> The bad thing about it is, it hinders migration *to* this hw generation.
It does not, at least not with todays libvirt. It will happily ask for
-cpu z14,bpb=on and the guest will have it. the current checking is done
by starting a qemu with a "wished" model and then check for success.
PS: I tested that with managedsave
> Will have to think about this some more. As alternative, simply ignore
> S390_FEAT_CONDITIONAL_SSKE and S390_FEAT_BPB when baselining/comparing.