On Mon, Nov 25, 2019 at 09:59:37AM +0000, Chris Wilson wrote:
Quoting Niranjana Vishwanathapura (2019-11-22 20:57:24)
Shared Virtual Memory (SVM) runtime allocator support allows
binding a shared virtual address to a buffer object (BO) in the
device page table through an ioctl call.
The ioctl though is not svm specific, it is to do with "bulk residency"
and can be used to reduce execbuf traffic to provide virtual address
layout controls to e.g. Vulkan clients.
I915_VM_BIND {
uint32_t vm_id;
int32_t fd; /* or -1 for anon, or buf depending on flags */
uint64_t flags;
uint64_t offset; /* offset info fd [page aligned] */
uint64_t length; /* page aligned */
uint64_t iova; /* page aligned */
uint64_t extensions;
}; /* where page aligned is actually more I915_GTT_PAGE_ALIGNMENT */
as I recall. I also recall it being part of a future command stream
interface to reduce ioctls, but that is another story.
Thanks Chris.
I will change I915_BIND to I915_VM_BIND.
Currently, it is only addressing binding SVM system (buffer) and runtime (BOs)
allocations. But it can be expanded for other bindings. I have 'type' field
instead of 'fd' and 'extensions' & 'iov' can be added later if required.
Is that OK?
-Chris
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel