kvm_vcpuRegular
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 ✅