|
XenevaOS
|
#include <drm_gpuvm.h>

Public Attributes | ||
| struct drm_gpuvm * | vm | |
| struct drm_gem_object * | obj | |
| bool | evicted | |
| struct kref | kref | |
| struct { | ||
| struct list_head gpuva | ||
| struct { | ||
| struct list_head gem | ||
| struct list_head extobj | ||
| struct list_head evict | ||
| struct llist_node bo_defer | ||
| } entry | ||
| } | list | |
struct drm_gpuvm_bo - structure representing a &drm_gpuvm and &drm_gem_object combination
This structure is an abstraction representing a &drm_gpuvm and &drm_gem_object combination. It serves as an indirection to accelerate iterating all &drm_gpuvas within a &drm_gpuvm backed by the same &drm_gem_object.
Furthermore it is used cache evicted GEM objects for a certain GPU-VM to accelerate validation.
Typically, drivers want to create an instance of a struct drm_gpuvm_bo once a GEM object is mapped first in a GPU-VM and release the instance once the last mapping of the GEM object in this GPU-VM is unmapped.
| struct llist_node drm_gpuvm_bo::bo_defer |
@list.entry.bo_defer: List entry to attach to the &drm_gpuvms bo_defer list.
| struct { ... } drm_gpuvm_bo::entry |
@list.entry: Structure containing all &list_heads serving as entry.
| struct list_head drm_gpuvm_bo::evict |
@list.entry.evict: List entry to attach to the &drm_gpuvms evict list.
| bool drm_gpuvm_bo::evicted |
@evicted: Indicates whether the &drm_gem_object is evicted; field protected by the &drm_gem_object's dma-resv lock.
| struct list_head drm_gpuvm_bo::extobj |
@list.entry.evict: List entry to attach to the &drm_gpuvms extobj list.
| struct list_head drm_gpuvm_bo::gem |
@list.entry.gem: List entry to attach to the &drm_gem_objects gpuva list.
| struct list_head drm_gpuvm_bo::gpuva |
@list.gpuva: The list of linked &drm_gpuvas.
It is safe to access entries from this list as long as the GEM's gpuva lock is held. See also struct drm_gem_object.
| struct kref drm_gpuvm_bo::kref |
@kref: The reference count for this &drm_gpuvm_bo.
| struct { ... } drm_gpuvm_bo::list |
@list: Structure containing all &list_heads.
| struct drm_gem_object* drm_gpuvm_bo::obj |
@obj: The &drm_gem_object being mapped in @vm. This is a reference counted pointer.
| struct drm_gpuvm* drm_gpuvm_bo::vm |
@vm: The &drm_gpuvm the @obj is mapped in. This is a reference counted pointer.