Documented in 1 files:
Defined in 2 files as a function:
- include/linux/memcontrol.h, line 700 (as a function)
- include/linux/memcontrol.h, line 1182 (as a function)
Referenced in 9 files:
- include/linux/memcontrol.h
- mm/damon/core.c, line 2849
- mm/folio.c
- mm/memcontrol-v1.c, line 2084
- mm/memcontrol.c
- mm/migrate.c
- mm/vmscan.c
- mm/workingset.c
- mm/zswap.c, line 1196
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 |