kvm_x86_nested_ops
Regular
4.4
: Absent ⚠️
4.8
: Absent ⚠️
4.10
: Absent ⚠️
4.13
: Absent ⚠️
4.15
: Absent ⚠️
4.18
: Absent ⚠️
5.0
: Absent ⚠️
5.3
: Absent ⚠️
5.4
: Absent ⚠️
5.8
: Absent ⚠️
5.11
: Absent ⚠️
5.13
: ✅struct kvm_x86_nested_ops {
int (*check_events)(struct kvm_vcpu *);
bool (*hv_timer_pending)(struct kvm_vcpu *);
void (*triple_fault)(struct kvm_vcpu *);
int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int);
int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *);
bool (*get_nested_state_pages)(struct kvm_vcpu *);
int (*write_log_dirty)(struct kvm_vcpu *, gpa_t);
int (*enable_evmcs)(struct kvm_vcpu *, uint16_t *);
uint16_t (*get_evmcs_version)(struct kvm_vcpu *);
};
5.15
: ✅struct kvm_x86_nested_ops {
void (*leave_nested)(struct kvm_vcpu *);
int (*check_events)(struct kvm_vcpu *);
bool (*hv_timer_pending)(struct kvm_vcpu *);
void (*triple_fault)(struct kvm_vcpu *);
int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int);
int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *);
bool (*get_nested_state_pages)(struct kvm_vcpu *);
int (*write_log_dirty)(struct kvm_vcpu *, gpa_t);
int (*enable_evmcs)(struct kvm_vcpu *, uint16_t *);
uint16_t (*get_evmcs_version)(struct kvm_vcpu *);
};
5.19
: ✅struct kvm_x86_nested_ops {
void (*leave_nested)(struct kvm_vcpu *);
int (*check_events)(struct kvm_vcpu *);
bool (*handle_page_fault_workaround)(struct kvm_vcpu *, struct x86_exception *);
bool (*hv_timer_pending)(struct kvm_vcpu *);
void (*triple_fault)(struct kvm_vcpu *);
int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int);
int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *);
bool (*get_nested_state_pages)(struct kvm_vcpu *);
int (*write_log_dirty)(struct kvm_vcpu *, gpa_t);
int (*enable_evmcs)(struct kvm_vcpu *, uint16_t *);
uint16_t (*get_evmcs_version)(struct kvm_vcpu *);
};
6.2
: ✅struct kvm_x86_nested_ops {
void (*leave_nested)(struct kvm_vcpu *);
bool (*is_exception_vmexit)(struct kvm_vcpu *, u8, u32);
int (*check_events)(struct kvm_vcpu *);
bool (*has_events)(struct kvm_vcpu *);
void (*triple_fault)(struct kvm_vcpu *);
int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int);
int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *);
bool (*get_nested_state_pages)(struct kvm_vcpu *);
int (*write_log_dirty)(struct kvm_vcpu *, gpa_t);
int (*enable_evmcs)(struct kvm_vcpu *, uint16_t *);
uint16_t (*get_evmcs_version)(struct kvm_vcpu *);
void (*hv_inject_synthetic_vmexit_post_tlb_flush)(struct kvm_vcpu *);
};
6.5
: ✅struct kvm_x86_nested_ops {
void (*leave_nested)(struct kvm_vcpu *);
bool (*is_exception_vmexit)(struct kvm_vcpu *, u8, u32);
int (*check_events)(struct kvm_vcpu *);
bool (*has_events)(struct kvm_vcpu *);
void (*triple_fault)(struct kvm_vcpu *);
int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int);
int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *);
bool (*get_nested_state_pages)(struct kvm_vcpu *);
int (*write_log_dirty)(struct kvm_vcpu *, gpa_t);
int (*enable_evmcs)(struct kvm_vcpu *, uint16_t *);
uint16_t (*get_evmcs_version)(struct kvm_vcpu *);
void (*hv_inject_synthetic_vmexit_post_tlb_flush)(struct kvm_vcpu *);
};
6.8
: ✅struct kvm_x86_nested_ops {
void (*leave_nested)(struct kvm_vcpu *);
bool (*is_exception_vmexit)(struct kvm_vcpu *, u8, u32);
int (*check_events)(struct kvm_vcpu *);
bool (*has_events)(struct kvm_vcpu *);
void (*triple_fault)(struct kvm_vcpu *);
int (*get_state)(struct kvm_vcpu *, struct kvm_nested_state *, unsigned int);
int (*set_state)(struct kvm_vcpu *, struct kvm_nested_state *, struct kvm_nested_state *);
bool (*get_nested_state_pages)(struct kvm_vcpu *);
int (*write_log_dirty)(struct kvm_vcpu *, gpa_t);
int (*enable_evmcs)(struct kvm_vcpu *, uint16_t *);
uint16_t (*get_evmcs_version)(struct kvm_vcpu *);
void (*hv_inject_synthetic_vmexit_post_tlb_flush)(struct kvm_vcpu *);
};
arm64
: Absent ⚠️
armhf
: Absent ⚠️
ppc64el
: Absent ⚠️
riscv64
: Absent ⚠️
aws
: Absent ⚠️
azure
: Absent ⚠️
gcp
: Absent ⚠️
lowlatency
: Absent ⚠️
Regular
5.13
and 5.15
⚠️void (*leave_nested)(struct kvm_vcpu *)
5.15
and 5.19
⚠️bool (*handle_page_fault_workaround)(struct kvm_vcpu *, struct x86_exception *)
5.19
and 6.2
⚠️bool (*is_exception_vmexit)(struct kvm_vcpu *, u8, u32)
bool (*has_events)(struct kvm_vcpu *)
void (*hv_inject_synthetic_vmexit_post_tlb_flush)(struct kvm_vcpu *)
bool (*handle_page_fault_workaround)(struct kvm_vcpu *, struct x86_exception *)
bool (*hv_timer_pending)(struct kvm_vcpu *)
6.2
and 6.5
✅
6.5
and 6.8
✅