XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_gpuvm_bo Struct Reference

#include <drm_gpuvm.h>

Collaboration diagram for drm_gpuvm_bo:
Collaboration graph
[legend]

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 
 

Detailed Description

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.

Member Data Documentation

◆ bo_defer

struct llist_node drm_gpuvm_bo::bo_defer

@list.entry.bo_defer: List entry to attach to the &drm_gpuvms bo_defer list.

◆ [struct]

struct { ... } drm_gpuvm_bo::entry

@list.entry: Structure containing all &list_heads serving as entry.

◆ evict

struct list_head drm_gpuvm_bo::evict

@list.entry.evict: List entry to attach to the &drm_gpuvms evict list.

◆ evicted

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.

◆ extobj

struct list_head drm_gpuvm_bo::extobj

@list.entry.evict: List entry to attach to the &drm_gpuvms extobj list.

◆ gem

struct list_head drm_gpuvm_bo::gem

@list.entry.gem: List entry to attach to the &drm_gem_objects gpuva list.

◆ gpuva

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.

◆ kref

struct kref drm_gpuvm_bo::kref

@kref: The reference count for this &drm_gpuvm_bo.

◆ [struct]

struct { ... } drm_gpuvm_bo::list

@list: Structure containing all &list_heads.

◆ obj

struct drm_gem_object* drm_gpuvm_bo::obj

@obj: The &drm_gem_object being mapped in @vm. This is a reference counted pointer.

◆ vm

struct drm_gpuvm* drm_gpuvm_bo::vm

@vm: The &drm_gpuvm the @obj is mapped in. This is a reference counted pointer.


The documentation for this struct was generated from the following file: