Defined in 2 files as a function:

Referenced in 6 files:

Smatch caller information:

fs/proc/task_mmu.c mmap_lock_is_contended() -> rwsem_is_contended()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 &priv->lock_ctx.mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct seq_file)->lock

drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c amdgpu_reset_pending() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &domain->sem

fs/btrfs/block-group.c load_extent_tree_free() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
LOCK2 &caching_ctl->mutex
LOCK2 &fs_info->commit_root_sem
HALF_LOCKED2 &fs_info->commit_root_sem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct btrfs_caching_control)->mutex
TYPE_LOCK (struct btrfs_fs_info)->commit_root_sem

kernel/locking/rwsem.c __down_read_common() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
BUF_SIZE 0 sem->dep_map.name (-1),20
BUF_SIZE 0 sem->magic (-1),160
DATA_SOURCE 0 sem $0
STR_LEN 0 sem->dep_map.name (-1),19
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __down_read_common() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
BUF_SIZE 0 sem->dep_map.name (-1),20
BUF_SIZE 0 sem->magic (-1),160
DATA_SOURCE 0 sem $0
STR_LEN 0 sem->dep_map.name (-1),19
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __down_read_trylock() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
BUF_SIZE 0 sem (-1),160
BUF_SIZE 0 sem (-1),160
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 sem != $0->magic
PARAM_COMPARE 0 sem != $0->magic
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 l1

kernel/locking/rwsem.c __down_read_trylock() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
BUF_SIZE 0 sem (-1),160
BUF_SIZE 0 sem (-1),160
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 sem != $0->magic
PARAM_COMPARE 0 sem != $0->magic
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 l1

kernel/locking/rwsem.c __down_write_trylock() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 sem != $0->magic
PARAM_COMPARE 0 sem != $0->magic
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __down_write_trylock() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 sem != $0->magic
PARAM_COMPARE 0 sem != $0->magic
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __downgrade_write() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
DATA_SOURCE 0 sem $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 sem->osq.tail.counter 0-s32max
HALF_LOCKED2 &card->controls_rwsem
HALF_LOCKED2 &con->sock_lock
HALF_LOCKED2 &ctx->rwsem
HALF_LOCKED2 &d->sem
HALF_LOCKED2 &device->client_data_rwsem
HALF_LOCKED2 &dvnode->validate_lock
HALF_LOCKED2 &group->mode_sem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &nilfs->ns_segctor_sem
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &osdc->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rbd_dev->lock_rwsem
HALF_LOCKED2 &rdev->exclusive_lock
HALF_LOCKED2 &session->s_mutex
HALF_LOCKED2 &svms->lock
HALF_LOCKED2 &vm->lock
HALF_LOCKED2 &vnode->validate_lock
HALF_LOCKED2 b
HALF_LOCKED2 global &clients_rwsem
HALF_LOCKED2 global &devices_rwsem
HALF_LOCKED2 global &htable_rw_lock
HALF_LOCKED2 global &key_types_sem

kernel/locking/rwsem.c __downgrade_write() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
DATA_SOURCE 0 sem $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 sem->osq.tail.counter 0-s32max
HALF_LOCKED2 &card->controls_rwsem
HALF_LOCKED2 &con->sock_lock
HALF_LOCKED2 &ctx->rwsem
HALF_LOCKED2 &d->sem
HALF_LOCKED2 &device->client_data_rwsem
HALF_LOCKED2 &dvnode->validate_lock
HALF_LOCKED2 &group->mode_sem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &nilfs->ns_segctor_sem
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &osdc->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rbd_dev->lock_rwsem
HALF_LOCKED2 &rdev->exclusive_lock
HALF_LOCKED2 &session->s_mutex
HALF_LOCKED2 &svms->lock
HALF_LOCKED2 &vm->lock
HALF_LOCKED2 &vnode->validate_lock
HALF_LOCKED2 b
HALF_LOCKED2 global &clients_rwsem
HALF_LOCKED2 global &devices_rwsem
HALF_LOCKED2 global &htable_rw_lock
HALF_LOCKED2 global &key_types_sem

kernel/locking/rwsem.c __up_read() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 sem != $0->magic
PARAM_COMPARE 0 sem != $0->magic
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __up_read() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 sem != $0->magic
PARAM_COMPARE 0 sem != $0->magic
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __up_read() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __up_read() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __up_read() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __up_read() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c __up_write() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 sem != $0->magic
PARAM_COMPARE 0 sem != $0->magic

kernel/locking/rwsem.c __up_write() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0
PARAM_COMPARE 0 sem != $0->magic
PARAM_COMPARE 0 sem != $0->magic

kernel/locking/rwsem.c __up_write() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0

kernel/locking/rwsem.c __up_write() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPPED_DATA 0 sem 1
DATA_SOURCE 0 sem $0

kernel/locking/rwsem.c up_read_non_owner() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
DATA_SOURCE 0 sem $0
RX_PATH
TASK_NOT_RUNNING

kernel/locking/rwsem.c up_read_non_owner() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
DATA_SOURCE 0 sem $0
RX_PATH
TASK_NOT_RUNNING

kernel/bpf/task_iter.c mmap_lock_is_contended() -> rwsem_is_contended()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

fs/f2fs/node.c f2fs_rwsem_is_contended() -> rwsem_is_contended()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &nm_i->nat_tree_lock.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &src_inode->i_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem