2022-09-30 14:43:44

by Claudio Imbrenda

[permalink] [raw]
Subject: [PATCH v14 3/6] KVM: s390: pv: add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE

Add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE to signal that the
KVM_PV_ASYNC_DISABLE and KVM_PV_ASYNC_DISABLE_PREPARE commands for the
KVM_S390_PV_COMMAND ioctl are available.

Signed-off-by: Claudio Imbrenda <[email protected]>
Reviewed-by: Nico Boehr <[email protected]>
---
arch/s390/kvm/kvm-s390.c | 3 +++
include/uapi/linux/kvm.h | 1 +
2 files changed, 4 insertions(+)

diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index d0027964a6f5..7a3bd68efd85 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -618,6 +618,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_S390_BPB:
r = test_facility(82);
break;
+ case KVM_CAP_S390_PROTECTED_ASYNC_DISABLE:
+ r = async_destroy && is_prot_virt_host();
+ break;
case KVM_CAP_S390_PROTECTED:
r = is_prot_virt_host();
break;
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 02602c5c1975..9afe0084b2c5 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -1177,6 +1177,7 @@ struct kvm_ppc_resize_hpt {
#define KVM_CAP_VM_DISABLE_NX_HUGE_PAGES 220
#define KVM_CAP_S390_ZPCI_OP 221
#define KVM_CAP_S390_CPU_TOPOLOGY 222
+#define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 225

#ifdef KVM_CAP_IRQ_ROUTING

--
2.37.3


2022-10-04 14:02:07

by Steffen Eiden

[permalink] [raw]
Subject: Re: [PATCH v14 3/6] KVM: s390: pv: add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE



On 9/30/22 16:01, Claudio Imbrenda wrote:
> Add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE to signal that the
> KVM_PV_ASYNC_DISABLE and KVM_PV_ASYNC_DISABLE_PREPARE commands for the
> KVM_S390_PV_COMMAND ioctl are available.
>
> Signed-off-by: Claudio Imbrenda <[email protected]>
> Reviewed-by: Nico Boehr <[email protected]>
LGTM.

Reviewed-by: Steffen Eiden <[email protected]>

> ---
> arch/s390/kvm/kvm-s390.c | 3 +++
> include/uapi/linux/kvm.h | 1 +
> 2 files changed, 4 insertions(+)
>
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index d0027964a6f5..7a3bd68efd85 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -618,6 +618,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
> case KVM_CAP_S390_BPB:
> r = test_facility(82);
> break;
> + case KVM_CAP_S390_PROTECTED_ASYNC_DISABLE:
> + r = async_destroy && is_prot_virt_host();
> + break;
> case KVM_CAP_S390_PROTECTED:
> r = is_prot_virt_host();
> break;
> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> index 02602c5c1975..9afe0084b2c5 100644
> --- a/include/uapi/linux/kvm.h
> +++ b/include/uapi/linux/kvm.h
> @@ -1177,6 +1177,7 @@ struct kvm_ppc_resize_hpt {
> #define KVM_CAP_VM_DISABLE_NX_HUGE_PAGES 220
> #define KVM_CAP_S390_ZPCI_OP 221
> #define KVM_CAP_S390_CPU_TOPOLOGY 222
> +#define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 225
>
> #ifdef KVM_CAP_IRQ_ROUTING
>

2022-10-10 12:18:32

by Janosch Frank

[permalink] [raw]
Subject: Re: [PATCH v14 3/6] KVM: s390: pv: add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE

On 9/30/22 16:01, Claudio Imbrenda wrote:
> Add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE to signal that the
> KVM_PV_ASYNC_DISABLE and KVM_PV_ASYNC_DISABLE_PREPARE commands for the
> KVM_S390_PV_COMMAND ioctl are available.
>
> Signed-off-by: Claudio Imbrenda <[email protected]>
> Reviewed-by: Nico Boehr <[email protected]>
> ---
> arch/s390/kvm/kvm-s390.c | 3 +++
> include/uapi/linux/kvm.h | 1 +
> 2 files changed, 4 insertions(+)
>
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index d0027964a6f5..7a3bd68efd85 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -618,6 +618,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
> case KVM_CAP_S390_BPB:
> r = test_facility(82);
> break;
> + case KVM_CAP_S390_PROTECTED_ASYNC_DISABLE:
> + r = async_destroy && is_prot_virt_host();
> + break;
> case KVM_CAP_S390_PROTECTED:
> r = is_prot_virt_host();
> break;
> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> index 02602c5c1975..9afe0084b2c5 100644
> --- a/include/uapi/linux/kvm.h
> +++ b/include/uapi/linux/kvm.h
> @@ -1177,6 +1177,7 @@ struct kvm_ppc_resize_hpt {
> #define KVM_CAP_VM_DISABLE_NX_HUGE_PAGES 220
> #define KVM_CAP_S390_ZPCI_OP 221
> #define KVM_CAP_S390_CPU_TOPOLOGY 222
> +#define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 225

I can see 223 in Paolo's next, is there a 224 that I've missed?


>
> #ifdef KVM_CAP_IRQ_ROUTING
>

2022-10-10 12:24:30

by Claudio Imbrenda

[permalink] [raw]
Subject: Re: [PATCH v14 3/6] KVM: s390: pv: add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE

On Mon, 10 Oct 2022 13:45:54 +0200
Janosch Frank <[email protected]> wrote:

> On 9/30/22 16:01, Claudio Imbrenda wrote:
> > Add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE to signal that the
> > KVM_PV_ASYNC_DISABLE and KVM_PV_ASYNC_DISABLE_PREPARE commands for the
> > KVM_S390_PV_COMMAND ioctl are available.
> >
> > Signed-off-by: Claudio Imbrenda <[email protected]>
> > Reviewed-by: Nico Boehr <[email protected]>
> > ---
> > arch/s390/kvm/kvm-s390.c | 3 +++
> > include/uapi/linux/kvm.h | 1 +
> > 2 files changed, 4 insertions(+)
> >
> > diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> > index d0027964a6f5..7a3bd68efd85 100644
> > --- a/arch/s390/kvm/kvm-s390.c
> > +++ b/arch/s390/kvm/kvm-s390.c
> > @@ -618,6 +618,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
> > case KVM_CAP_S390_BPB:
> > r = test_facility(82);
> > break;
> > + case KVM_CAP_S390_PROTECTED_ASYNC_DISABLE:
> > + r = async_destroy && is_prot_virt_host();
> > + break;
> > case KVM_CAP_S390_PROTECTED:
> > r = is_prot_virt_host();
> > break;
> > diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
> > index 02602c5c1975..9afe0084b2c5 100644
> > --- a/include/uapi/linux/kvm.h
> > +++ b/include/uapi/linux/kvm.h
> > @@ -1177,6 +1177,7 @@ struct kvm_ppc_resize_hpt {
> > #define KVM_CAP_VM_DISABLE_NX_HUGE_PAGES 220
> > #define KVM_CAP_S390_ZPCI_OP 221
> > #define KVM_CAP_S390_CPU_TOPOLOGY 222
> > +#define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 225
>
> I can see 223 in Paolo's next, is there a 224 that I've missed?

no, I set this to an arbitrarily high value to avoid conficts

seems like I got it more or less right :)

feel free to change the value of the macro when merging, so it's
contiguous.

>
>
> >
> > #ifdef KVM_CAP_IRQ_ROUTING
> >
>

2022-10-10 13:14:15

by Janosch Frank

[permalink] [raw]
Subject: Re: [PATCH v14 3/6] KVM: s390: pv: add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE

On 10/10/22 14:15, Claudio Imbrenda wrote:
> On Mon, 10 Oct 2022 13:45:54 +0200
> Janosch Frank <[email protected]> wrote:
>
>> On 9/30/22 16:01, Claudio Imbrenda wrote:
>>> Add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE to signal that the
>>> KVM_PV_ASYNC_DISABLE and KVM_PV_ASYNC_DISABLE_PREPARE commands for the
>>> KVM_S390_PV_COMMAND ioctl are available.
>>>
>>> Signed-off-by: Claudio Imbrenda <[email protected]>
>>> Reviewed-by: Nico Boehr <[email protected]>
>>> ---
>>> arch/s390/kvm/kvm-s390.c | 3 +++
>>> include/uapi/linux/kvm.h | 1 +
>>> 2 files changed, 4 insertions(+)
>>>
>>> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
>>> index d0027964a6f5..7a3bd68efd85 100644
>>> --- a/arch/s390/kvm/kvm-s390.c
>>> +++ b/arch/s390/kvm/kvm-s390.c
>>> @@ -618,6 +618,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
>>> case KVM_CAP_S390_BPB:
>>> r = test_facility(82);
>>> break;
>>> + case KVM_CAP_S390_PROTECTED_ASYNC_DISABLE:
>>> + r = async_destroy && is_prot_virt_host();
>>> + break;
>>> case KVM_CAP_S390_PROTECTED:
>>> r = is_prot_virt_host();
>>> break;
>>> diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
>>> index 02602c5c1975..9afe0084b2c5 100644
>>> --- a/include/uapi/linux/kvm.h
>>> +++ b/include/uapi/linux/kvm.h
>>> @@ -1177,6 +1177,7 @@ struct kvm_ppc_resize_hpt {
>>> #define KVM_CAP_VM_DISABLE_NX_HUGE_PAGES 220
>>> #define KVM_CAP_S390_ZPCI_OP 221
>>> #define KVM_CAP_S390_CPU_TOPOLOGY 222
>>> +#define KVM_CAP_S390_PROTECTED_ASYNC_DISABLE 225
>>
>> I can see 223 in Paolo's next, is there a 224 that I've missed?
>
> no, I set this to an arbitrarily high value to avoid conficts
>
> seems like I got it more or less right :)
>
> feel free to change the value of the macro when merging, so it's
> contiguous.

Reviewed-by: Janosch Frank <[email protected]>