Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

fs/f2fs/segment.c f2fs_balance_fs_bg() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 type 4
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/segment.c f2fs_balance_fs_bg() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 type 5
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/segment.c f2fs_balance_fs_bg() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 type 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/segment.c f2fs_balance_fs_bg() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 type 0
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/segment.c f2fs_balance_fs_bg() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner (-1)
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner_cpu u32max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->error_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->iostat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sbi->nm_info 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->raw_super->feature 0,2-u32max
PARAM_VALUE 0 sbi->rf_node_block_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->rf_node_block_count.lock.owner (-1)
PARAM_VALUE 0 sbi->rf_node_block_count.lock.owner_cpu u32max
PARAM_VALUE 0 sbi->s_error_work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 *sbi->page_eio_cnt s32min-s32max
PARAM_VALUE 1 type 1
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/segment.c f2fs_balance_fs_bg() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner (-1)
PARAM_VALUE 0 sbi->alloc_valid_block_count.lock.owner_cpu u32max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->error_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->iostat_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 sbi->nm_info 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->raw_super->feature 0,2-u32max
PARAM_VALUE 0 sbi->rf_node_block_count.lock.dep_map->name 0-255
PARAM_VALUE 0 sbi->rf_node_block_count.lock.owner (-1)
PARAM_VALUE 0 sbi->rf_node_block_count.lock.owner_cpu u32max
PARAM_VALUE 0 sbi->s_error_work.entry.next->prev 4096-ptr_max
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 *sbi->page_eio_cnt s32min-s32max
PARAM_VALUE 1 type 3
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 0 &sbi->cp_rwsem.internal_rwsem

fs/f2fs/segment.c issue_discard_thread() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->gc_mode 0-3,5-u32max
PARAM_VALUE 0 sbi->meta_inode->i_sb->s_cop->inode_info_offs 1632,1720,2632,2648
PARAM_VALUE 0 sbi->node_inode->i_sb->s_cop->inode_info_offs 1632,1720,2632,2648
PARAM_VALUE 1 type 6
BUF_SIZE 0 sbi 128
BUF_SIZE 0 sbi 128
DATA_SOURCE 0 sbi $0
TASK_NOT_RUNNING

fs/f2fs/data.c __f2fs_write_data_pages() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->sb 4096-ptr_max
PARAM_VALUE 0 sbi->sb->s_bdi 4096-ptr_max
PARAM_VALUE 1 type 2
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 &mapping->invalidate_lock

fs/f2fs/node.c __f2fs_build_free_nids() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_global_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->io_order_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->nm_info->nid_cnt 4096-ptr_max
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_change.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->node_write.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->quota_sem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb->s_umount.first_waiter->type 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->sb_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 *sbi->next_victim_seg 0-4294967295
PARAM_VALUE 1 type 0
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi (-1),1-s32max
BUF_SIZE 0 sbi->nm_info (-1),992
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 0 &sbi->gc_lock.internal_rwsem

fs/f2fs/node.c f2fs_alloc_nid_failed() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->cp_rwsem.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->gc_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->nm_info 4096-ptr_max
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 sbi->nm_info->nat_tree_lock.internal_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 sbi->nm_info->nid_list_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 *sbi->page_eio_cnt s32min-s32max
PARAM_VALUE 1 type 0
BUF_SIZE 0 sbi 1-s32max
BUF_SIZE 0 sbi 1-s32max
DATA_SOURCE 0 sbi $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
LOCK2 &nm_i->nid_list_lock
TYPE_LOCK (struct f2fs_nm_info)->nid_list_lock

fs/f2fs/compress.c f2fs_cache_compressed_page() -> f2fs_available_free_memory()

Type Parameter Key Value
PARAM_VALUE 0 sbi 4096-ptr_max
PARAM_VALUE 1 type 7
DATA_SOURCE 0 sbi $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 sbi unit_byte
HALF_LOCKED2 &pool->lock