kvm
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 {
spinlock_t mmu_lock;
struct mutex slots_lock;
struct mm_struct *mm;
struct kvm_memslots * memslots[2];
struct kvm_vcpu * vcpus[288];
atomic_t online_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_notifier_seq;
long int mmu_notifier_count;
long int tlbs_dirty;
struct list_head devices;
u64 manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
unsigned int max_halt_poll_ns;
u32 dirty_ring_size;
};
5.13
: ✅struct kvm {
rwlock_t mmu_lock;
struct mutex slots_lock;
struct mm_struct *mm;
struct kvm_memslots * memslots[2];
struct kvm_vcpu * vcpus[288];
atomic_t online_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_notifier_seq;
long int mmu_notifier_count;
long unsigned int mmu_notifier_range_start;
long unsigned int mmu_notifier_range_end;
long int tlbs_dirty;
struct list_head devices;
u64 manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
unsigned int max_halt_poll_ns;
u32 dirty_ring_size;
};
5.15
: ✅struct kvm {
rwlock_t mmu_lock;
struct mutex slots_lock;
struct mutex slots_arch_lock;
struct mm_struct *mm;
struct kvm_memslots * memslots[2];
struct kvm_vcpu * vcpus[1024];
spinlock_t mn_invalidate_lock;
long unsigned int mn_active_invalidate_count;
struct rcuwait mn_memslots_update_rcuwait;
atomic_t online_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_notifier_seq;
long int mmu_notifier_count;
long unsigned int mmu_notifier_range_start;
long unsigned int mmu_notifier_range_end;
struct list_head devices;
u64 manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
unsigned int max_halt_poll_ns;
u32 dirty_ring_size;
bool vm_bugged;
struct notifier_block pm_notifier;
char stats_id[48];
};
5.19
: ✅struct kvm {
rwlock_t mmu_lock;
struct mutex slots_lock;
struct mutex slots_arch_lock;
struct mm_struct *mm;
long unsigned int nr_memslot_pages;
struct kvm_memslots __memslots[4];
struct kvm_memslots * memslots[2];
struct xarray vcpu_array;
spinlock_t mn_invalidate_lock;
long unsigned int mn_active_invalidate_count;
struct rcuwait mn_memslots_update_rcuwait;
spinlock_t gpc_lock;
struct list_head gpc_list;
atomic_t online_vcpus;
int max_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_notifier_seq;
long int mmu_notifier_count;
long unsigned int mmu_notifier_range_start;
long unsigned int mmu_notifier_range_end;
struct list_head devices;
u64 manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
unsigned int max_halt_poll_ns;
u32 dirty_ring_size;
bool vm_bugged;
bool vm_dead;
struct notifier_block pm_notifier;
char stats_id[48];
};
6.2
: ✅struct kvm {
rwlock_t mmu_lock;
struct mutex slots_lock;
struct mutex slots_arch_lock;
struct mm_struct *mm;
long unsigned int nr_memslot_pages;
struct kvm_memslots __memslots[4];
struct kvm_memslots * memslots[2];
struct xarray vcpu_array;
atomic_t nr_memslots_dirty_logging;
spinlock_t mn_invalidate_lock;
long unsigned int mn_active_invalidate_count;
struct rcuwait mn_memslots_update_rcuwait;
spinlock_t gpc_lock;
struct list_head gpc_list;
atomic_t online_vcpus;
int max_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_invalidate_seq;
long int mmu_invalidate_in_progress;
long unsigned int mmu_invalidate_range_start;
long unsigned int mmu_invalidate_range_end;
struct list_head devices;
u64 manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
bool override_halt_poll_ns;
unsigned int max_halt_poll_ns;
u32 dirty_ring_size;
bool dirty_ring_with_bitmap;
bool vm_bugged;
bool vm_dead;
struct notifier_block pm_notifier;
char stats_id[48];
};
6.5
: ✅struct kvm {
rwlock_t mmu_lock;
struct mutex slots_lock;
struct mutex slots_arch_lock;
struct mm_struct *mm;
long unsigned int nr_memslot_pages;
struct kvm_memslots __memslots[4];
struct kvm_memslots * memslots[2];
struct xarray vcpu_array;
atomic_t nr_memslots_dirty_logging;
spinlock_t mn_invalidate_lock;
long unsigned int mn_active_invalidate_count;
struct rcuwait mn_memslots_update_rcuwait;
spinlock_t gpc_lock;
struct list_head gpc_list;
atomic_t online_vcpus;
int max_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_invalidate_seq;
long int mmu_invalidate_in_progress;
long unsigned int mmu_invalidate_range_start;
long unsigned int mmu_invalidate_range_end;
struct list_head devices;
u64 manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
bool override_halt_poll_ns;
unsigned int max_halt_poll_ns;
u32 dirty_ring_size;
bool dirty_ring_with_bitmap;
bool vm_bugged;
bool vm_dead;
struct notifier_block pm_notifier;
char stats_id[48];
};
6.8
: ✅struct kvm {
rwlock_t mmu_lock;
struct mutex slots_lock;
struct mutex slots_arch_lock;
struct mm_struct *mm;
long unsigned int nr_memslot_pages;
struct kvm_memslots __memslots[4];
struct kvm_memslots * memslots[2];
struct xarray vcpu_array;
atomic_t nr_memslots_dirty_logging;
spinlock_t mn_invalidate_lock;
long unsigned int mn_active_invalidate_count;
struct rcuwait mn_memslots_update_rcuwait;
spinlock_t gpc_lock;
struct list_head gpc_list;
atomic_t online_vcpus;
int max_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_invalidate_seq;
long int mmu_invalidate_in_progress;
gfn_t mmu_invalidate_range_start;
gfn_t mmu_invalidate_range_end;
struct list_head devices;
u64 manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
bool override_halt_poll_ns;
unsigned int max_halt_poll_ns;
u32 dirty_ring_size;
bool dirty_ring_with_bitmap;
bool vm_bugged;
bool vm_dead;
struct notifier_block pm_notifier;
struct xarray mem_attr_array;
char stats_id[48];
};
arm64
: ✅struct kvm {
spinlock_t mmu_lock;
struct mutex slots_lock;
struct mm_struct *mm;
struct kvm_memslots * memslots[1];
struct kvm_vcpu * vcpus[512];
atomic_t online_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_notifier_seq;
long int mmu_notifier_count;
long int tlbs_dirty;
struct list_head devices;
bool manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
};
armhf
: Absent ⚠️
ppc64el
: ✅struct kvm {
spinlock_t mmu_lock;
struct mutex slots_lock;
struct mm_struct *mm;
struct kvm_memslots * memslots[1];
struct kvm_vcpu * vcpus[2048];
atomic_t online_vcpus;
int created_vcpus;
int last_boosted_vcpu;
struct list_head vm_list;
struct mutex lock;
struct kvm_io_bus * buses[4];
struct (anon) irqfds;
struct list_head ioeventfds;
struct kvm_vm_stat stat;
struct kvm_arch arch;
refcount_t users_count;
struct kvm_coalesced_mmio_ring *coalesced_mmio_ring;
spinlock_t ring_lock;
struct list_head coalesced_zones;
struct mutex irq_lock;
struct kvm_irq_routing_table *irq_routing;
struct hlist_head irq_ack_notifier_list;
struct mmu_notifier mmu_notifier;
long unsigned int mmu_notifier_seq;
long int mmu_notifier_count;
long int tlbs_dirty;
struct list_head devices;
bool manual_dirty_log_protect;
struct dentry *debugfs_dentry;
struct kvm_stat_data **debugfs_stat_data;
struct srcu_struct srcu;
struct srcu_struct irq_srcu;
pid_t userspace_pid;
};
riscv64
: Absent ⚠️
aws
: Absent ⚠️
azure
: Absent ⚠️
gcp
: Absent ⚠️
lowlatency
: Absent ⚠️
Regular
5.11
and 5.13
⚠️long unsigned int mmu_notifier_range_start
long unsigned int mmu_notifier_range_end
spinlock_t mmu_lock
➡️ rwlock_t mmu_lock
5.13
and 5.15
⚠️struct mutex slots_arch_lock
spinlock_t mn_invalidate_lock
long unsigned int mn_active_invalidate_count
struct rcuwait mn_memslots_update_rcuwait
bool vm_bugged
struct notifier_block pm_notifier
char stats_id[48]
long int tlbs_dirty
struct kvm_vcpu * vcpus[288]
➡️ struct kvm_vcpu * vcpus[1024]
5.15
and 5.19
⚠️long unsigned int nr_memslot_pages
struct kvm_memslots __memslots[4]
struct xarray vcpu_array
spinlock_t gpc_lock
struct list_head gpc_list
int max_vcpus
bool vm_dead
struct kvm_vcpu * vcpus[1024]
5.19
and 6.2
⚠️atomic_t nr_memslots_dirty_logging
long unsigned int mmu_invalidate_seq
long int mmu_invalidate_in_progress
long unsigned int mmu_invalidate_range_start
long unsigned int mmu_invalidate_range_end
bool override_halt_poll_ns
bool dirty_ring_with_bitmap
long unsigned int mmu_notifier_seq
long int mmu_notifier_count
long unsigned int mmu_notifier_range_start
long unsigned int mmu_notifier_range_end
6.2
and 6.5
✅
6.5
and 6.8
⚠️struct xarray mem_attr_array
long unsigned int mmu_invalidate_range_start
➡️ gfn_t mmu_invalidate_range_start
long unsigned int mmu_invalidate_range_end
➡️ gfn_t mmu_invalidate_range_end