| /linux-6.15/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_hmm.c | 173 struct hmm_range *hmm_range; in amdgpu_hmm_range_get_pages() local 180 hmm_range = kzalloc(sizeof(*hmm_range), GFP_KERNEL); in amdgpu_hmm_range_get_pages() 181 if (unlikely(!hmm_range)) in amdgpu_hmm_range_get_pages() 195 hmm_range->start = start; in amdgpu_hmm_range_get_pages() 200 hmm_range->end = min(hmm_range->start + MAX_WALK_BYTE, end); in amdgpu_hmm_range_get_pages() 203 hmm_range->start, hmm_range->end); in amdgpu_hmm_range_get_pages() 219 hmm_range->start = hmm_range->end; in amdgpu_hmm_range_get_pages() 233 *phmm_range = hmm_range; in amdgpu_hmm_range_get_pages() 240 kfree(hmm_range); in amdgpu_hmm_range_get_pages() 247 bool amdgpu_hmm_range_get_pages_done(struct hmm_range *hmm_range) in amdgpu_hmm_range_get_pages_done() argument [all …]
|
| H A D | amdgpu_ttm.h | 45 struct hmm_range; 191 struct hmm_range **range); 193 struct hmm_range *range); 195 struct hmm_range *range); 199 struct hmm_range **range) in amdgpu_ttm_tt_get_user_pages() 204 struct hmm_range *range) in amdgpu_ttm_tt_discard_user_pages() 208 struct hmm_range *range) in amdgpu_ttm_tt_get_user_pages_done()
|
| H A D | amdgpu_hmm.h | 37 struct hmm_range **phmm_range); 38 bool amdgpu_hmm_range_get_pages_done(struct hmm_range *hmm_range);
|
| H A D | amdgpu_bo_list.h | 28 struct hmm_range; 42 struct hmm_range *range;
|
| H A D | amdgpu_amdkfd.h | 74 struct hmm_range *range;
|
| H A D | amdgpu_ttm.c | 698 struct hmm_range **range) in amdgpu_ttm_tt_get_user_pages() 748 struct hmm_range *range) in amdgpu_ttm_tt_discard_user_pages() 763 struct hmm_range *range) in amdgpu_ttm_tt_get_user_pages_done()
|
| H A D | amdgpu_gem.c | 422 struct hmm_range *range; in amdgpu_gem_userptr_ioctl()
|
| H A D | amdgpu_amdkfd_gpuvm.c | 1043 struct hmm_range *range; in init_user_pages()
|
| /linux-6.15/drivers/gpu/drm/xe/ |
| H A D | xe_hmm.c | 23 struct hmm_range *range, struct rw_semaphore *notifier_sem) in xe_alloc_sg() 92 static int xe_build_sg(struct xe_device *xe, struct hmm_range *range, in xe_build_sg() 225 struct hmm_range hmm_range = { in xe_hmm_userptr_populate_range() local 259 hmm_range.default_flags |= HMM_PFN_REQ_WRITE; in xe_hmm_userptr_populate_range() 266 hmm_range.hmm_pfns = pfns; in xe_hmm_userptr_populate_range() 269 hmm_range.notifier_seq = mmu_interval_read_begin(&userptr->notifier); in xe_hmm_userptr_populate_range() 274 ret = hmm_range_fault(&hmm_range); in xe_hmm_userptr_populate_range() 293 ret = xe_alloc_sg(vm->xe, &userptr->sgt, &hmm_range, &vm->userptr.notifier_lock); in xe_hmm_userptr_populate_range() 301 if (mmu_interval_read_retry(hmm_range.notifier, hmm_range.notifier_seq)) { in xe_hmm_userptr_populate_range() 306 ret = xe_build_sg(vm->xe, &hmm_range, &userptr->sgt, in xe_hmm_userptr_populate_range() [all …]
|
| /linux-6.15/mm/ |
| H A D | hmm.c | 32 struct hmm_range *range; 43 struct hmm_range *range, unsigned long cpu_flags) in hmm_pfns_fill() 90 struct hmm_range *range = hmm_vma_walk->range; in hmm_pte_need_fault() 125 struct hmm_range *range = hmm_vma_walk->range; in hmm_range_need_fault() 151 struct hmm_range *range = hmm_vma_walk->range; in hmm_vma_walk_hole() 192 struct hmm_range *range = hmm_vma_walk->range; in hmm_vma_handle_pmd() 228 struct hmm_range *range = hmm_vma_walk->range; in hmm_vma_handle_pte() 326 struct hmm_range *range = hmm_vma_walk->range; in hmm_vma_walk_pmd() 415 struct hmm_range *range = hmm_vma_walk->range; in hmm_vma_walk_pud() 474 struct hmm_range *range = hmm_vma_walk->range; in hmm_vma_walk_hugetlb_entry() [all …]
|
| /linux-6.15/drivers/gpu/drm/ |
| H A D | drm_gpusvm.c | 836 struct hmm_range hmm_range = { in drm_gpusvm_check_pages() local 856 hmm_range.hmm_pfns = pfns; in drm_gpusvm_check_pages() 859 err = hmm_range_fault(&hmm_range); in drm_gpusvm_check_pages() 864 hmm_range.notifier_seq = in drm_gpusvm_check_pages() 1323 struct hmm_range hmm_range = { in drm_gpusvm_range_get_pages() local 1361 hmm_range.hmm_pfns = pfns; in drm_gpusvm_range_get_pages() 1364 err = hmm_range_fault(&hmm_range); in drm_gpusvm_range_get_pages() 1371 hmm_range.notifier_seq = in drm_gpusvm_range_get_pages() 2111 struct hmm_range hmm_range = { in drm_gpusvm_range_evict() local 2133 hmm_range.hmm_pfns = pfns; in drm_gpusvm_range_evict() [all …]
|
| /linux-6.15/include/linux/ |
| H A D | hmm.h | 91 struct hmm_range { struct 105 int hmm_range_fault(struct hmm_range *range); argument
|
| /linux-6.15/Documentation/translations/zh_CN/mm/ |
| H A D | hmm.rst | 129 int hmm_range_fault(struct hmm_range *range); 136 struct hmm_range range; 178 hmm_range 结构有 2 个字段,default_flags 和 pfn_flags_mask,它们指定整个范围
|
| /linux-6.15/drivers/gpu/drm/nouveau/ |
| H A D | nouveau_dmem.h | 29 struct hmm_range;
|
| H A D | nouveau_svm.c | 538 struct hmm_range *range, in nouveau_hmm_convert_pfn() 662 struct hmm_range range = { in nouveau_range_fault()
|
| /linux-6.15/lib/ |
| H A D | test_hmm.c | 208 static int dmirror_do_fault(struct dmirror *dmirror, struct hmm_range *range) in dmirror_do_fault() 289 struct hmm_range *range) in dmirror_range_fault() 334 struct hmm_range range = { in dmirror_fault() 1014 static void dmirror_mkentry(struct dmirror *dmirror, struct hmm_range *range, in dmirror_mkentry() 1083 struct hmm_range *range, in dmirror_range_snapshot() 1150 struct hmm_range range = { in dmirror_snapshot()
|
| /linux-6.15/drivers/infiniband/core/ |
| H A D | umem_odp.c | 357 struct hmm_range range = {}; in ib_umem_odp_map_dma_and_lock()
|
| /linux-6.15/Documentation/mm/ |
| H A D | hmm.rst | 162 int hmm_range_fault(struct hmm_range *range); 170 struct hmm_range range; 214 The hmm_range struct has 2 fields, default_flags and pfn_flags_mask, that specify
|
| /linux-6.15/drivers/gpu/drm/amd/amdkfd/ |
| H A D | kfd_svm.c | 1704 struct hmm_range *hmm_range = NULL; in svm_range_validate_and_map() local 1722 &hmm_range); in svm_range_validate_and_map() 1733 hmm_range->hmm_pfns); in svm_range_validate_and_map() 1744 if (hmm_range && amdgpu_hmm_range_get_pages_done(hmm_range) && !r) { in svm_range_validate_and_map()
|
| /linux-6.15/drivers/accel/amdxdna/ |
| H A D | aie2_ctx.c | 762 struct hmm_range range = { 0 }; in aie2_populate_range()
|