Documented in 1 files:
Defined in 1 files as a function:
Referenced in 7 files:
- mm/compaction.c, line 1071
- mm/memory-failure.c, line 1344
- mm/memory_hotplug.c, line 1810
- mm/migrate.c
- mm/page_alloc.c, line 2028
- mm/page_isolation.c
- mm/vmscan.c, line 1603
Smatch caller information:
mm/memory_hotplug.c scan_movable_pages() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | page | unit_page |
| LOCK2 | &dev->mutex | ||
| LOCK2 | global &pcp_batch_high_lock | ||
| HALF_LOCKED2 | &device->physical_node_lock | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | global &device_hotplug_lock | ||
| TYPE_LOCK | (struct device)->mutex |
mm/page_isolation.c isolate_single_pageblock() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | r __first_valid_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dev->mutex | ||
| HALF_LOCKED2 | global &pcp_batch_high_lock |
mm/page_isolation.c page_is_unmovable() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_refcount.counter | s32min-(-1),1-s32max |
| PARAM_VALUE | 0 | page->flags.f | 0-18446744073709551614 |
| DATA_SOURCE | 0 | page | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | page | unit_page |
| HALF_LOCKED2 | &zone->lock | ||
| HALF_LOCKED2 | &zone->lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq | ||
| TYPE_LOCK | (struct zone)->lock |
mm/compaction.c isolate_migratepages_block() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | page | unit_page |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | rcu_read |
mm/page_alloc.c prep_move_freepages_block() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | page | unit_page |
| LOCK2 | &zone->lock | ||
| LOCK2 | flags | ||
| TYPE_LOCK | (struct zone)->lock |
mm/vmscan.c reclaim_clean_pages_from_list() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &cma->alloc_mutex | ||
| HALF_LOCKED2 | &vm->hotplug_mutex |
mm/memory-failure.c HWPoisonHandlable() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &mf_mutex | ||
| LOCK2 | global &pcp_batch_high_lock | ||
| HALF_LOCKED2 | &attr->mutex |
mm/migrate.c isolate_folio_to_list() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dev->mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | global &mf_mutex | ||
| HALF_LOCKED2 | global &pcp_batch_high_lock |
mm/migrate.c isolate_movable_ops_page() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_refcount.counter | 0-s32max |
| DATA_SOURCE | 0 | page | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | page | unit_page |
mm/migrate.c isolate_movable_ops_page() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_refcount.counter | 0-s32max |
| DATA_SOURCE | 0 | page | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | page | unit_page |
mm/migrate.c migrate_folio_done() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c migrate_folio_move() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c migrate_folio_unmap() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c migrate_movable_ops_page() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c migrate_pages_batch() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c page_movable_ops() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | page | unit_page |
mm/migrate.c putback_movable_ops_page() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dev->mutex | ||
| HALF_LOCKED2 | global &mf_mutex | ||
| HALF_LOCKED2 | global &pcp_batch_high_lock |
mm/migrate.c putback_movable_pages() -> page_has_movable_ops()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dev->mutex | ||
| HALF_LOCKED2 | global &mf_mutex | ||
| HALF_LOCKED2 | global &pcp_batch_high_lock |