qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 09/11] s390x: Introduce PV query interface


From: Marc-André Lureau
Subject: Re: [PATCH v2 09/11] s390x: Introduce PV query interface
Date: Fri, 15 Jul 2022 12:23:11 +0400



On Fri, Jul 15, 2022 at 12:18 PM Janosch Frank <frankja@linux.ibm.com> wrote:
On 7/15/22 10:10, Marc-André Lureau wrote:
[...]
>>       ms->pv = true;
>>
>> +    rc = s390_pv_query_info();
>> +    if (rc) {
>> +        goto out_err;
>>
>
> Maybe it's not necessary to make it fatal on error?
>
> lgtm otherwise

Hmm, yes and no.
The info API is fenced by the dump CAP so I don't ever expect an error
here but on the other hand an optional info API fail might not warrant
an error.


I see. You could explain more explicitly in the commit messages and/or comments the kernel version/requirements.

 
>
>
>> +    }
>> +
>>       /* Set SE header and unpack */
>>       rc = s390_ipl_prepare_pv_header();
>>       if (rc) {
>> diff --git a/include/hw/s390x/pv.h b/include/hw/s390x/pv.h
>> index 1f1f545bfc..6fa55bf70e 100644
>> --- a/include/hw/s390x/pv.h
>> +++ b/include/hw/s390x/pv.h
>> @@ -38,6 +38,7 @@ static inline bool s390_is_pv(void)
>>       return ccw->pv;
>>   }
>>
>> +int s390_pv_query_info(void);
>>   int s390_pv_vm_enable(void);
>>   void s390_pv_vm_disable(void);
>>   int s390_pv_set_sec_parms(uint64_t origin, uint64_t length);
>> @@ -46,8 +47,13 @@ void s390_pv_prep_reset(void);
>>   int s390_pv_verify(void);
>>   void s390_pv_unshare(void);
>>   void s390_pv_inject_reset_error(CPUState *cs);
>> +uint64_t kvm_s390_pv_dmp_get_size_cpu(void);
>> +uint64_t kvm_s390_pv_dmp_get_size_mem(void);
>> +uint64_t kvm_s390_pv_dmp_get_size_complete(void);
>> +bool kvm_s390_pv_info_basic_valid(void);
>>   #else /* CONFIG_KVM */
>>   static inline bool s390_is_pv(void) { return false; }
>> +static inline int s390_pv_query_info(void) { return 0; }
>>   static inline int s390_pv_vm_enable(void) { return 0; }
>>   static inline void s390_pv_vm_disable(void) {}
>>   static inline int s390_pv_set_sec_parms(uint64_t origin, uint64_t length)
>> { return 0; }
>> @@ -56,6 +62,10 @@ static inline void s390_pv_prep_reset(void) {}
>>   static inline int s390_pv_verify(void) { return 0; }
>>   static inline void s390_pv_unshare(void) {}
>>   static inline void s390_pv_inject_reset_error(CPUState *cs) {};
>> +static inline uint64_t kvm_s390_pv_dmp_get_size_cpu(void) { return 0; }
>> +static inline uint64_t kvm_s390_pv_dmp_get_size_mem(void) { return 0; }
>> +static inline uint64_t kvm_s390_pv_dmp_get_size_complete(void) { return
>> 0; }
>> +static inline bool kvm_s390_pv_info_basic_valid(void) { return false; }
>>   #endif /* CONFIG_KVM */
>>
>>   int s390_pv_kvm_init(ConfidentialGuestSupport *cgs, Error **errp);
>> --
>> 2.34.1
>>
>>
>>
>



--
Marc-André Lureau

reply via email to

[Prev in Thread] Current Thread [Next in Thread]