Defined in 3 files as a prototype:
- arch/s390/include/asm/pgtable.h, line 1698 (as a prototype)
- arch/sparc/include/asm/pgtable_64.h, line 987 (as a prototype)
- include/linux/pgtable.h, line 1269 (as a prototype)
Defined in 4 files as a function:
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 1402 (as a function)
- arch/s390/mm/pgtable.c, line 317 (as a function)
- arch/sparc/mm/tlb.c, line 278 (as a function)
- mm/pgtable-generic.c, line 168 (as a function)
Referenced in 5 files:
- mm/debug_vm_pgtable.c, line 243
- mm/huge_memory.c
- mm/khugepaged.c, line 1526
- mm/memory.c, line 5600
- mm/migrate_device.c, line 888
Smatch caller information:
mm/huge_memory.c __do_huge_pmd_anonymous_page() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 1 | pmdp | 4096-ptr_max |
| PARAM_VALUE | 2 | pgtable | 4096-ptr_max |
| DATA_SOURCE | 2 | pgtable | r pte_alloc_one |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/huge_memory.c copy_huge_non_present_pmd() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->context.ldt | 0 |
| PARAM_VALUE | 0 | mm->context.ldt_usr_sem.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->context.lock.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->context.tlb_gen.counter | 0 |
| PARAM_VALUE | 0 | mm->context.untag_mask | u64max |
| PARAM_VALUE | 0 | mm->def_flags | 0,1073741824 |
| PARAM_VALUE | 0 | mm->exe_file | 0,4096-ptr_max |
| PARAM_VALUE | 0 | mm->hugetlb_usage.counter | 0 |
| PARAM_VALUE | 0 | mm->ioctx_table | 0 |
| PARAM_VALUE | 0 | mm->iommu_mm | 0 |
| PARAM_VALUE | 0 | mm->locked_vm | 0 |
| PARAM_VALUE | 0 | mm->lru_gen.bitmap | 0 |
| PARAM_VALUE | 0 | mm->lru_gen.memcg | 0 |
| PARAM_VALUE | 0 | mm->map_count | 0-s32max |
| PARAM_VALUE | 0 | mm->mm_cid.lock.magic | 3735899821 |
| PARAM_VALUE | 0 | mm->mm_cid.lock.owner | (-1) |
| PARAM_VALUE | 0 | mm->mm_cid.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | mm->mm_cid.max_cids | 0 |
| PARAM_VALUE | 0 | mm->mm_cid.mode | 0 |
| PARAM_VALUE | 0 | mm->mm_cid.mutex.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mm_cid.pcpu | 1-u64max |
| PARAM_VALUE | 0 | mm->mm_cid.pcpu_thrs | 0 |
| PARAM_VALUE | 0 | mm->mm_cid.update_deferred | 0 |
| PARAM_VALUE | 0 | mm->mm_cid.users | 0 |
| PARAM_VALUE | 0 | mm->mm_count.counter | 1 |
| PARAM_VALUE | 0 | mm->mm_id | 0-s32max |
| PARAM_VALUE | 0 | mm->mm_mt.ma_flags | 771 |
| PARAM_VALUE | 0 | mm->mm_mt.ma_root | 0 |
| PARAM_VALUE | 0 | mm->mm_users.counter | 1 |
| PARAM_VALUE | 0 | mm->mmap_lock.count.counter | 0 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter | 0 |
| PARAM_VALUE | 0 | mm->mmap_lock.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mmap_lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | mm->mmap_lock.owner.counter | 0 |
| PARAM_VALUE | 0 | mm->notifier_subscriptions | 0 |
| PARAM_VALUE | 0 | mm->owner | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->pgd | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 0 | mm->pinned_vm.counter | 0 |
| PARAM_VALUE | 0 | mm->sc_stat.cpu | (-1) |
| PARAM_VALUE | 0 | mm->sc_stat.footprint | 0 |
| PARAM_VALUE | 0 | mm->sc_stat.lock.magic | 3735899821 |
| PARAM_VALUE | 0 | mm->sc_stat.lock.owner | (-1) |
| PARAM_VALUE | 0 | mm->sc_stat.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | mm->sc_stat.nr_running_avg | 0 |
| PARAM_VALUE | 0 | mm->sc_stat.pcpu_sched | 1-u64max |
| PARAM_VALUE | 0 | mm->uprobes_state.xol_area | 0 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task | 0 |
| PARAM_VALUE | 1 | pmdp | 4096-u64max |
| PARAM_VALUE | 2 | pgtable | 4096-ptr_max |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| CAPPED_DATA | 0 | mm->mm_id | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | pmdp | $2 |
| DATA_SOURCE | 2 | pgtable | $8 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/huge_memory.c copy_huge_pmd() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->context.ldt | 0 |
| PARAM_VALUE | 0 | mm->context.ldt_usr_sem.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->context.lock.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->context.tlb_gen.counter | 0 |
| PARAM_VALUE | 0 | mm->context.untag_mask | u64max |
| PARAM_VALUE | 0 | mm->def_flags | 0,1073741824 |
| PARAM_VALUE | 0 | mm->exe_file | 0,4096-ptr_max |
| PARAM_VALUE | 0 | mm->hugetlb_usage.counter | 0 |
| PARAM_VALUE | 0 | mm->ioctx_table | 0 |
| PARAM_VALUE | 0 | mm->iommu_mm | 0 |
| PARAM_VALUE | 0 | mm->locked_vm | 0 |
| PARAM_VALUE | 0 | mm->lru_gen.bitmap | 0 |
| PARAM_VALUE | 0 | mm->lru_gen.memcg | 0 |
| PARAM_VALUE | 0 | mm->map_count | 0-s32max |
| PARAM_VALUE | 0 | mm->mm_cid.lock.magic | 3735899821 |
| PARAM_VALUE | 0 | mm->mm_cid.lock.owner | (-1) |
| PARAM_VALUE | 0 | mm->mm_cid.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | mm->mm_cid.max_cids | 0 |
| PARAM_VALUE | 0 | mm->mm_cid.mode | 0 |
| PARAM_VALUE | 0 | mm->mm_cid.mutex.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mm_cid.pcpu | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mm_cid.pcpu_thrs | 0 |
| PARAM_VALUE | 0 | mm->mm_cid.update_deferred | 0 |
| PARAM_VALUE | 0 | mm->mm_cid.users | 0 |
| PARAM_VALUE | 0 | mm->mm_count.counter | 1 |
| PARAM_VALUE | 0 | mm->mm_id | 0-s32max |
| PARAM_VALUE | 0 | mm->mm_mt.ma_flags | 771 |
| PARAM_VALUE | 0 | mm->mm_mt.ma_root | 0 |
| PARAM_VALUE | 0 | mm->mm_users.counter | 1 |
| PARAM_VALUE | 0 | mm->mmap_lock.count.counter | 0 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter | 0 |
| PARAM_VALUE | 0 | mm->mmap_lock.magic | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mmap_lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | mm->mmap_lock.owner.counter | 0 |
| PARAM_VALUE | 0 | mm->notifier_subscriptions | 0 |
| PARAM_VALUE | 0 | mm->owner | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->pgd | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 0 | mm->pinned_vm.counter | 0 |
| PARAM_VALUE | 0 | mm->sc_stat.cpu | (-1) |
| PARAM_VALUE | 0 | mm->sc_stat.footprint | 0 |
| PARAM_VALUE | 0 | mm->sc_stat.lock.magic | 3735899821 |
| PARAM_VALUE | 0 | mm->sc_stat.lock.owner | (-1) |
| PARAM_VALUE | 0 | mm->sc_stat.lock.owner_cpu | u32max |
| PARAM_VALUE | 0 | mm->sc_stat.nr_running_avg | 0 |
| PARAM_VALUE | 0 | mm->sc_stat.pcpu_sched | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->uprobes_state.xol_area | 0 |
| PARAM_VALUE | 0 | mm->vma_writer_wait.task | 0 |
| PARAM_VALUE | 1 | pmdp | 4096-u64max |
| PARAM_VALUE | 2 | pgtable | 4096-ptr_max |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| CAPPED_DATA | 0 | mm->mm_id | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | pmdp | $2 |
| DATA_SOURCE | 2 | pgtable | r pte_alloc_one |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/huge_memory.c insert_pmd() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | pmdp | 4096-ptr_max |
| BUF_SIZE | 2 | pgtable | 0 |
| DATA_SOURCE | 1 | pmdp | $2 |
| BIT_INFO | 2 | pgtable | 0x0,0x0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
mm/huge_memory.c move_huge_pmd() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 1 | pmdp | 4096-ptr_max |
| DATA_SOURCE | 1 | pmdp | $4 |
| DATA_SOURCE | 2 | pgtable | r pgtable_trans_huge_withdraw |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &tsk->signal->exec_update_lock | ||
| HALF_LOCKED2 | new_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/huge_memory.c move_pages_huge_pmd() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->mm_users.counter | 0-s32max |
| PARAM_VALUE | 0 | mm->mmap_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.next | 2212933610777083904 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.prev | 2212933610777083904 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | mm->page_table_lock.rlock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->task_size | 1-u64max |
| PARAM_VALUE | 1 | pmdp | 4096-ptr_max |
| CAPPED_DATA | 0 | mm | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| DATA_SOURCE | 1 | pmdp | $1 |
| DATA_SOURCE | 2 | pgtable | r pgtable_trans_huge_withdraw |
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &ctx->map_changing_lock | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/huge_memory.c set_huge_zero_folio() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 1 | pmdp | 4096-ptr_max |
| PARAM_VALUE | 2 | pgtable | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $1 |
| DATA_SOURCE | 1 | pmdp | $4 |
| DATA_SOURCE | 2 | pgtable | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/migrate_device.c migrate_vma_insert_huge_pmd_page() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 1 | pmdp | 4096-ptr_max |
| PARAM_VALUE | 2 | pgtable | 4096-ptr_max |
| DATA_SOURCE | 1 | pmdp | $4 |
| DATA_SOURCE | 2 | pgtable | r pte_alloc_one |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &drm->dmem->mutex |
mm/memory.c deposit_prealloc_pte() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
mm/debug_vm_pgtable.c pmd_advanced_tests() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 1 | pmdp | 4096-ptr_max |
| PREEMPT_ADD | |||
| NOCHECK_CALL |
mm/khugepaged.c collapse_huge_page() -> pgtable_trans_huge_deposit()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->process_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->process_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->request_key_auth->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->request_key_auth->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->session_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->session_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->thread_keyring->user->qnbytes | s32min-s32max |
| PARAM_VALUE | 0 | mm->exe_file->f_cred->thread_keyring->user->qnkeys | s32min-s32max |
| PARAM_VALUE | 0 | mm->mm_mt.ma_root | 1-u64max |
| PARAM_VALUE | 0 | mm->mm_users.counter | s32min-(-1),1-s32max |
| PARAM_VALUE | 0 | mm->mmap_lock.dep_map->name | 0-255 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->handoff_set | 1 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.next | 2212933610777083904,2624917664208203776 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->list.prev | 2212933610777083904,2624917664208203776 |
| PARAM_VALUE | 0 | mm->mmap_lock.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | mm->mmap_lock.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 0 | mm->notifier_subscriptions->has_itree | 0-1 |
| PARAM_VALUE | 1 | pmdp | 4096-ptr_max |
| CAPPED_DATA | 0 | mm->mm_mt.ma_root | 1 |
| CAPPED_DATA | 1 | pmdp | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | pmd_ptl | ||
| LOCK2 | 0 | &mm->mmap_lock | |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |