KVM/arm64 updates for v5.14. - Add MTE support in guests, complete with tag save/restore interface - Reduce the impact of CMOs by moving them in the page-table code - Allow device block mappings at stage-2 - Reduce the footprint of the vmemmap in protected mode - Support the vGIC on dumb systems such as the Apple M1 - Add selftest infrastructure to support multiple configuration and apply that to PMU/non-PMU setups - Add selftests for the debug architecture - The usual crop of PMU fixes
Showing the changes to include/uapi (5 of 816 files). Show all
Unified · Split
| @@ -63,9 +63,6 @@ union __sifields { · 62 unmodified lines | |||
| 63 | /* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, SIGEMT */ | 63 | /* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, SIGEMT */ |
| 64 | struct { | 64 | struct { |
| 65 | void __user *_addr; /* faulting insn/memory ref. */ | 65 | void __user *_addr; /* faulting insn/memory ref. */ |
| 66 | #ifdef __ARCH_SI_TRAPNO | ||
| 67 | int _trapno; /* TRAP # which caused the signal */ | ||
| 68 | #endif | ||
| 69 | #ifdef __ia64__ | 66 | #ifdef __ia64__ |
| 70 | int _imm; /* immediate value for "break" */ | 67 | int _imm; /* immediate value for "break" */ |
| 71 | unsigned int _flags; /* see ia64 si_flags */ | 68 | unsigned int _flags; /* see ia64 si_flags */ |
| @@ -75,6 +72,8 @@ union __sifields { · 3 unmodified lines | |||
| 75 | #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? \ | 72 | #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? \ |
| 76 | sizeof(short) : __alignof__(void *)) | 73 | sizeof(short) : __alignof__(void *)) |
| 77 | union { | 74 | union { |
| 75 | /* used on alpha and sparc */ | ||
| 76 | int _trapno; /* TRAP # which caused the signal */ | ||
| 78 | /* | 77 | /* |
| 79 | * used when si_code=BUS_MCEERR_AR or | 78 | * used when si_code=BUS_MCEERR_AR or |
| 80 | * used when si_code=BUS_MCEERR_AO | 79 | * used when si_code=BUS_MCEERR_AO |
| @@ -92,7 +91,10 @@ union __sifields { · 11 unmodified lines | |||
| 92 | __u32 _pkey; | 91 | __u32 _pkey; |
| 93 | } _addr_pkey; | 92 | } _addr_pkey; |
| 94 | /* used when si_code=TRAP_PERF */ | 93 | /* used when si_code=TRAP_PERF */ |
| 95 | unsigned long _perf; | 94 | struct { |
| 95 | unsigned long _data; | ||
| 96 | __u32 _type; | ||
| 97 | } _perf; | ||
| 96 | }; | 98 | }; |
| 97 | } _sigfault; | 99 | } _sigfault; |
| 98 | 100 | ||
| @@ -150,14 +152,13 @@ typedef struct siginfo { · 51 unmodified lines | |||
| 150 | #define si_int _sifields._rt._sigval.sival_int | 152 | #define si_int _sifields._rt._sigval.sival_int |
| 151 | #define si_ptr _sifields._rt._sigval.sival_ptr | 153 | #define si_ptr _sifields._rt._sigval.sival_ptr |
| 152 | #define si_addr _sifields._sigfault._addr | 154 | #define si_addr _sifields._sigfault._addr |
| 153 | #ifdef __ARCH_SI_TRAPNO | ||
| 154 | #define si_trapno _sifields._sigfault._trapno | 155 | #define si_trapno _sifields._sigfault._trapno |
| 155 | #endif | ||
| 156 | #define si_addr_lsb _sifields._sigfault._addr_lsb | 156 | #define si_addr_lsb _sifields._sigfault._addr_lsb |
| 157 | #define si_lower _sifields._sigfault._addr_bnd._lower | 157 | #define si_lower _sifields._sigfault._addr_bnd._lower |
| 158 | #define si_upper _sifields._sigfault._addr_bnd._upper | 158 | #define si_upper _sifields._sigfault._addr_bnd._upper |
| 159 | #define si_pkey _sifields._sigfault._addr_pkey._pkey | 159 | #define si_pkey _sifields._sigfault._addr_pkey._pkey |
| 160 | #define si_perf _sifields._sigfault._perf | 160 | #define si_perf_data _sifields._sigfault._perf._data |
| 161 | #define si_perf_type _sifields._sigfault._perf._type | ||
| 161 | #define si_band _sifields._sigpoll._band | 162 | #define si_band _sifields._sigpoll._band |
| 162 | #define si_fd _sifields._sigpoll._fd | 163 | #define si_fd _sifields._sigpoll._fd |
| 163 | #define si_call_addr _sifields._sigsys._call_addr | 164 | #define si_call_addr _sifields._sigsys._call_addr |
| @@ -1111,6 +1111,7 @@ struct kvm_ppc_resize_hpt { · 1110 unmodified lines | |||
| 1111 | #define KVM_CAP_PPC_RPT_INVALIDATE 202 | 1111 | #define KVM_CAP_PPC_RPT_INVALIDATE 202 |
| 1112 | #define KVM_CAP_BINARY_STATS_FD 203 | 1112 | #define KVM_CAP_BINARY_STATS_FD 203 |
| 1113 | #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204 | 1113 | #define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204 |
| 1114 | #define KVM_CAP_ARM_MTE 205 | ||
| 1114 | 1115 | ||
| 1115 | #ifdef KVM_CAP_IRQ_ROUTING | 1116 | #ifdef KVM_CAP_IRQ_ROUTING |
| 1116 | 1117 | ||
| @@ -1456,6 +1457,7 @@ struct kvm_s390_ucas_mapping { · 339 unmodified lines | |||
| 1456 | /* Available with KVM_CAP_PMU_EVENT_FILTER */ | 1457 | /* Available with KVM_CAP_PMU_EVENT_FILTER */ |
| 1457 | #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter) | 1458 | #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter) |
| 1458 | #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3) | 1459 | #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3) |
| 1460 | #define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags) | ||
| 1459 | 1461 | ||
| 1460 | /* ioctl for vm fd */ | 1462 | /* ioctl for vm fd */ |
| 1461 | #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) | 1463 | #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device) |
| @@ -464,7 +464,7 @@ struct perf_event_attr { · 463 unmodified lines | |||
| 464 | 464 | ||
| 465 | /* | 465 | /* |
| 466 | * User provided data if sigtrap=1, passed back to user via | 466 | * User provided data if sigtrap=1, passed back to user via |
| 467 | * siginfo_t::si_perf, e.g. to permit user to identify the event. | 467 | * siginfo_t::si_perf_data, e.g. to permit user to identify the event. |
| 468 | */ | 468 | */ |
| 469 | __u64 sig_data; | 469 | __u64 sig_data; |
| 470 | }; | 470 | }; |
| @@ -39,8 +39,6 @@ struct signalfd_siginfo { · 38 unmodified lines | |||
| 39 | __s32 ssi_syscall; | 39 | __s32 ssi_syscall; |
| 40 | __u64 ssi_call_addr; | 40 | __u64 ssi_call_addr; |
| 41 | __u32 ssi_arch; | 41 | __u32 ssi_arch; |
| 42 | __u32 __pad3; | ||
| 43 | __u64 ssi_perf; | ||
| 44 | 42 | ||
| 45 | /* | 43 | /* |
| 46 | * Pad strcture to 128 bytes. Remember to update the | 44 | * Pad strcture to 128 bytes. Remember to update the |
| @@ -51,7 +49,7 @@ struct signalfd_siginfo { · 4 unmodified lines | |||
| 51 | * comes out of a read(2) and we really don't want to have | 49 | * comes out of a read(2) and we really don't want to have |
| 52 | * a compat on read(2). | 50 | * a compat on read(2). |
| 53 | */ | 51 | */ |
| 54 | __u8 __pad[16]; | 52 | __u8 __pad[28]; |
| 55 | }; | 53 | }; |
| 56 | 54 | ||
| 57 | 55 | ||
| @@ -239,6 +239,39 @@ enum gaudi_engine_id { · 238 unmodified lines | |||
| 239 | GAUDI_ENGINE_ID_SIZE | 239 | GAUDI_ENGINE_ID_SIZE |
| 240 | }; | 240 | }; |
| 241 | 241 | ||
| 242 | /* | ||
| 243 | * ASIC specific PLL index | ||
| 244 | * | ||
| 245 | * Used to retrieve in frequency info of different IPs via | ||
| 246 | * HL_INFO_PLL_FREQUENCY under HL_IOCTL_INFO IOCTL. The enums need to be | ||
| 247 | * used as an index in struct hl_pll_frequency_info | ||
| 248 | */ | ||
| 249 | |||
| 250 | enum hl_goya_pll_index { | ||
| 251 | HL_GOYA_CPU_PLL = 0, | ||
| 252 | HL_GOYA_IC_PLL, | ||
| 253 | HL_GOYA_MC_PLL, | ||
| 254 | HL_GOYA_MME_PLL, | ||
| 255 | HL_GOYA_PCI_PLL, | ||
| 256 | HL_GOYA_EMMC_PLL, | ||
| 257 | HL_GOYA_TPC_PLL, | ||
| 258 | HL_GOYA_PLL_MAX | ||
| 259 | }; | ||
| 260 | |||
| 261 | enum hl_gaudi_pll_index { | ||
| 262 | HL_GAUDI_CPU_PLL = 0, | ||
| 263 | HL_GAUDI_PCI_PLL, | ||
| 264 | HL_GAUDI_SRAM_PLL, | ||
| 265 | HL_GAUDI_HBM_PLL, | ||
| 266 | HL_GAUDI_NIC_PLL, | ||
| 267 | HL_GAUDI_DMA_PLL, | ||
| 268 | HL_GAUDI_MESH_PLL, | ||
| 269 | HL_GAUDI_MME_PLL, | ||
| 270 | HL_GAUDI_TPC_PLL, | ||
| 271 | HL_GAUDI_IF_PLL, | ||
| 272 | HL_GAUDI_PLL_MAX | ||
| 273 | }; | ||
| 274 | |||
| 242 | enum hl_device_status { | 275 | enum hl_device_status { |
| 243 | HL_DEVICE_STATUS_OPERATIONAL, | 276 | HL_DEVICE_STATUS_OPERATIONAL, |
| 244 | HL_DEVICE_STATUS_IN_RESET, | 277 | HL_DEVICE_STATUS_IN_RESET, |