virtio_balloonRegular
4.4: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
wait_queue_head_t config_change;
struct task_struct *thread;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
u32 pfns[256];
int need_stats_update;
struct virtio_balloon_stat stats[6];
struct notifier_block nb;
};
4.8: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[7];
struct notifier_block nb;
};
4.10: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[7];
struct notifier_block nb;
};
4.13: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[7];
struct notifier_block nb;
};
4.15: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[7];
struct notifier_block nb;
};
4.18: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct notifier_block nb;
};
5.0: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
5.3: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
5.4: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
5.8: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
struct notifier_block oom_nb;
struct virtqueue *reporting_vq;
struct page_reporting_dev_info pr_dev_info;
};
5.11: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
struct notifier_block oom_nb;
struct virtqueue *reporting_vq;
struct page_reporting_dev_info pr_dev_info;
};
5.13: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
struct notifier_block oom_nb;
struct virtqueue *reporting_vq;
struct page_reporting_dev_info pr_dev_info;
};
5.15: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
struct notifier_block oom_nb;
struct virtqueue *reporting_vq;
struct page_reporting_dev_info pr_dev_info;
};
5.19: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
struct notifier_block oom_nb;
struct virtqueue *reporting_vq;
struct page_reporting_dev_info pr_dev_info;
};
6.2: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
struct notifier_block oom_nb;
struct virtqueue *reporting_vq;
struct page_reporting_dev_info pr_dev_info;
};
6.5: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
struct notifier_block oom_nb;
struct virtqueue *reporting_vq;
struct page_reporting_dev_info pr_dev_info;
};
6.8: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker *shrinker;
struct notifier_block oom_nb;
struct virtqueue *reporting_vq;
struct page_reporting_dev_info pr_dev_info;
spinlock_t adjustment_lock;
bool adjustment_signal_pending;
bool adjustment_in_progress;
};
arm64: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
armhf: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
ppc64el: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
riscv64: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
aws: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
azure: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
gcp: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
lowlatency: ✅struct virtio_balloon {
struct virtio_device *vdev;
struct virtqueue *inflate_vq;
struct virtqueue *deflate_vq;
struct virtqueue *stats_vq;
struct virtqueue *free_page_vq;
struct workqueue_struct *balloon_wq;
struct work_struct report_free_page_work;
struct work_struct update_balloon_stats_work;
struct work_struct update_balloon_size_work;
spinlock_t stop_update_lock;
bool stop_update;
long unsigned int config_read_bitmap;
struct list_head free_page_list;
spinlock_t free_page_list_lock;
long unsigned int num_free_page_blocks;
u32 cmd_id_received_cache;
__virtio32 cmd_id_active;
__virtio32 cmd_id_stop;
wait_queue_head_t acked;
unsigned int num_pages;
struct balloon_dev_info vb_dev_info;
struct mutex balloon_lock;
unsigned int num_pfns;
__virtio32 pfns[256];
struct virtio_balloon_stat stats[10];
struct shrinker shrinker;
};
Regular
4.4 and 4.8 ⚠️struct work_struct update_balloon_stats_work
struct work_struct update_balloon_size_work
spinlock_t stop_update_lock
bool stop_update
wait_queue_head_t config_change
struct task_struct *thread
int need_stats_update
u32 pfns[256] ➡️ __virtio32 pfns[256]
struct virtio_balloon_stat stats[6] ➡️ struct virtio_balloon_stat stats[7]
4.8 and 4.10 ✅
4.10 and 4.13 ✅
4.13 and 4.15 ✅
4.15 and 4.18 ⚠️struct virtio_balloon_stat stats[7] ➡️ struct virtio_balloon_stat stats[10]
4.18 and 5.0 ⚠️struct virtqueue *free_page_vq
struct workqueue_struct *balloon_wq
struct work_struct report_free_page_work
long unsigned int config_read_bitmap
struct list_head free_page_list
spinlock_t free_page_list_lock
long unsigned int num_free_page_blocks
u32 cmd_id_received_cache
__virtio32 cmd_id_active
__virtio32 cmd_id_stop
struct shrinker shrinker
struct notifier_block nb
5.0 and 5.3 ✅
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️struct notifier_block oom_nb
struct virtqueue *reporting_vq
struct page_reporting_dev_info pr_dev_info
5.8 and 5.11 ✅
5.11 and 5.13 ✅
5.13 and 5.15 ✅
5.15 and 5.19 ✅
5.19 and 6.2 ✅
6.2 and 6.5 ✅
6.5 and 6.8 ⚠️spinlock_t adjustment_lock
bool adjustment_signal_pending
bool adjustment_in_progress
struct shrinker shrinker ➡️ struct shrinker *shrinker
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅