Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 2 files as a function:
- drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c, line 280 (as a function)
- drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.h, line 70 (as a function)
Referenced in 5 files:
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
- drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
- drivers/gpu/drm/amd/amdkfd/kfd_svm.c, line 1827
Smatch caller information:
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c amdgpu_cs_parser_bos() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL |
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c amdgpu_cs_submit() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 0,4096-ptr_max |
| NOCHECK_CALL | |||
| LOCK2 | &p->adev->notifier_lock | ||
| TYPE_LOCK | (struct amdgpu_device)->notifier_lock |
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c amdgpu_userq_vm_validate_and_restore_queue() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 4096-ptr_max |
| PARAM_VALUE | 0 | range->bo->tbo.base.resv->lock.ww_class->is_wait_die | 0-1 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_cop->empty_dir | 0,661756434209751040,4392966320616476672,5234023279986843648,8614756098313990144 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_cop->get_context | 0,17350455714160640,4513809449498124288,5149251875611672576,7067778626864828416 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_cop->inode_info_offs | 1632,1720,2632,2648 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_cop->set_context | 0,317457138841939968,3250154607523569664,5979066299606671360,6756104566897242112 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_export_op->fh_to_parent | 0,148606482432692224,436469935444291584,467281172929331200,529780027764285440,1092893949038768128,1556959531105513472,1608953577475584000,1649536479961075712,2404761408063094784,2970908329832960000,3511613614414655488-s64max |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_export_op->get_parent | 0,264940071972966400,291591359766798336,565128213429456896,893189740598853632,1241177127089143808,1474696885321834496,1812477326828269568,1893665921928286208,2210088671756947456,2437012291923775488,2483979068402987008-s64max |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| DATA_SOURCE | 0 | range | r xa_load |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &pool->lock |
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c amdgpu_userq_vm_validate_and_restore_queue() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 4096-ptr_max |
| PARAM_VALUE | 0 | range->bo->tbo.base.resv->lock.ww_class->is_wait_die | 0-1 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_cop->empty_dir | 0,86,661756434209751040,4392966320616476672,5234023279986843648,8614756098313990144 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_cop->get_context | 0,706,17350455714160640,4513809449498124288,5149251875611672576,7067778626864828416 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_cop->inode_info_offs | 1632,1720,1808,2632,2648 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_cop->set_context | 0,67,317457138841939968,3250154607523569664,5979066299606671360,6756104566897242112 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_export_op->fh_to_parent | 0,4672,5297,148606482432692224,436469935444291584,457356038048772096,467281172929331200,529780027764285440,1092893949038768128,1556959531105513472,1608953577475584000,1649536479961075712,2404761408063094784,2970908329832960000-s64max |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->host->i_sb->s_export_op->get_parent | 0,8931,264940071972966400,291591359766798336,565128213429456896,893189740598853632,1241177127089143808,1474696885321834496,1812477326828269568,1893665921928286208,2210088671756947456,2437012291923775488,2483979068402987008-s64max |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | range->bo->tbo.bdev->dev_mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &pool->lock |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_validate_and_map() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 0,4096-ptr_max |
| PARAM_VALUE | 0 | range->bo | 0 |
| PARAM_VALUE | 0 | range->hmm_range.default_flags | 9223372036854775808,13835058055282163712 |
| PARAM_VALUE | 0 | range->hmm_range.end | 0-4294967296 |
| PARAM_VALUE | 0 | range->hmm_range.hmm_pfns | 0,16,4096-ptr_max |
| PARAM_VALUE | 0 | range->hmm_range.notifier | 4096-ptr_max |
| PARAM_VALUE | 0 | range->hmm_range.start | 0,2147483648 |
| BUF_SIZE | 0 | range | (-1)-0,72 |
| BUF_SIZE | 0 | range | (-1)-0,72 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &prange->lock | ||
| LOCK2 | &prange->migrate_mutex | ||
| LOCK2 | &svms->lock | ||
| HALF_LOCKED2 | &process_info->lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock | ||
| TYPE_LOCK | (struct svm_range)->lock | ||
| TYPE_LOCK | (struct svm_range)->migrate_mutex | ||
| TYPE_LOCK | (struct svm_range_list)->lock |
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c amdgpu_gem_userptr_ioctl() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 4096-ptr_max |
| PARAM_VALUE | 0 | range->bo | 0 |
| BUF_SIZE | 0 | range | 72 |
| DATA_SOURCE | 0 | range | r amdgpu_hmm_range_alloc |
| NOCHECK_CALL | |||
| USER_DATA | 0 | range->hmm_range.notifier->interval_tree.__subtree_last | 0-u64max[c] |
| USER_DATA | 0 | range->hmm_range.notifier->interval_tree.start | 0-u64max |
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c amdgpu_gem_userptr_ioctl() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 4096-ptr_max |
| PARAM_VALUE | 0 | range->bo | 0 |
| PARAM_VALUE | 0 | range->hmm_range.default_flags | 9223372036854775808,13835058055282163712 |
| PARAM_VALUE | 0 | range->hmm_range.end | 1-4294967296 |
| PARAM_VALUE | 0 | range->hmm_range.hmm_pfns | 16,4096-ptr_max |
| PARAM_VALUE | 0 | range->hmm_range.notifier | 4096-ptr_max |
| PARAM_VALUE | 0 | range->hmm_range.start | 0 |
| BUF_SIZE | 0 | range | 72 |
| DATA_SOURCE | 0 | range | r amdgpu_hmm_range_alloc |
| NOCHECK_CALL | |||
| USER_DATA | 0 | range->hmm_range.notifier->interval_tree.__subtree_last | 0-u64max[c] |
| USER_DATA | 0 | range->hmm_range.notifier->interval_tree.start | 0-u64max |
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c amdgpu_amdkfd_gpuvm_free_memory_of_gpu() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &p->mutex |
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c confirm_valid_user_pages_locked() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 4096-ptr_max |
| NOCHECK_CALL | |||
| LOCK2 | &process_info->lock | ||
| LOCK2 | &process_info->notifier_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct amdkfd_process_info)->lock | ||
| TYPE_LOCK | (struct amdkfd_process_info)->notifier_lock |
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c init_user_pages() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 4096-ptr_max |
| PARAM_VALUE | 0 | range->bo | 0 |
| BUF_SIZE | 0 | range | 72 |
| DATA_SOURCE | 0 | range | r amdgpu_hmm_range_alloc |
| NOCHECK_CALL | |||
| USER_DATA | 0 | range->hmm_range.notifier->interval_tree.__subtree_last | 0-u64max[c] |
| USER_DATA | 0 | range->hmm_range.notifier->interval_tree.start | 0-u64max |
| LOCK2 | &p->mutex | ||
| LOCK2 | &process_info->lock | ||
| TYPE_LOCK | (struct amdkfd_process_info)->lock | ||
| TYPE_LOCK | (struct kfd_process)->mutex |
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c init_user_pages() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 4096-ptr_max |
| PARAM_VALUE | 0 | range->bo | 0 |
| PARAM_VALUE | 0 | range->hmm_range.default_flags | 9223372036854775808,13835058055282163712 |
| PARAM_VALUE | 0 | range->hmm_range.end | 1-4294967296 |
| PARAM_VALUE | 0 | range->hmm_range.hmm_pfns | 16,4096-ptr_max |
| PARAM_VALUE | 0 | range->hmm_range.notifier | 4096-ptr_max |
| PARAM_VALUE | 0 | range->hmm_range.start | 0 |
| BUF_SIZE | 0 | range | 72 |
| DATA_SOURCE | 0 | range | r amdgpu_hmm_range_alloc |
| NOCHECK_CALL | |||
| USER_DATA | 0 | range->hmm_range.notifier->interval_tree.__subtree_last | 0-u64max[c] |
| USER_DATA | 0 | range->hmm_range.notifier->interval_tree.start | 0-u64max |
| LOCK2 | &p->mutex | ||
| LOCK2 | &process_info->lock | ||
| TYPE_LOCK | (struct amdkfd_process_info)->lock | ||
| TYPE_LOCK | (struct kfd_process)->mutex |
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c update_invalid_user_pages() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| LOCK2 | &process_info->lock | ||
| LOCK2 | &process_info->notifier_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct amdkfd_process_info)->lock | ||
| TYPE_LOCK | (struct amdkfd_process_info)->notifier_lock |
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c update_invalid_user_pages() -> amdgpu_hmm_range_free()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | range | 4096-ptr_max |
| PARAM_VALUE | 0 | range->bo | 0 |
| BUF_SIZE | 0 | range | 72 |
| DATA_SOURCE | 0 | range | r amdgpu_hmm_range_alloc |
| NOCHECK_CALL | |||
| LOCK2 | &process_info->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct amdkfd_process_info)->lock |