kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] s390x: KVM: CPU Topology
@ 2021-07-22 17:02 Pierre Morel
  2021-07-22 17:02 ` [PATCH v2 1/2] s390x: KVM: accept STSI for CPU topology information Pierre Morel
  2021-07-22 17:02 ` [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility Pierre Morel
  0 siblings, 2 replies; 9+ messages in thread
From: Pierre Morel @ 2021-07-22 17:02 UTC (permalink / raw)
  To: kvm
  Cc: linux-s390, linux-kernel, borntraeger, frankja, cohuck, david,
	thuth, imbrenda, hca, gor, pmorel

To provide Topology information to the guest through the STSI
instruction, we need to forward STSI with Function Code 15 to
QEMU which will take care to provide the right information to
the guest.

To let the guest use the PTF instruction and ask if a topology
change occured we add a new KVM capability to enable the topology
facility.


Pierre Morel (2):
  s390x: KVM: accept STSI for CPU topology information
  s390:kvm: Topology expose TOPOLOGY facility

 arch/s390/kvm/kvm-s390.c | 1 +
 arch/s390/kvm/priv.c     | 7 ++++++-
 include/uapi/linux/kvm.h | 1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

-- 
2.25.1

Changelog:

- Add a KVM capability to let QEMU know we support PTF and STSI 15
  (David)

- check KVM facility 11 before accepting STSI fc 15
  (David)

- handle all we can in userland
  (David)

- add tracing to STSI fc 15
  (Connie)


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2 1/2] s390x: KVM: accept STSI for CPU topology information
  2021-07-22 17:02 [PATCH v2 0/2] s390x: KVM: CPU Topology Pierre Morel
@ 2021-07-22 17:02 ` Pierre Morel
  2021-07-23  8:34   ` Christian Borntraeger
  2021-07-22 17:02 ` [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility Pierre Morel
  1 sibling, 1 reply; 9+ messages in thread
From: Pierre Morel @ 2021-07-22 17:02 UTC (permalink / raw)
  To: kvm
  Cc: linux-s390, linux-kernel, borntraeger, frankja, cohuck, david,
	thuth, imbrenda, hca, gor, pmorel

STSI(15.1.x) gives information on the CPU configuration topology.
Let's accept the interception of STSI with the function code 15 and
let the userland part of the hypervisor handle it when userland
support the CPU Topology facility.

Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
---
 arch/s390/kvm/priv.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c
index 9928f785c677..8581b6881212 100644
--- a/arch/s390/kvm/priv.c
+++ b/arch/s390/kvm/priv.c
@@ -856,7 +856,8 @@ static int handle_stsi(struct kvm_vcpu *vcpu)
 	if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE)
 		return kvm_s390_inject_program_int(vcpu, PGM_PRIVILEGED_OP);
 
-	if (fc > 3) {
+	if ((fc > 3 && fc != 15) ||
+	    (fc == 15 && !test_kvm_facility(vcpu->kvm, 11))) {
 		kvm_s390_set_psw_cc(vcpu, 3);
 		return 0;
 	}
@@ -893,6 +894,10 @@ static int handle_stsi(struct kvm_vcpu *vcpu)
 			goto out_no_data;
 		handle_stsi_3_2_2(vcpu, (void *) mem);
 		break;
+	case 15:
+		trace_kvm_s390_handle_stsi(vcpu, fc, sel1, sel2, operand2);
+		insert_stsi_usr_data(vcpu, operand2, ar, fc, sel1, sel2);
+		return -EREMOTE;
 	}
 	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
 		memcpy((void *)sida_origin(vcpu->arch.sie_block), (void *)mem,
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility
  2021-07-22 17:02 [PATCH v2 0/2] s390x: KVM: CPU Topology Pierre Morel
  2021-07-22 17:02 ` [PATCH v2 1/2] s390x: KVM: accept STSI for CPU topology information Pierre Morel
@ 2021-07-22 17:02 ` Pierre Morel
  2021-07-23  8:14   ` Christian Borntraeger
  1 sibling, 1 reply; 9+ messages in thread
From: Pierre Morel @ 2021-07-22 17:02 UTC (permalink / raw)
  To: kvm
  Cc: linux-s390, linux-kernel, borntraeger, frankja, cohuck, david,
	thuth, imbrenda, hca, gor, pmorel

We add a KVM extension KVM_CAP_S390_CPU_TOPOLOGY to tell the
userland hypervisor it is safe to activate the CPU Topology facility.

Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
---
 arch/s390/kvm/kvm-s390.c | 1 +
 include/uapi/linux/kvm.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index b655a7d82bf0..8c695ee79612 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -568,6 +568,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
 	case KVM_CAP_S390_VCPU_RESETS:
 	case KVM_CAP_SET_GUEST_DEBUG:
 	case KVM_CAP_S390_DIAG318:
+	case KVM_CAP_S390_CPU_TOPOLOGY:
 		r = 1;
 		break;
 	case KVM_CAP_SET_GUEST_DEBUG2:
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index d9e4aabcb31a..081ce0cd44b9 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -1112,6 +1112,7 @@ struct kvm_ppc_resize_hpt {
 #define KVM_CAP_BINARY_STATS_FD 203
 #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
 #define KVM_CAP_ARM_MTE 205
+#define KVM_CAP_S390_CPU_TOPOLOGY 206
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility
  2021-07-22 17:02 ` [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility Pierre Morel
@ 2021-07-23  8:14   ` Christian Borntraeger
  2021-07-23  8:55     ` Cornelia Huck
  0 siblings, 1 reply; 9+ messages in thread
From: Christian Borntraeger @ 2021-07-23  8:14 UTC (permalink / raw)
  To: Pierre Morel, kvm
  Cc: linux-s390, linux-kernel, frankja, cohuck, david, thuth,
	imbrenda, hca, gor



On 22.07.21 19:02, Pierre Morel wrote:
> We add a KVM extension KVM_CAP_S390_CPU_TOPOLOGY to tell the
> userland hypervisor it is safe to activate the CPU Topology facility.

I think the old variant of using the CPU model was actually better.
It was just the patch description that was wrong.
  
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> ---
>   arch/s390/kvm/kvm-s390.c | 1 +
>   include/uapi/linux/kvm.h | 1 +
>   2 files changed, 2 insertions(+)
> 
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index b655a7d82bf0..8c695ee79612 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -568,6 +568,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
>   	case KVM_CAP_S390_VCPU_RESETS:
>   	case KVM_CAP_SET_GUEST_DEBUG:
>   	case KVM_CAP_S390_DIAG318:
> +	case KVM_CAP_S390_CPU_TOPOLOGY:
>   		r = 1;
>   		break;
>   	case KVM_CAP_SET_GUEST_DEBUG2:
> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> index d9e4aabcb31a..081ce0cd44b9 100644
> --- a/include/uapi/linux/kvm.h
> +++ b/include/uapi/linux/kvm.h
> @@ -1112,6 +1112,7 @@ struct kvm_ppc_resize_hpt {
>   #define KVM_CAP_BINARY_STATS_FD 203
>   #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
>   #define KVM_CAP_ARM_MTE 205
> +#define KVM_CAP_S390_CPU_TOPOLOGY 206
>   
>   #ifdef KVM_CAP_IRQ_ROUTING
>   
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 1/2] s390x: KVM: accept STSI for CPU topology information
  2021-07-22 17:02 ` [PATCH v2 1/2] s390x: KVM: accept STSI for CPU topology information Pierre Morel
@ 2021-07-23  8:34   ` Christian Borntraeger
  0 siblings, 0 replies; 9+ messages in thread
From: Christian Borntraeger @ 2021-07-23  8:34 UTC (permalink / raw)
  To: Pierre Morel, kvm
  Cc: linux-s390, linux-kernel, frankja, cohuck, david, thuth,
	imbrenda, hca, gor



On 22.07.21 19:02, Pierre Morel wrote:
> STSI(15.1.x) gives information on the CPU configuration topology.
> Let's accept the interception of STSI with the function code 15 and
> let the userland part of the hypervisor handle it when userland
> support the CPU Topology facility.
> 
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> ---
>   arch/s390/kvm/priv.c | 7 ++++++-
>   1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/s390/kvm/priv.c b/arch/s390/kvm/priv.c
> index 9928f785c677..8581b6881212 100644
> --- a/arch/s390/kvm/priv.c
> +++ b/arch/s390/kvm/priv.c
> @@ -856,7 +856,8 @@ static int handle_stsi(struct kvm_vcpu *vcpu)
>   	if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE)
>   		return kvm_s390_inject_program_int(vcpu, PGM_PRIVILEGED_OP);
>   
> -	if (fc > 3) {
> +	if ((fc > 3 && fc != 15) ||
> +	    (fc == 15 && !test_kvm_facility(vcpu->kvm, 11))) {

Especially as you use test_kvm_facility here you really want to have the cpu
model in patch 2 (and not CAP).

>   		kvm_s390_set_psw_cc(vcpu, 3);
>   		return 0;
>   	}
> @@ -893,6 +894,10 @@ static int handle_stsi(struct kvm_vcpu *vcpu)
>   			goto out_no_data;
>   		handle_stsi_3_2_2(vcpu, (void *) mem);
>   		break;
> +	case 15:
> +		trace_kvm_s390_handle_stsi(vcpu, fc, sel1, sel2, operand2);
> +		insert_stsi_usr_data(vcpu, operand2, ar, fc, sel1, sel2);
> +		return -EREMOTE;
>   	}
>   	if (kvm_s390_pv_cpu_is_protected(vcpu)) {
>   		memcpy((void *)sida_origin(vcpu->arch.sie_block), (void *)mem,
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility
  2021-07-23  8:14   ` Christian Borntraeger
@ 2021-07-23  8:55     ` Cornelia Huck
  2021-07-23  9:28       ` Christian Borntraeger
  0 siblings, 1 reply; 9+ messages in thread
From: Cornelia Huck @ 2021-07-23  8:55 UTC (permalink / raw)
  To: Christian Borntraeger, Pierre Morel, kvm
  Cc: linux-s390, linux-kernel, frankja, david, thuth, imbrenda, hca, gor

On Fri, Jul 23 2021, Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> On 22.07.21 19:02, Pierre Morel wrote:
>> We add a KVM extension KVM_CAP_S390_CPU_TOPOLOGY to tell the
>> userland hypervisor it is safe to activate the CPU Topology facility.
>
> I think the old variant of using the CPU model was actually better.
> It was just the patch description that was wrong.

I thought we wanted a cap that userspace can enable to get ptf
intercepts? I'm confused.

>   
>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>> ---
>>   arch/s390/kvm/kvm-s390.c | 1 +
>>   include/uapi/linux/kvm.h | 1 +
>>   2 files changed, 2 insertions(+)
>> 
>> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
>> index b655a7d82bf0..8c695ee79612 100644
>> --- a/arch/s390/kvm/kvm-s390.c
>> +++ b/arch/s390/kvm/kvm-s390.c
>> @@ -568,6 +568,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
>>   	case KVM_CAP_S390_VCPU_RESETS:
>>   	case KVM_CAP_SET_GUEST_DEBUG:
>>   	case KVM_CAP_S390_DIAG318:
>> +	case KVM_CAP_S390_CPU_TOPOLOGY:
>>   		r = 1;
>>   		break;
>>   	case KVM_CAP_SET_GUEST_DEBUG2:
>> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
>> index d9e4aabcb31a..081ce0cd44b9 100644
>> --- a/include/uapi/linux/kvm.h
>> +++ b/include/uapi/linux/kvm.h
>> @@ -1112,6 +1112,7 @@ struct kvm_ppc_resize_hpt {
>>   #define KVM_CAP_BINARY_STATS_FD 203
>>   #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
>>   #define KVM_CAP_ARM_MTE 205
>> +#define KVM_CAP_S390_CPU_TOPOLOGY 206
>>   
>>   #ifdef KVM_CAP_IRQ_ROUTING
>>   
>> 

Regardless of what we end up with: we need documentation for any new cap
:)


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility
  2021-07-23  8:55     ` Cornelia Huck
@ 2021-07-23  9:28       ` Christian Borntraeger
  2021-07-23 10:10         ` Pierre Morel
  0 siblings, 1 reply; 9+ messages in thread
From: Christian Borntraeger @ 2021-07-23  9:28 UTC (permalink / raw)
  To: Cornelia Huck, Pierre Morel, kvm
  Cc: linux-s390, linux-kernel, frankja, david, thuth, imbrenda, hca, gor



On 23.07.21 10:55, Cornelia Huck wrote:
> On Fri, Jul 23 2021, Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> 
>> On 22.07.21 19:02, Pierre Morel wrote:
>>> We add a KVM extension KVM_CAP_S390_CPU_TOPOLOGY to tell the
>>> userland hypervisor it is safe to activate the CPU Topology facility.
>>
>> I think the old variant of using the CPU model was actually better.
>> It was just the patch description that was wrong.
> 
> I thought we wanted a cap that userspace can enable to get ptf
> intercepts? I'm confused.
> 

PTF goes to userspace in any case as every instruction that is
not handled by kvm and where interpretion is not enabled.
Now, having said that, we actually want PTF interpretion to be enabled
for "Check topology-change status" as this is supposed to be a fast
operation. Some OSes do query that in their interrupt handlers.


>>    
>>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>>> ---
>>>    arch/s390/kvm/kvm-s390.c | 1 +
>>>    include/uapi/linux/kvm.h | 1 +
>>>    2 files changed, 2 insertions(+)
>>>
>>> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
>>> index b655a7d82bf0..8c695ee79612 100644
>>> --- a/arch/s390/kvm/kvm-s390.c
>>> +++ b/arch/s390/kvm/kvm-s390.c
>>> @@ -568,6 +568,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
>>>    	case KVM_CAP_S390_VCPU_RESETS:
>>>    	case KVM_CAP_SET_GUEST_DEBUG:
>>>    	case KVM_CAP_S390_DIAG318:
>>> +	case KVM_CAP_S390_CPU_TOPOLOGY:
>>>    		r = 1;
>>>    		break;
>>>    	case KVM_CAP_SET_GUEST_DEBUG2:
>>> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
>>> index d9e4aabcb31a..081ce0cd44b9 100644
>>> --- a/include/uapi/linux/kvm.h
>>> +++ b/include/uapi/linux/kvm.h
>>> @@ -1112,6 +1112,7 @@ struct kvm_ppc_resize_hpt {
>>>    #define KVM_CAP_BINARY_STATS_FD 203
>>>    #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
>>>    #define KVM_CAP_ARM_MTE 205
>>> +#define KVM_CAP_S390_CPU_TOPOLOGY 206
>>>    
>>>    #ifdef KVM_CAP_IRQ_ROUTING
>>>    
>>>
> 
> Regardless of what we end up with: we need documentation for any new cap
> :)
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility
  2021-07-23  9:28       ` Christian Borntraeger
@ 2021-07-23 10:10         ` Pierre Morel
  2021-07-23 10:24           ` Christian Borntraeger
  0 siblings, 1 reply; 9+ messages in thread
From: Pierre Morel @ 2021-07-23 10:10 UTC (permalink / raw)
  To: Christian Borntraeger, Cornelia Huck, kvm
  Cc: linux-s390, linux-kernel, frankja, david, thuth, imbrenda, hca, gor



On 7/23/21 11:28 AM, Christian Borntraeger wrote:
> 
> 
> On 23.07.21 10:55, Cornelia Huck wrote:
>> On Fri, Jul 23 2021, Christian Borntraeger <borntraeger@de.ibm.com> 
>> wrote:
>>
>>> On 22.07.21 19:02, Pierre Morel wrote:
>>>> We add a KVM extension KVM_CAP_S390_CPU_TOPOLOGY to tell the
>>>> userland hypervisor it is safe to activate the CPU Topology facility.
>>>
>>> I think the old variant of using the CPU model was actually better.
>>> It was just the patch description that was wrong.
>>
>> I thought we wanted a cap that userspace can enable to get ptf
>> intercepts? I'm confused.
>>
> 
> PTF goes to userspace in any case as every instruction that is
> not handled by kvm and where interpretion is not enabled.
> Now, having said that, we actually want PTF interpretion to be enabled
> for "Check topology-change status" as this is supposed to be a fast
> operation. Some OSes do query that in their interrupt handlers.
> 

An old QEMU getting the PTF instruction will send a OPERATION exception 
to the guest if the facility 11 is actzivated.
Facility 11 is in QEMU since GAEN10_GA1, if I enable the facility in the 
CPU model all cpu model starting with GEN10_GA1 will panic on PTF.

So I think we need the capability so that new QEMU enable the facility 
once it has the right handling for PTF.


> 
>>>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>>>> ---
>>>>    arch/s390/kvm/kvm-s390.c | 1 +
>>>>    include/uapi/linux/kvm.h | 1 +
>>>>    2 files changed, 2 insertions(+)
>>>>
>>>> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
>>>> index b655a7d82bf0..8c695ee79612 100644
>>>> --- a/arch/s390/kvm/kvm-s390.c
>>>> +++ b/arch/s390/kvm/kvm-s390.c
>>>> @@ -568,6 +568,7 @@ int kvm_vm_ioctl_check_extension(struct kvm 
>>>> *kvm, long ext)
>>>>        case KVM_CAP_S390_VCPU_RESETS:
>>>>        case KVM_CAP_SET_GUEST_DEBUG:
>>>>        case KVM_CAP_S390_DIAG318:
>>>> +    case KVM_CAP_S390_CPU_TOPOLOGY:
>>>>            r = 1;
>>>>            break;
>>>>        case KVM_CAP_SET_GUEST_DEBUG2:
>>>> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
>>>> index d9e4aabcb31a..081ce0cd44b9 100644
>>>> --- a/include/uapi/linux/kvm.h
>>>> +++ b/include/uapi/linux/kvm.h
>>>> @@ -1112,6 +1112,7 @@ struct kvm_ppc_resize_hpt {
>>>>    #define KVM_CAP_BINARY_STATS_FD 203
>>>>    #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
>>>>    #define KVM_CAP_ARM_MTE 205
>>>> +#define KVM_CAP_S390_CPU_TOPOLOGY 206
>>>>    #ifdef KVM_CAP_IRQ_ROUTING
>>>>
>>
>> Regardless of what we end up with: we need documentation for any new cap
>> :)
>>

-- 
Pierre Morel
IBM Lab Boeblingen

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility
  2021-07-23 10:10         ` Pierre Morel
@ 2021-07-23 10:24           ` Christian Borntraeger
  0 siblings, 0 replies; 9+ messages in thread
From: Christian Borntraeger @ 2021-07-23 10:24 UTC (permalink / raw)
  To: Pierre Morel, Cornelia Huck, kvm
  Cc: linux-s390, linux-kernel, frankja, david, thuth, imbrenda, hca, gor



On 23.07.21 12:10, Pierre Morel wrote:
> 
> 
> On 7/23/21 11:28 AM, Christian Borntraeger wrote:
>>
>>
>> On 23.07.21 10:55, Cornelia Huck wrote:
>>> On Fri, Jul 23 2021, Christian Borntraeger <borntraeger@de.ibm.com> wrote:
>>>
>>>> On 22.07.21 19:02, Pierre Morel wrote:
>>>>> We add a KVM extension KVM_CAP_S390_CPU_TOPOLOGY to tell the
>>>>> userland hypervisor it is safe to activate the CPU Topology facility.
>>>>
>>>> I think the old variant of using the CPU model was actually better.
>>>> It was just the patch description that was wrong.
>>>
>>> I thought we wanted a cap that userspace can enable to get ptf
>>> intercepts? I'm confused.
>>>
>>
>> PTF goes to userspace in any case as every instruction that is
>> not handled by kvm and where interpretion is not enabled.
>> Now, having said that, we actually want PTF interpretion to be enabled
>> for "Check topology-change status" as this is supposed to be a fast
>> operation. Some OSes do query that in their interrupt handlers.
>>
> 
> An old QEMU getting the PTF instruction will send a OPERATION exception to the guest if the facility 11 is actzivated.
> Facility 11 is in QEMU since GAEN10_GA1, if I enable the facility in the CPU model all cpu model starting with GEN10_GA1 will panic on PTF.

Hmm, if qemu enables facility 11 this would be a bug in QEMU. And indeed that seems to be the case here. So yes, the proper solution (cpu model) does not work unfortunately.

As I said, we want PTF interpretion enabled in KVM anyway as PTF FC==2 Check topology-change status is performance critical.
So this needs some bigger rework still. For example QEMU must then be able to tell KVM to tell SIE that the interpreted PTF will indicate a topology change.





> So I think we need the capability so that new QEMU enable the facility once it has the right handling for PTF.
> 
> 
>>
>>>>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>>>>> ---
>>>>>    arch/s390/kvm/kvm-s390.c | 1 +
>>>>>    include/uapi/linux/kvm.h | 1 +
>>>>>    2 files changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
>>>>> index b655a7d82bf0..8c695ee79612 100644
>>>>> --- a/arch/s390/kvm/kvm-s390.c
>>>>> +++ b/arch/s390/kvm/kvm-s390.c
>>>>> @@ -568,6 +568,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
>>>>>        case KVM_CAP_S390_VCPU_RESETS:
>>>>>        case KVM_CAP_SET_GUEST_DEBUG:
>>>>>        case KVM_CAP_S390_DIAG318:
>>>>> +    case KVM_CAP_S390_CPU_TOPOLOGY:
>>>>>            r = 1;
>>>>>            break;
>>>>>        case KVM_CAP_SET_GUEST_DEBUG2:
>>>>> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
>>>>> index d9e4aabcb31a..081ce0cd44b9 100644
>>>>> --- a/include/uapi/linux/kvm.h
>>>>> +++ b/include/uapi/linux/kvm.h
>>>>> @@ -1112,6 +1112,7 @@ struct kvm_ppc_resize_hpt {
>>>>>    #define KVM_CAP_BINARY_STATS_FD 203
>>>>>    #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
>>>>>    #define KVM_CAP_ARM_MTE 205
>>>>> +#define KVM_CAP_S390_CPU_TOPOLOGY 206
>>>>>    #ifdef KVM_CAP_IRQ_ROUTING
>>>>>
>>>
>>> Regardless of what we end up with: we need documentation for any new cap
>>> :)
>>>
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-07-23 10:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-22 17:02 [PATCH v2 0/2] s390x: KVM: CPU Topology Pierre Morel
2021-07-22 17:02 ` [PATCH v2 1/2] s390x: KVM: accept STSI for CPU topology information Pierre Morel
2021-07-23  8:34   ` Christian Borntraeger
2021-07-22 17:02 ` [PATCH v2 2/2] s390:kvm: Topology expose TOPOLOGY facility Pierre Morel
2021-07-23  8:14   ` Christian Borntraeger
2021-07-23  8:55     ` Cornelia Huck
2021-07-23  9:28       ` Christian Borntraeger
2021-07-23 10:10         ` Pierre Morel
2021-07-23 10:24           ` Christian Borntraeger

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).