Documented in 1 files:

Defined in 2 files as a function:

Referenced in 9 files:

Smatch caller information:

mm/memcontrol.c account_slab_nmi_safe() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg $0
DATA_SOURCE 1 pgdat $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/memcontrol.c folio_lruvec() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r folio_memcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 irq

mm/memcontrol.c lruvec_stat_mod_folio() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 1-u64max
DATA_SOURCE 0 memcg r folio_memcg
DATA_SOURCE 1 pgdat r folio_pgdat
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock
HALF_LOCKED2 &((&xas)->xa)->xa_lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &hugetlb_lock
HALF_LOCKED2 global &init_mm.page_table_lock
HALF_LOCKED2 irq

mm/memcontrol.c memory_numa_stat_show() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r mem_cgroup_from_seq
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

mm/memcontrol.c mod_lruvec_kmem_state() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 1-u64max
DATA_SOURCE 0 memcg r mem_cgroup_from_virt
DATA_SOURCE 1 pgdat r page_pgdat
RX_PATH
TASK_NOT_RUNNING
LOCK2 &(&mapping->i_pages)->xa_lock
LOCK2 rcu_read
HALF_LOCKED2 &mapping->host->i_lock

mm/memcontrol.c reparent_locks() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 4096-ptr_max
CAPPED_DATA 0 memcg 1
DATA_SOURCE 0 memcg $0
PREEMPT_ADD <- disables preempt
LOCK2 &pool->lock
LOCK2 global &cgroup_mutex
LOCK2 global &objcg_lock
LOCK2 irq

mm/memcontrol.c reparent_locks() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg $1
PREEMPT_ADD <- disables preempt
LOCK2 &pool->lock
LOCK2 global &cgroup_mutex
LOCK2 global &objcg_lock
LOCK2 irq

mm/memcontrol.c reparent_memcg_lruvec_state_local() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 4096-ptr_max
CAPPED_DATA 0 memcg 1
DATA_SOURCE 0 memcg $0
LOCK2 &pool->lock
LOCK2 global &cgroup_mutex

mm/memcontrol.c reparent_memcg_lruvec_state_local() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 4096-ptr_max
DATA_SOURCE 0 memcg $1
LOCK2 &pool->lock
LOCK2 global &cgroup_mutex

mm/memcontrol.c reparent_unlocks() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 0,4096-ptr_max
DATA_SOURCE 0 memcg $1
LOCK2 &pool->lock
LOCK2 global &cgroup_mutex
LOCK2 global &objcg_lock
LOCK2 irq

mm/memcontrol.c reparent_unlocks() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 4096-ptr_max
CAPPED_DATA 0 memcg 1
DATA_SOURCE 0 memcg $0
LOCK2 &pool->lock
LOCK2 global &cgroup_mutex
LOCK2 global &objcg_lock
LOCK2 irq

mm/zswap.c folio_lruvec() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r folio_memcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/zswap.c zswap_shrinker_count() -> mem_cgroup_lruvec()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock

mm/folio.c folio_lruvec() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r folio_memcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/folio.c lru_reparent_memcg() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 4096-ptr_max
CAPPED_DATA 0 memcg 1
DATA_SOURCE 0 memcg $0
LOCK2 &pool->lock
LOCK2 global &cgroup_mutex
LOCK2 global &objcg_lock
LOCK2 irq

mm/folio.c lru_reparent_memcg() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg $1
LOCK2 &pool->lock
LOCK2 global &cgroup_mutex
LOCK2 global &objcg_lock
LOCK2 irq

mm/compaction.c folio_lruvec() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r folio_memcg
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

mm/workingset.c count_shadow_nodes() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock

mm/workingset.c folio_lruvec() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r folio_memcg
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/workingset.c lru_gen_eviction() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r folio_memcg
DATA_SOURCE 1 pgdat r folio_pgdat
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock
HALF_LOCKED2 &mapping->host->i_lock

mm/workingset.c lru_gen_test_recent() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 0-1025,1027-1029,1031-u64max
DATA_SOURCE 0 memcg r mem_cgroup_from_private_id
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/workingset.c parent_lruvec() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 1-u64max
DATA_SOURCE 0 memcg r parent_mem_cgroup
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

mm/workingset.c workingset_eviction() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg $1
DATA_SOURCE 1 pgdat r folio_pgdat
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock
HALF_LOCKED2 &mapping->host->i_lock

mm/workingset.c workingset_refault() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 0,4096-ptr_max
DATA_SOURCE 0 memcg r get_mem_cgroup_from_folio
RX_PATH
TASK_NOT_RUNNING

mm/workingset.c workingset_test_recent() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

mm/vmscan.c clear_pgdat_congested() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 0
PARAM_VALUE 1 pgdat 4096-ptr_max
BUF_SIZE 1 pgdat 128
BUF_SIZE 1 pgdat 128
DATA_SOURCE 1 pgdat $0

mm/vmscan.c do_try_to_free_pages() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &device_hotplug_lock
HALF_LOCKED2 global &system_transition_mutex

mm/vmscan.c kswapd_age_node() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 0
PARAM_VALUE 1 pgdat 4096-ptr_max
BUF_SIZE 1 pgdat 128
BUF_SIZE 1 pgdat 128
DATA_SOURCE 1 pgdat $0

mm/vmscan.c kswapd_age_node() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 1 pgdat 4096-ptr_max
BUF_SIZE 1 pgdat 128
BUF_SIZE 1 pgdat 128
DATA_SOURCE 1 pgdat $0

mm/vmscan.c lru_gen_age_node() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 1 pgdat 4096-ptr_max
BUF_SIZE 1 pgdat 128
BUF_SIZE 1 pgdat 128
DATA_SOURCE 1 pgdat $0

mm/vmscan.c lru_gen_look_around() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 0,4096-ptr_max
DATA_SOURCE 0 memcg r get_mem_cgroup_from_folio
DATA_SOURCE 1 pgdat r folio_pgdat
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &anon_vma->root->rwsem
HALF_LOCKED2 &folio->private->lock

mm/vmscan.c lruvec_live_lock_irq() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r parent_mem_cgroup
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

mm/vmscan.c mem_cgroup_shrink_node() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 1-u64max
PARAM_VALUE 1 pgdat 4096-ptr_max
BUF_SIZE 1 pgdat (-1),128
BUF_SIZE 1 pgdat (-1),128
CAPPED_DATA 0 memcg 1
DATA_SOURCE 0 memcg $0
DATA_SOURCE 1 pgdat $3
RX_PATH
TASK_NOT_RUNNING

mm/vmscan.c prepare_scan_control() -> mem_cgroup_lruvec()

Type Parameter Key Value
BUF_SIZE 1 pgdat (-1),128
BUF_SIZE 1 pgdat (-1),128
DATA_SOURCE 1 pgdat $0
RX_PATH
TASK_NOT_RUNNING

mm/vmscan.c shrink_node() -> mem_cgroup_lruvec()

Type Parameter Key Value
BUF_SIZE 1 pgdat (-1),128
BUF_SIZE 1 pgdat (-1),128
DATA_SOURCE 1 pgdat $0
RX_PATH
TASK_NOT_RUNNING

mm/vmscan.c shrink_node_memcgs() -> mem_cgroup_lruvec()

Type Parameter Key Value
BUF_SIZE 1 pgdat (-1),128
BUF_SIZE 1 pgdat (-1),128
DATA_SOURCE 1 pgdat $0
RX_PATH
TASK_NOT_RUNNING

mm/vmscan.c snapshot_refaults() -> mem_cgroup_lruvec()

Type Parameter Key Value
BUF_SIZE 1 pgdat (-1),128
BUF_SIZE 1 pgdat (-1),128
DATA_SOURCE 0 memcg $0
DATA_SOURCE 1 pgdat $1
RX_PATH
TASK_NOT_RUNNING

mm/migrate.c __folio_migrate_mapping() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r folio_memcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &((&xas)->xa)->xa_lock

mm/migrate.c __folio_migrate_mapping() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg r folio_memcg
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &((&xas)->xa)->xa_lock

mm/migrate.c migrate_misplaced_folio() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 0,4096-ptr_max
DATA_SOURCE 0 memcg r get_mem_cgroup_from_folio
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

mm/damon/core.c damos_get_node_memcg_used_bp() -> mem_cgroup_lruvec()

Type Parameter Key Value
PARAM_VALUE 0 memcg 4096-ptr_max
CAPPED_DATA 0 memcg 1
DATA_SOURCE 0 memcg r mem_cgroup_get_from_id

mm/memcontrol-v1.c mem_cgroup_node_nr_lru_pages() -> mem_cgroup_lruvec()

Type Parameter Key Value
DATA_SOURCE 0 memcg $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock