Defined in 2 files as a function:

Referenced in 25 files:

Smatch caller information:

fs/xfs/scrub/newbt.c xfs_sum_freecounter_raw() -> percpu_counter_sum()

Type Parameter Key Value

kernel/fork.c check_mm() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &context->db_page_mutex
HALF_LOCKED2 &dev->domain_lock
HALF_LOCKED2 &ictx->ioas_creation_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &xdna->client_lock
HALF_LOCKED2 &xdna->dev_lock
HALF_LOCKED2 rcu_read

fs/btrfs/dev-replace.c btrfs_rm_dev_replace_blocked() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
LOCK2 &dev_replace->lock_finishing_cancel_unmount
HALF_LOCKED2 &fs_devices->device_list_mutex
HALF_LOCKED2 &fs_info->chunk_mutex
TYPE_LOCK (struct btrfs_dev_replace)->lock_finishing_cancel_unmount

fs/btrfs/dev-replace.c btrfs_rm_dev_replace_blocked() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
PARAM_VALUE 0 fbc->lock.owner (-1)
PARAM_VALUE 0 fbc->lock.owner_cpu u32max
TASK_NOT_RUNNING
LOCK2 &dev_replace->lock_finishing_cancel_unmount
HALF_LOCKED2 &fs_devices->device_list_mutex
HALF_LOCKED2 &fs_info->chunk_mutex
TYPE_LOCK (struct btrfs_dev_replace)->lock_finishing_cancel_unmount

fs/btrfs/dev-replace.c btrfs_rm_dev_replace_blocked() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
PARAM_VALUE 0 fbc->lock.owner (-1)
PARAM_VALUE 0 fbc->lock.owner_cpu u32max
TASK_NOT_RUNNING
LOCK2 &dev_replace->lock_finishing_cancel_unmount
HALF_LOCKED2 &fs_devices->device_list_mutex
HALF_LOCKED2 &fs_info->chunk_mutex
TYPE_LOCK (struct btrfs_dev_replace)->lock_finishing_cancel_unmount

lib/percpu_counter.c __percpu_counter_compare() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
DATA_SOURCE 0 fbc $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &sbinfo->stat_lock
HALF_LOCKED2 flags

fs/btrfs/volumes.c btrfs_read_rr() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev_replace->rwsem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sctx->wr_lock

fs/quota/dquot.c do_proc_dqstats() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

fs/xfs/xfs_buf_mem.c xmbuf_free() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max

fs/ceph/metric.c ceph_mdsc_send_metrics() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
HALF_LOCKED2 &pool->lock

fs/ceph/metric.c ceph_mdsc_send_metrics() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
HALF_LOCKED2 &pool->lock

fs/ceph/metric.c ceph_mdsc_send_metrics() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
HALF_LOCKED2 &pool->lock

fs/ceph/metric.c ceph_mdsc_send_metrics() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
HALF_LOCKED2 &pool->lock

fs/ceph/metric.c ceph_mdsc_send_metrics() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
HALF_LOCKED2 &pool->lock

fs/ceph/metric.c ceph_mdsc_send_metrics() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
HALF_LOCKED2 &pool->lock

fs/ext4/sysfs.c ext4_attr_show() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

fs/ext4/sysfs.c ext4_attr_show() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

fs/ext4/inode.c ext4_print_free_blocks() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/ext4/inode.c ext4_print_free_blocks() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

mm/shmem.c shmem_statfs() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &s->s_umount

ipc/msg.c msgctl_info() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max

ipc/msg.c msgctl_info() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max

fs/xfs/xfs_fsops.c xfs_sum_freecounter_raw() -> percpu_counter_sum()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mp->m_sb_lock
TYPE_LOCK (struct xfs_mount)->m_sb_lock

io_uring/cancel.c tctx_inflight() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &sqd->lock

fs/xfs/scrub/quota_repair.c xrep_quota_item() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
LOCK2 &dq->q_qlock
TYPE_LOCK (struct xfs_dquot)->q_qlock

fs/xfs/scrub/quota.c xchk_quota_item() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
LOCK2 &dq->q_qlock
TYPE_LOCK (struct xfs_dquot)->q_qlock

fs/xfs/scrub/fscounters.c xchk_fscount_aggregate_agcounts() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max

fs/xfs/scrub/fscounters.c xchk_fscount_count_frextents() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max

fs/xfs/scrub/fscounters.c xchk_fscount_within_range() -> percpu_counter_sum()

Type Parameter Key Value
DATA_SOURCE 0 fbc $2

fs/xfs/scrub/fscounters.c xchk_fscounters() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max

fs/xfs/scrub/fscounters.c xchk_fscounters() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max

fs/xfs/scrub/fscounters.c xfs_sum_freecounter_raw() -> percpu_counter_sum()

Type Parameter Key Value

lib/flex_proportions.c fprop_new_period() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

lib/flex_proportions.c fprop_reflect_period_percpu() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &pl->lock
LOCK2 flags
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct fprop_local_percpu)->lock

fs/btrfs/disk-io.c close_ctree() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/disk-io.c close_ctree() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
PARAM_VALUE 0 fbc->lock.owner (-1)
PARAM_VALUE 0 fbc->lock.owner_cpu u32max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

fs/btrfs/disk-io.c close_ctree() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/disk-io.c close_ctree() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
PARAM_VALUE 0 fbc->lock.owner (-1)
PARAM_VALUE 0 fbc->lock.owner_cpu u32max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

fs/ceph/debugfs.c metrics_caps_show() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &s->lock
TYPE_LOCK (struct seq_file)->lock

fs/ceph/debugfs.c metrics_caps_show() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &s->lock
TYPE_LOCK (struct seq_file)->lock

fs/ceph/debugfs.c metrics_caps_show() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &s->lock
TYPE_LOCK (struct seq_file)->lock

fs/ceph/debugfs.c metrics_caps_show() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &s->lock
TYPE_LOCK (struct seq_file)->lock

fs/ceph/debugfs.c metrics_file_show() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &s->lock
TYPE_LOCK (struct seq_file)->lock

fs/ceph/debugfs.c metrics_file_show() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &s->lock
TYPE_LOCK (struct seq_file)->lock

drivers/md/dm-crypt.c crypt_dtr() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max

fs/xfs/xfs_buf.c xfs_buftarg_wait() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/xfs/xfs_buf.c xfs_buftarg_wait() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
PARAM_VALUE 0 fbc->lock.owner (-1)
PARAM_VALUE 0 fbc->lock.owner_cpu u32max
RX_PATH
TASK_NOT_RUNNING

fs/xfs/xfs_buf.c xfs_destroy_buftarg() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/xfs/xfs_super.c xfs_destroy_percpu_counters() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &s->s_umount
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 global &cifs_mount_mutex

fs/xfs/xfs_super.c xfs_destroy_percpu_counters() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
PARAM_VALUE 0 fbc->lock.owner (-1)
PARAM_VALUE 0 fbc->lock.owner_cpu u32max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &s->s_umount
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 global &cifs_mount_mutex

fs/xfs/xfs_super.c xfs_statfs_inodes() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &s->s_umount

fs/xfs/xfs_super.c xfs_statfs_inodes() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &s->s_umount

fs/xfs/xfs_mount.c xfs_unmount_check() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
HALF_LOCKED2 &s->s_umount
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 global &cifs_mount_mutex

fs/xfs/xfs_mount.c xfs_unmount_check() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
HALF_LOCKED2 &s->s_umount
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 global &cifs_mount_mutex

kernel/bpf/hashtab.c htab_map_mem_usage() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/ext4/super.c ext4_put_super() -> percpu_counter_sum()

Type Parameter Key Value
PARAM_VALUE 0 fbc 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &s->s_umount
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 global &cifs_mount_mutex