swap_info_structRegular
4.4: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
struct plist_node avail_list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_info free_cluster_head;
struct swap_cluster_info free_cluster_tail;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct swap_extent *curr_swap_extent;
struct swap_extent first_swap_extent;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
struct work_struct discard_work;
struct swap_cluster_info discard_cluster_head;
struct swap_cluster_info discard_cluster_tail;
};
4.8: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
struct plist_node avail_list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_info free_cluster_head;
struct swap_cluster_info free_cluster_tail;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct swap_extent *curr_swap_extent;
struct swap_extent first_swap_extent;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
struct work_struct discard_work;
struct swap_cluster_info discard_cluster_head;
struct swap_cluster_info discard_cluster_tail;
};
4.10: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
struct plist_node avail_list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct swap_extent *curr_swap_extent;
struct swap_extent first_swap_extent;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
};
4.13: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
struct plist_node avail_list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct swap_extent *curr_swap_extent;
struct swap_extent first_swap_extent;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
};
4.15: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
struct plist_node avail_lists[1024];
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct swap_extent *curr_swap_extent;
struct swap_extent first_swap_extent;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
};
4.18: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
struct plist_node avail_lists[1024];
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct swap_extent *curr_swap_extent;
struct swap_extent first_swap_extent;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
};
5.0: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct swap_extent *curr_swap_extent;
struct swap_extent first_swap_extent;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
5.3: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
5.4: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
5.8: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int *cluster_next_cpu;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
5.11: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int *cluster_next_cpu;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
5.13: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int *cluster_next_cpu;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
5.15: ✅struct swap_info_struct {
struct percpu_ref users;
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int *cluster_next_cpu;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
struct completion comp;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
5.19: ✅struct swap_info_struct {
struct percpu_ref users;
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int *cluster_next_cpu;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
struct completion comp;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
6.2: ✅struct swap_info_struct {
struct percpu_ref users;
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int *cluster_next_cpu;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
struct completion comp;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
6.5: ✅struct swap_info_struct {
struct percpu_ref users;
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int *cluster_next_cpu;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
struct completion comp;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
6.8: ✅struct swap_info_struct {
struct percpu_ref users;
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
unsigned int *cluster_next_cpu;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct bdev_handle *bdev_handle;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
struct completion comp;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
arm64: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
armhf: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
ppc64el: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
riscv64: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
aws: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
azure: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
gcp: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
lowlatency: ✅struct swap_info_struct {
long unsigned int flags;
short int prio;
struct plist_node list;
signed char type;
unsigned int max;
unsigned char *swap_map;
struct swap_cluster_info *cluster_info;
struct swap_cluster_list free_clusters;
unsigned int lowest_bit;
unsigned int highest_bit;
unsigned int pages;
unsigned int inuse_pages;
unsigned int cluster_next;
unsigned int cluster_nr;
struct percpu_cluster *percpu_cluster;
struct rb_root swap_extent_root;
struct block_device *bdev;
struct file *swap_file;
unsigned int old_block_size;
long unsigned int *frontswap_map;
atomic_t frontswap_pages;
spinlock_t lock;
spinlock_t cont_lock;
struct work_struct discard_work;
struct swap_cluster_list discard_clusters;
struct plist_node avail_lists[0];
};
Regular
4.4 and 4.8 ✅
4.8 and 4.10 ⚠️struct swap_cluster_list free_clusters
struct swap_cluster_list discard_clusters
struct swap_cluster_info free_cluster_head
struct swap_cluster_info free_cluster_tail
struct swap_cluster_info discard_cluster_head
struct swap_cluster_info discard_cluster_tail
4.10 and 4.13 ✅
4.13 and 4.15 ⚠️struct plist_node avail_lists[1024]
spinlock_t cont_lock
struct plist_node avail_list
4.15 and 4.18 ✅
4.18 and 5.0 ⚠️struct plist_node avail_lists[1024] ➡️ struct plist_node avail_lists[0]
5.0 and 5.3 ⚠️struct rb_root swap_extent_root
struct swap_extent *curr_swap_extent
struct swap_extent first_swap_extent
5.3 and 5.4 ✅
5.4 and 5.8 ⚠️unsigned int *cluster_next_cpu
5.8 and 5.11 ✅
5.11 and 5.13 ✅
5.13 and 5.15 ⚠️struct percpu_ref users
struct completion comp
5.15 and 5.19 ✅
5.19 and 6.2 ✅
6.2 and 6.5 ✅
6.5 and 6.8 ⚠️struct bdev_handle *bdev_handle
long unsigned int *frontswap_map
atomic_t frontswap_pages
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅