On Tue, Jul 26, 2022 at 1:24 PM Janosch Frank <fran...@linux.ibm.com> wrote: > > Add the uapi data for KVM_CAP_S390_PROTECTED_DUMP which I expect to be > added with 5.20. > > Also add the missing NT_S390_RI_CB and the new NT_S390_PV_CPU_DATA elf > note types. > > Signed-off-by: Janosch Frank <fran...@linux.ibm.com>
This patch could be committed by mistake, I keep my recommendation to add a WIP: prefix in the title until it is officially in the kernel. And it would be useful to link to the kernel patch submission. > --- > include/elf.h | 2 ++ > linux-headers/linux/kvm.h | 54 +++++++++++++++++++++++++++++++++++++++ > 2 files changed, 56 insertions(+) > > diff --git a/include/elf.h b/include/elf.h > index 3a4bcb646a..94fdcfd8dc 100644 > --- a/include/elf.h > +++ b/include/elf.h > @@ -1649,6 +1649,8 @@ typedef struct elf64_shdr { > #define NT_TASKSTRUCT 4 > #define NT_AUXV 6 > #define NT_PRXFPREG 0x46e62b7f /* copied from > gdb5.1/include/elf/common.h */ > +#define NT_S390_PV_CPU_DATA 0x30e /* s390 protvirt cpu dump data */ > +#define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation */ > #define NT_S390_GS_CB 0x30b /* s390 guarded storage registers */ > #define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31 */ > #define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 (lower > half) */ > diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h > index f089349149..46133ef36c 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 { > @@ -2067,4 +2119,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 >