[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [qemu-s390x] [PATCH v2 2/3] s390: cpu feature for diagn
From: |
Collin Walling |
Subject: |
Re: [Qemu-devel] [qemu-s390x] [PATCH v2 2/3] s390: cpu feature for diagnose 318 andlimit max VCPUs to 247 |
Date: |
Tue, 11 Dec 2018 16:12:16 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 |
On 12/11/18 11:47 AM, Collin Walling wrote:
> On 12/7/18 7:08 AM, Cornelia Huck wrote:
>> On Thu, 6 Dec 2018 17:24:17 -0500
>> Collin Walling <address@hidden> wrote:
>>
>>> Diagnose 318 is a new z14.2 CPU feature. Since we are able to emulate
>>> it entirely via KVM, we can add guest support for earlier models. A
>>> new CPU feature for diagnose 318 (shortened to diag318) will be made
>>> available to guests starting with the zEC12-full CPU model.
>>>
>>> The z14.2 adds a new read SCP info byte (let's call it byte 134) to
>>> detect the availability of diag318. Because of this, we have room for
>>> one less VCPU and thus limit the max VPUs supported in a configuration
>>> to 247 (down from 248).
>>>
>>> Signed-off-by: Collin Walling <address@hidden>.
>>> ---
>>> hw/s390x/sclp.c | 2 ++
>>> include/hw/s390x/sclp.h | 2 ++
>>> target/s390x/cpu.h | 2 +-
>>> target/s390x/cpu_features.c | 3 +++
>>> target/s390x/cpu_features.h | 1 +
>>> target/s390x/cpu_features_def.h | 3 +++
>>> target/s390x/gen-features.c | 1 +
>>> target/s390x/kvm.c | 1 +
>>> 8 files changed, 14 insertions(+), 1 deletion(-)
>>>
>>
>>> diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
>>> index 8c2320e..594b4a4 100644
>>> --- a/target/s390x/cpu.h
>>> +++ b/target/s390x/cpu.h
>>> @@ -52,7 +52,7 @@
>>>
>>> #define MMU_USER_IDX 0
>>>
>>> -#define S390_MAX_CPUS 248
>>> +#define S390_MAX_CPUS 247
>>
>> Isn't that already problematic if you try to migrate from an older QEMU
>> with all possible vcpus defined? IOW, don't you really need a way that
>> older machines can still run with one more vcpu?
>>
>
> Good call. I'll run some tests on this and see what happens. I'll report
> here on those results.
>
Migrating to a machine that supports less vCPUs will report
error: unsupported configuration: Maximum CPUs greater than specified machine
type limit
I revisited the code to see if there's a way to dynamically set the max vcpu
count based
on the read scp info size, but it gets really tricky and code looks very
complicated.
(Having a packed struct contain the CPU entries whose maximum is determined by
hardware
limitations makes things difficult -- but who said s390 is easy? :) )
In reality, do we often have guests running with 248 or even 247 vcpus? If so,
I imagine
the performance isn't too significant?
>>>
>>> typedef struct PSW {
>>> uint64_t mask;
>>
>
>
--
Respectfully,
- Collin Walling
[Qemu-devel] [PATCH v2 3/3] s390: migration and reset support for diagnose 318, Collin Walling, 2018/12/06
Re: [Qemu-devel] [PATCH v2 0/3] Guest Support for Diagnose 318, no-reply, 2018/12/06