On 7/21/22 17:05, Marc-André Lureau wrote:
> On Thu, Jul 21, 2022 at 5:23 PM Janosch Frank <frankja@linux.ibm.com> wrote:
>>
>> Add the uapi data for KVM_CAP_S390_PROTECTED_DUMP which I expect to be
>> added with 5.20.
>
> It's going to be overwritten by the next update-linux-headers.sh. I'd
> mark this patch as WIP or Draft: in the title until it's actually sync
> and imported from the kernel.
Yes, such patches are normally just ignored by maintainers as they
provide their own sync patch that's why it doesn't have a proper subject
or a WIP prefix. It's needed to be able to compile it until the proper
sync has arrived.
>
>
>>
>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>> ---
>> linux-headers/linux/kvm.h | 54 +++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 54 insertions(+)
>>
>> diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
>> index 0d05d02ee4..213216c27c 100644
>> --- a/linux-headers/linux/kvm.h
>> +++ b/linux-headers/linux/kvm.h
>> @@ -1150,6 +1150,7 @@ struct kvm_ppc_resize_hpt {
>> #define KVM_CAP_DISABLE_QUIRKS2 213
>> /* #define KVM_CAP_VM_TSC_CONTROL 214 */
>> #define KVM_CAP_SYSTEM_EVENT_DATA 215
>> +#define KVM_CAP_S390_PROTECTED_DUMP 217
>>
>> #ifdef KVM_CAP_IRQ_ROUTING
>>
>> @@ -1651,6 +1652,55 @@ struct kvm_s390_pv_unp {
>> __u64 tweak;
>> };
>>
>> +enum pv_cmd_info_id {
>> + KVM_PV_INFO_VM,
>> + KVM_PV_INFO_DUMP,
>> +};
>> +
>> +struct kvm_s390_pv_info_dump {
>> + __u64 dump_cpu_buffer_len;
>> + __u64 dump_config_mem_buffer_per_1m;
>> + __u64 dump_config_finalize_len;
>> +};
>> +
>> +struct kvm_s390_pv_info_vm {
>> + __u64 inst_calls_list[4];
>> + __u64 max_cpus;
>> + __u64 max_guests;
>> + __u64 max_guest_addr;
>> + __u64 feature_indication;
>> +};
>> +
>> +struct kvm_s390_pv_info_header {
>> + __u32 id;
>> + __u32 len_max;
>> + __u32 len_written;
>> + __u32 reserved;
>> +};
>> +
>> +struct kvm_s390_pv_info {
>> + struct kvm_s390_pv_info_header header;
>> + union {
>> + struct kvm_s390_pv_info_dump dump;
>> + struct kvm_s390_pv_info_vm vm;
>> + };
>> +};
>> +
>> +enum pv_cmd_dmp_id {
>> + KVM_PV_DUMP_INIT,
>> + KVM_PV_DUMP_CONFIG_STATE,
>> + KVM_PV_DUMP_COMPLETE,
>> + KVM_PV_DUMP_CPU,
>> +};
>> +
>> +struct kvm_s390_pv_dmp {
>> + __u64 subcmd;
>> + __u64 buff_addr;
>> + __u64 buff_len;
>> + __u64 gaddr;
>> + __u64 reserved[4];
>> +};
>> +
>> enum pv_cmd_id {
>> KVM_PV_ENABLE,
>> KVM_PV_DISABLE,
>> @@ -1659,6 +1709,8 @@ enum pv_cmd_id {
>> KVM_PV_VERIFY,
>> KVM_PV_PREP_RESET,
>> KVM_PV_UNSHARE_ALL,
>> + KVM_PV_INFO,
>> + KVM_PV_DUMP,
>> };
>>
>> struct kvm_pv_cmd {
>> @@ -2066,4 +2118,6 @@ struct kvm_stats_desc {
>> /* Available with KVM_CAP_XSAVE2 */
>> #define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
>>
>> +#define KVM_S390_PV_CPU_COMMAND _IOWR(KVMIO, 0xd0, struct kvm_pv_cmd)
>> +
>> #endif /* __LINUX_KVM_H */
>> --
>> 2.34.1
>>
>