[RFC,35/37] KVM: s390: Fix cpu reset local IRQ clearing
diff mbox series

Message ID 20191024114059.102802-36-frankja@linux.ibm.com
State New
Headers show
Series
  • KVM: s390: Add support for protected VMs
Related show

Commit Message

Janosch Frank Oct. 24, 2019, 11:40 a.m. UTC
The architecture states that we need to reset local IRQs for all CPU
resets. Because the old reset interface did not support the normal CPU
reset we never did that.

Now that we have a new interface, let's properly clear out local IRQs
and let this commit be a reminder.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 arch/s390/kvm/kvm-s390.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Thomas Huth Nov. 15, 2019, 11:23 a.m. UTC | #1
On 24/10/2019 13.40, Janosch Frank wrote:
> The architecture states that we need to reset local IRQs for all CPU
> resets. Because the old reset interface did not support the normal CPU
> reset we never did that.
> 
> Now that we have a new interface, let's properly clear out local IRQs
> and let this commit be a reminder.
> 
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> ---
>  arch/s390/kvm/kvm-s390.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index ba6144fdb5d1..cc5feb67f145 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -3485,6 +3485,8 @@ static int kvm_arch_vcpu_ioctl_reset(struct kvm_vcpu *vcpu,
>  		 * non-protected case.
>  		 */
>  		rc = 0;
> +		kvm_clear_async_pf_completion_queue(vcpu);
> +		kvm_s390_clear_local_irqs(vcpu);
>  		if (kvm_s390_pv_handle_cpu(vcpu)) {
>  			rc = uv_cmd_nodata(kvm_s390_pv_handle_cpu(vcpu),
>  					   UVC_CMD_CPU_RESET, &ret);
> 

I think you could squash this into patch 33/37 where you've introduced
the RESET_NORMAL (and adjust the patch description there).

 Thomas
Janosch Frank Nov. 15, 2019, 11:37 a.m. UTC | #2
On 11/15/19 12:23 PM, Thomas Huth wrote:
> On 24/10/2019 13.40, Janosch Frank wrote:
>> The architecture states that we need to reset local IRQs for all CPU
>> resets. Because the old reset interface did not support the normal CPU
>> reset we never did that.
>>
>> Now that we have a new interface, let's properly clear out local IRQs
>> and let this commit be a reminder.
>>
>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>> ---
>>  arch/s390/kvm/kvm-s390.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
>> index ba6144fdb5d1..cc5feb67f145 100644
>> --- a/arch/s390/kvm/kvm-s390.c
>> +++ b/arch/s390/kvm/kvm-s390.c
>> @@ -3485,6 +3485,8 @@ static int kvm_arch_vcpu_ioctl_reset(struct kvm_vcpu *vcpu,
>>  		 * non-protected case.
>>  		 */
>>  		rc = 0;
>> +		kvm_clear_async_pf_completion_queue(vcpu);
>> +		kvm_s390_clear_local_irqs(vcpu);
>>  		if (kvm_s390_pv_handle_cpu(vcpu)) {
>>  			rc = uv_cmd_nodata(kvm_s390_pv_handle_cpu(vcpu),
>>  					   UVC_CMD_CPU_RESET, &ret);
>>
> 
> I think you could squash this into patch 33/37 where you've introduced
> the RESET_NORMAL (and adjust the patch description there).
> 
>  Thomas
> 

Yes, that hunk was singled out to have an item to discuss internally.
Since we now established, that it is needed, I can squash it.

Patch
diff mbox series

diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index ba6144fdb5d1..cc5feb67f145 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -3485,6 +3485,8 @@  static int kvm_arch_vcpu_ioctl_reset(struct kvm_vcpu *vcpu,
 		 * non-protected case.
 		 */
 		rc = 0;
+		kvm_clear_async_pf_completion_queue(vcpu);
+		kvm_s390_clear_local_irqs(vcpu);
 		if (kvm_s390_pv_handle_cpu(vcpu)) {
 			rc = uv_cmd_nodata(kvm_s390_pv_handle_cpu(vcpu),
 					   UVC_CMD_CPU_RESET, &ret);