kvm_vcpu
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
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int vcpu_idx;
int srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
int pre_pcpu;
struct list_head blocked_vcpu_list;
struct mutex mutex;
struct kvm_run *run;
struct rcuwait wait;
struct pid *pid;
int sigset_active;
sigset_t sigset;
struct kvm_vcpu_stat stat;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
struct (anon) async_pf;
struct (anon) spin_loop;
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct kvm_dirty_ring dirty_ring;
};
5.13
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int vcpu_idx;
int srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
int pre_pcpu;
struct list_head blocked_vcpu_list;
struct mutex mutex;
struct kvm_run *run;
struct rcuwait wait;
struct pid *pid;
int sigset_active;
sigset_t sigset;
struct kvm_vcpu_stat stat;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
struct (anon) async_pf;
struct (anon) spin_loop;
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct kvm_dirty_ring dirty_ring;
};
5.15
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int vcpu_idx;
int srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
int pre_pcpu;
struct list_head blocked_vcpu_list;
struct mutex mutex;
struct kvm_run *run;
struct rcuwait wait;
struct pid *pid;
int sigset_active;
sigset_t sigset;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
struct (anon) async_pf;
struct (anon) spin_loop;
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct kvm_vcpu_stat stat;
char stats_id[48];
struct kvm_dirty_ring dirty_ring;
int last_used_slot;
};
5.19
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int vcpu_idx;
int ____srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
struct mutex mutex;
struct kvm_run *run;
struct rcuwait wait;
struct pid *pid;
int sigset_active;
sigset_t sigset;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
struct (anon) async_pf;
struct (anon) spin_loop;
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct kvm_vcpu_stat stat;
char stats_id[48];
struct kvm_dirty_ring dirty_ring;
struct kvm_memory_slot *last_used_slot;
u64 last_used_slot_gen;
};
6.2
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int vcpu_idx;
int ____srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
struct mutex mutex;
struct kvm_run *run;
struct rcuwait wait;
struct pid *pid;
int sigset_active;
sigset_t sigset;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
struct (anon) async_pf;
struct (anon) spin_loop;
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct kvm_vcpu_stat stat;
char stats_id[48];
struct kvm_dirty_ring dirty_ring;
struct kvm_memory_slot *last_used_slot;
u64 last_used_slot_gen;
};
6.5
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int vcpu_idx;
int ____srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
struct mutex mutex;
struct kvm_run *run;
struct rcuwait wait;
struct pid *pid;
int sigset_active;
sigset_t sigset;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
struct (anon) async_pf;
struct (anon) spin_loop;
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct kvm_vcpu_stat stat;
char stats_id[48];
struct kvm_dirty_ring dirty_ring;
struct kvm_memory_slot *last_used_slot;
u64 last_used_slot_gen;
};
6.8
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int vcpu_idx;
int ____srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
struct mutex mutex;
struct kvm_run *run;
struct rcuwait wait;
struct pid *pid;
int sigset_active;
sigset_t sigset;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
struct (anon) async_pf;
struct (anon) spin_loop;
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct kvm_vcpu_stat stat;
char stats_id[48];
struct kvm_dirty_ring dirty_ring;
struct kvm_memory_slot *last_used_slot;
u64 last_used_slot_gen;
};
arm64
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
int pre_pcpu;
struct list_head blocked_vcpu_list;
struct mutex mutex;
struct kvm_run *run;
int guest_xcr0_loaded;
struct swait_queue_head wq;
struct pid *pid;
int sigset_active;
sigset_t sigset;
struct kvm_vcpu_stat stat;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
struct (anon) spin_loop;
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct dentry *debugfs_dentry;
};
armhf
: Absent ⚠️
ppc64el
: ✅struct kvm_vcpu {
struct kvm *kvm;
struct preempt_notifier preempt_notifier;
int cpu;
int vcpu_id;
int srcu_idx;
int mode;
u64 requests;
long unsigned int guest_debug;
int pre_pcpu;
struct list_head blocked_vcpu_list;
struct mutex mutex;
struct kvm_run *run;
int guest_xcr0_loaded;
struct swait_queue_head wq;
struct pid *pid;
int sigset_active;
sigset_t sigset;
struct kvm_vcpu_stat stat;
unsigned int halt_poll_ns;
bool valid_wakeup;
int mmio_needed;
int mmio_read_completed;
int mmio_is_write;
int mmio_cur_fragment;
int mmio_nr_fragments;
struct kvm_mmio_fragment mmio_fragments[2];
bool preempted;
bool ready;
struct kvm_vcpu_arch arch;
struct dentry *debugfs_dentry;
};
riscv64
: Absent ⚠️
aws
: Absent ⚠️
azure
: Absent ⚠️
gcp
: Absent ⚠️
lowlatency
: Absent ⚠️
Regular
5.11
and 5.13
✅
5.13
and 5.15
⚠️char stats_id[48]
int last_used_slot
5.15
and 5.19
⚠️int ____srcu_idx
u64 last_used_slot_gen
int srcu_idx
int pre_pcpu
struct list_head blocked_vcpu_list
int last_used_slot
➡️ struct kvm_memory_slot *last_used_slot
5.19
and 6.2
✅
6.2
and 6.5
✅
6.5
and 6.8
✅