drm_gpuvm_p...h_ops_create(9)
πΈ drm_gpuvm_prefetch_ops_create π
okay bestie, this one comes straight out of your Kernel API Manual, so you already know it's giving "I write C for a living and I still have a personality." Let's get into it β¨
π NAME π
drm_gpuvm_prefetch_ops_create β literally creates the &drm_gpuva_ops you need to prefetch. that's the whole vibe. no notes. π«Ά
β SYNOPSIS β
struct drm_gpuva_ops * drm_gpuvm_prefetch_ops_create (struct drm_gpuvm
*gpuvm , u64 addr , u64 range );
yes she's a pointer-returning queen, we love to see it π
π ARGUMENTS π
gpuvmβ thedrm_gpuvmthat reps the GPU VA space. your whole address-space situation lives here πaddrβ the start address of the range you wanna prefetch. where the party begins πrangeβ the range of the mappings to prefetch. how far the party goes π₯
π¦ DESCRIPTION π¦
so what does this bad girl do?? she creates a list of operations to perform prefetching. that's it, that's her job, and she ate π
you can iterate that list with drm_gpuva_for_each_op, and bestie, listen β it must be processed in the given order. no skipping ahead, no main character free-styling, the order is the order fr fr β οΈ
the list can contain prefetch operations, and ngl there can be an arbitrary amount of them. as many as it takes. no cap. π
π¨ important bestie PSA: after you're done processing the returneddrm_gpuva_ops, you must free it withdrm_gpuva_ops_free. do not leave it lying around like a forgotten iced coffee. that's a memory leak and we don't do those here π
β¨ RETURN β¨
a pointer to the drm_gpuva_ops on success π β or an ERR_PTR on failure π. check it. always check it. iykyk π§
π SEE ALSO π
the whole extended friend group, literally:
- Kernel file
./drivers/gpu/drm/drm_gpuvm.cOverview(9) - Split and Merge(9)
- Madvise Logic - Splitting and Traversal(9)
- Locking(9)
- Examples(9)
- get_next_vm_bo_from_list(9)
- for_each_vm_bo_in_list(9)
- restore_vm_bo_list(9)
- drm_gpuvm_bo_is_zombie(9)
- drm_gpuvm_bo_list_add(9)
- drm_gpuvm_bo_list_del_init(9)
- drm_gpuvm_bo_list_del(9)
- drm_gpuvm_range_valid(9)
- drm_gpuvm_resv_object_alloc(9)
- drm_gpuvm_init(9)
- drm_gpuvm_put(9)
- drm_gpuvm_prepare_vm(9)
- drm_gpuvm_prepare_objects(9)
- drm_gpuvm_prepare_range(9)
- drm_gpuvm_exec_lock(9)
- drm_gpuvm_exec_lock_array(9)
- drm_gpuvm_exec_lock_range(9)
- drm_gpuvm_validate(9)
- drm_gpuvm_resv_add_fence(9)
- drm_gpuvm_bo_create(9)
- drm_gpuvm_bo_put(9)
- drm_gpuvm_bo_put_deferred(9)
- drm_gpuvm_bo_deferred_cleanup(9)
- drm_gpuvm_bo_find(9)
- drm_gpuvm_bo_obtain_locked(9)
- drm_gpuvm_bo_obtain_prealloc(9)
- drm_gpuvm_bo_extobj_add(9)
- drm_gpuvm_bo_evict(9)
- drm_gpuva_insert(9)
- drm_gpuva_remove(9)
- drm_gpuva_link(9)
- drm_gpuva_unlink(9)
- drm_gpuva_unlink_defer(9)
- drm_gpuva_find_first(9)
- drm_gpuva_find(9)
- drm_gpuvm_interval_empty(9)
- drm_gpuva_map(9)
- drm_gpuva_remap(9)
- drm_gpuva_unmap(9)
- drm_gpuvm_sm_map(9)
- drm_gpuvm_sm_unmap(9)
- drm_gpuvm_sm_map_exec_lock(9)
- drm_gpuvm_sm_unmap_exec_lock(9)
- drm_gpuvm_sm_map_ops_create(9)
- drm_gpuvm_madvise_ops_create(9)
- drm_gpuvm_sm_unmap_ops_create(9)
- drm_gpuvm_bo_unmap_ops_create(9)
- drm_gpuva_ops_free(9)
and that's the whole page bestie!! π
this icon lives in ./drivers/gpu/drm and the version on deck is October 2026 β so like, future-dated slay πβ¨ mwah, go free your ops π«Άπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms