[Intel-gfx] [RFC 0/8] drm/i915/svm: [WIP] SVM runtime allocator support

Niranjana Vishwanathapura niranjana.vishwanathapura at intel.com
Fri Jan 24 18:54:18 UTC 2020


On Fri, Jan 24, 2020 at 12:53:54AM -0800, Niranjana Vishwanathapura wrote:
>This patch series is WIP and not submission ready.
>It needs more clarity on locking strategy, synchronization between
>VM_BIND and execbuff paths, endless batch buffer support among other things.
>This patch series is in continuation of runtime allocator support in
>earlier posted series
>https://lists.freedesktop.org/archives/intel-gfx/2019-December/223480.html
>It is an initial dig to address (partially) some feedback received in patch
>[02/12] in above RFC series.
>Posting it for early feedback.
>
>Shared Virtual Memory (SVM) allows the programmer to use a single virtual
>address space which will be shared between threads executing on CPUs and GPUs.
>It abstracts away from the user the location of the backing memory, and hence
>simplifies the user programming model.
>
>This series supports SVM Runtime allocator that requires the driver to provide
>memory allocation and management interface through GEM buffer object (BO) interface.
>
>No change is done to execbuff command submission interface.
>The newly added ability to partial bind BOs is only supported via VM_BIND ioctl.
>

Forgot to add the point that any synchronization between objects involving bindings
added via VM_BIND should be explicitly handled by the user.

>The patch series includes
>- Support to partially bind gem buffer objects in ppgtt including aliasing
>- Support to mark VMs as active and wait for them to become idle
>- VM_BIND ioctl to bind an array of BO fragments to specified GPU VAs
>- Handle persistent vmas created through VM_BIND in the execbuff path
>- Support for user to enable/disable SVM support on a per VM basis
>- Initial dig at handling endless batch buffer
>
>Niranjana Vishwanathapura (8):
>  drm/i915/svm: Support partial binding in ppgtt
>  drm/i915/svm: Add support to mark VMs as active
>  drm/i915/svm: Introduce VM_BIND ioctl
>  drm/i915/svm: Manage SVM bindings added using VM_BIND
>  drm/i915/svm: Handle persistent vmas
>  drm/i915/svm: Skip vma_lookup for persistent vmas
>  drm/i915/svm: Add support to en/disable SVM
>  drm/i915/svm: VM_BIND for endless batch buffer
>
> drivers/gpu/drm/i915/Kconfig                  |  11 ++
> drivers/gpu/drm/i915/Makefile                 |   3 +
> drivers/gpu/drm/i915/gem/i915_gem_context.c   | 100 ++++++++++++++++++
> drivers/gpu/drm/i915/gem/i915_gem_context.h   |   4 +
> .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |  36 +++++++
> drivers/gpu/drm/i915/gem/i915_gem_svm.c       |  94 ++++++++++++++++
> drivers/gpu/drm/i915/gem/i915_gem_svm.h       |  22 ++++
> drivers/gpu/drm/i915/gt/gen8_ppgtt.c          |  37 ++++---
> drivers/gpu/drm/i915/gt/intel_gtt.c           |  43 ++++++++
> drivers/gpu/drm/i915/gt/intel_gtt.h           |  41 ++++++-
> drivers/gpu/drm/i915/i915_drv.c               |  50 ++++++++-
> drivers/gpu/drm/i915/i915_drv.h               |  32 ++++++
> drivers/gpu/drm/i915/i915_gem_gtt.h           |  14 +++
> drivers/gpu/drm/i915/i915_getparam.c          |   3 +
> drivers/gpu/drm/i915/i915_vma.c               |  27 +++--
> drivers/gpu/drm/i915/i915_vma.h               |  17 ++-
> drivers/gpu/drm/i915/i915_vma_types.h         |   7 ++
> include/uapi/drm/i915_drm.h                   |  70 ++++++++++++
> 18 files changed, 583 insertions(+), 28 deletions(-)
> create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_svm.c
> create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_svm.h
>
>-- 
>2.21.0.rc0.32.g243a4c7e27
>
>_______________________________________________
>Intel-gfx mailing list
>Intel-gfx at lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list