Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

mm/memcontrol.c __mem_cgroup_try_charge_swap() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/memcontrol.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock
HALF_LOCKED2 &lruvec->lru_lock
HALF_LOCKED2 *flags
HALF_LOCKED2 flags
HALF_LOCKED2 irq

mm/memcontrol.c folio_memcg_check() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/memcontrol.c get_mem_cgroup_from_objcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 1-u64max
CAPPED_DATA 0 objcg 1
DATA_SOURCE 0 objcg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/memcontrol.c get_migration_objcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 0,4096-ptr_max
DATA_SOURCE 0 objcg r get_obj_cgroup_from_folio
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/memcontrol.c mem_cgroup_from_obj_slab() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 1-u64max
DATA_SOURCE 0 objcg r slab_obj_ext_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock

mm/memcontrol.c mem_cgroup_migrate() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 4096-ptr_max
PARAM_VALUE 0 objcg->is_root 0
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ai->migrate_lock
HALF_LOCKED2 &ctx->completion_lock
HALF_LOCKED2 &ctx->ring_lock
HALF_LOCKED2 flags

mm/memcontrol.c mem_cgroup_replace_folio() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 0,4096-ptr_max
DATA_SOURCE 0 objcg r get_migration_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 irq

mm/memcontrol.c mod_objcg_mlstate() -> obj_cgroup_memcg()

Type Parameter Key Value
DATA_SOURCE 0 objcg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/memcontrol.c obj_cgroup_charge_zswap() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 4096-ptr_max
PARAM_VALUE 0 objcg->is_root 0
PARAM_VALUE 0 objcg->memcg->css.flags 1-u32max
PARAM_VALUE 0 objcg->memcg->css.refcnt.data 0,4096-ptr_max
CAPPED_DATA 0 objcg 1
DATA_SOURCE 0 objcg $0
LOCK2 rcu_read

mm/memcontrol.c obj_cgroup_uncharge_zswap() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 4096-ptr_max
PARAM_VALUE 0 objcg->is_root 0
PARAM_VALUE 0 objcg->refcnt.percpu_count_ptr 1-u64max
DATA_SOURCE 0 objcg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/memcontrol.c obj_stock_flush_required() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &percpu_charge_mutex
LOCK2 rcu_read
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &cgroup_mutex

mm/memcontrol.c uncharge_batch() -> obj_cgroup_memcg()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/huge_memory.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 irq

mm/page-writeback.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &(&mapping->i_pages)->xa_lock
LOCK2 flags
LOCK2 rcu_read
HALF_LOCKED2 &folio->private->lock

mm/page_io.c count_objcg_events() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 4096-ptr_max
PARAM_VALUE 0 objcg->refcnt.percpu_count_ptr 1-u64max
DATA_SOURCE 0 objcg $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/page_io.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/percpu.c pcpu_memcg_free_hook() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 1-u64max
PARAM_VALUE 0 objcg->memcg->css.refcnt.data 0,4096-ptr_max
PARAM_VALUE 0 objcg->refcnt.percpu_count_ptr 1-u64max
CAPPED_DATA 0 objcg 1
PREEMPT_ADD
LOCK2 flags
LOCK2 global &pcpu_lock
LOCK2 rcu_read

mm/percpu.c pcpu_memcg_post_alloc_hook() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 4096-ptr_max
PARAM_VALUE 0 objcg->is_root 0
PARAM_VALUE 0 objcg->refcnt.percpu_count_ptr 1-u64max
DATA_SOURCE 0 objcg $0
LOCK2 rcu_read

kernel/bpf/syscall.c get_mem_cgroup_from_objcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 1-u64max
DATA_SOURCE 0 objcg $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 flags

mm/zswap.c count_objcg_events() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 1-u64max
CAPPED_DATA 0 objcg 1
DATA_SOURCE 0 objcg $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/zswap.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &acomp_ctx->mutex

mm/zswap.c get_mem_cgroup_from_objcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 4096-ptr_max
PARAM_VALUE 0 objcg->refcnt.percpu_count_ptr 1-u64max
DATA_SOURCE 0 objcg $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/zswap.c mem_cgroup_from_entry() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/shmem.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/folio.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

mm/compaction.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &lruvec->lru_lock
HALF_LOCKED2 *flags
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

mm/damon/paddr.c folio_memcg_check() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
LOCK2 rcu_read

mm/workingset.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 irq

mm/list_lru.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/vmscan.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

kernel/bpf/memalloc.c get_mem_cgroup_from_objcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 1-u64max
DATA_SOURCE 0 objcg $0
LOCK2 rcu_read

mm/memory.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
LOCK2 vmf->ptl
HALF_LOCKED2 &mm->mmap_lock

mm/damon/ops-common.c folio_memcg_check() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ctx->walk_control_lock
HALF_LOCKED2 ptl

mm/migrate.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &((&xas)->xa)->xa_lock

mm/mlock.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

mm/khugepaged.c folio_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &mm->mmap_lock

mm/memcontrol-v1.c __memcg1_swapout() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
DATA_SOURCE 0 objcg r folio_objcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock
HALF_LOCKED2 &mapping->host->i_lock

mm/page_owner.c print_page_owner_memcg() -> obj_cgroup_memcg()

Type Parameter Key Value
PARAM_VALUE 0 objcg 8-u64max
LOCK2 rcu_read