hc
2024-05-10 ee930fffee469d076998274a2ca55e13dc1efb67
kernel/arch/x86/include/uapi/asm/kvm_para.h
....@@ -29,6 +29,10 @@
2929 #define KVM_FEATURE_PV_TLB_FLUSH 9
3030 #define KVM_FEATURE_ASYNC_PF_VMEXIT 10
3131 #define KVM_FEATURE_PV_SEND_IPI 11
32
+#define KVM_FEATURE_POLL_CONTROL 12
33
+#define KVM_FEATURE_PV_SCHED_YIELD 13
34
+#define KVM_FEATURE_ASYNC_PF_INT 14
35
+#define KVM_FEATURE_MSI_EXT_DEST_ID 15
3236
3337 #define KVM_HINTS_REALTIME 0
3438
....@@ -47,6 +51,9 @@
4751 #define MSR_KVM_ASYNC_PF_EN 0x4b564d02
4852 #define MSR_KVM_STEAL_TIME 0x4b564d03
4953 #define MSR_KVM_PV_EOI_EN 0x4b564d04
54
+#define MSR_KVM_POLL_CONTROL 0x4b564d05
55
+#define MSR_KVM_ASYNC_PF_INT 0x4b564d06
56
+#define MSR_KVM_ASYNC_PF_ACK 0x4b564d07
5057
5158 struct kvm_steal_time {
5259 __u64 steal;
....@@ -78,6 +85,11 @@
7885 #define KVM_ASYNC_PF_ENABLED (1 << 0)
7986 #define KVM_ASYNC_PF_SEND_ALWAYS (1 << 1)
8087 #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
88
+#define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3)
89
+
90
+/* MSR_KVM_ASYNC_PF_INT */
91
+#define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0)
92
+
8193
8294 /* Operations for KVM_HC_MMU_OP */
8395 #define KVM_MMU_OP_WRITE_PTE 1
....@@ -109,8 +121,13 @@
109121 #define KVM_PV_REASON_PAGE_READY 2
110122
111123 struct kvm_vcpu_pv_apf_data {
112
- __u32 reason;
113
- __u8 pad[60];
124
+ /* Used for 'page not present' events delivered via #PF */
125
+ __u32 flags;
126
+
127
+ /* Used for 'page ready' events delivered via interrupt notification */
128
+ __u32 token;
129
+
130
+ __u8 pad[56];
114131 __u32 enabled;
115132 };
116133