All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 00/13] drm/i915/svm: Add SVM support
@ 2019-11-22 20:57 ` Niranjana Vishwanathapura
  0 siblings, 0 replies; 111+ messages in thread
From: Niranjana Vishwanathapura @ 2019-11-22 20:57 UTC (permalink / raw)
  To: intel-gfx
  Cc: sanjay.k.kumar, sudeep.dutt, dri-devel, dave.hansen, jglisse,
	jon.bloomfield, daniel.vetter, dan.j.williams, ira.weiny, jgg

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.
SVM supports two types of virtual memory allocation methods.
Runtime allocator requires the driver to provide memory allocation and
management interface, like buffer object (BO) interface.
Whereas system allocator makes use of default OS memory allocation and
management support like malloc().

This patch series adds both SVM system and runtime allocator support
to i915 driver.

The patch series includes
 - SVM support for both system and runtime allocation.
 - Plugin in device memory with the Linux kernel.
 - User API advertising SVM capability and configuration by user on per
   vm basis.
 - User API to bind an address range or a BO with a device page table.
 - User API to migrate an address range to device memory.
 - Implicit migration by moving pages or BOs back from device to host
   memory upon CPU access.
 - CPU copy and blitter copy support for migrating the pages/BOs.
 - Large page mapping support
 - Page table dump support.

References:
https://www.kernel.org/doc/Documentation/vm/hmm.rst
The HMM use cases in the Linux kernel.

Niranjana Vishwanathapura (12):
  drm/i915/svm: Add SVM documentation
  drm/i915/svm: Define SVM UAPI
  drm/i915/svm: Runtime (RT) allocator support
  drm/i915/svm: Page table update support for SVM
  drm/i915/svm: Page table mirroring support
  drm/i915/svm: Device memory support
  drm/i915/svm: Implicitly migrate pages upon CPU fault
  drm/i915/svm: Page copy support during migration
  drm/i915/svm: Add functions to blitter copy SVM buffers
  drm/i915/svm: Use blitter copy for migration
  drm/i915/svm: Add support to en/disable SVM
  drm/i915/svm: Add page table dump support

Venkata Sandeep Dhanalakota (1):
  drm/i915/svm: Implicitly migrate BOs upon CPU access

 Documentation/gpu/i915.rst                    |  29 +
 drivers/gpu/drm/i915/Kconfig                  |  23 +
 drivers/gpu/drm/i915/Kconfig.debug            |  14 +
 drivers/gpu/drm/i915/Makefile                 |   6 +
 drivers/gpu/drm/i915/gem/i915_gem_context.c   |  95 ++-
 drivers/gpu/drm/i915/gem/i915_gem_context.h   |   2 +
 .../gpu/drm/i915/gem/i915_gem_context_types.h |   1 +
 .../gpu/drm/i915/gem/i915_gem_execbuffer.c    |  65 +-
 drivers/gpu/drm/i915/gem/i915_gem_mman.c      |  10 +
 drivers/gpu/drm/i915/gem/i915_gem_object.c    |  43 +-
 drivers/gpu/drm/i915/gem/i915_gem_object.h    |   6 +
 drivers/gpu/drm/i915/gem/i915_gem_svm.c       |  51 ++
 drivers/gpu/drm/i915/gem/i915_gem_svm.h       |  22 +
 drivers/gpu/drm/i915/gem/i915_gem_wait.c      |   2 +-
 drivers/gpu/drm/i915/i915_buddy.h             |  12 +
 drivers/gpu/drm/i915/i915_drv.c               |  30 +-
 drivers/gpu/drm/i915/i915_drv.h               |  32 +
 drivers/gpu/drm/i915/i915_gem_gtt.c           | 158 +++-
 drivers/gpu/drm/i915/i915_gem_gtt.h           |  41 +
 drivers/gpu/drm/i915/i915_getparam.c          |   3 +
 drivers/gpu/drm/i915/i915_svm.c               | 298 +++++++
 drivers/gpu/drm/i915/i915_svm.h               |  71 ++
 drivers/gpu/drm/i915/i915_svm_copy.c          | 172 ++++
 drivers/gpu/drm/i915/i915_svm_devmem.c        | 772 ++++++++++++++++++
 drivers/gpu/drm/i915/intel_memory_region.c    |   4 -
 drivers/gpu/drm/i915/intel_memory_region.h    |  18 +
 drivers/gpu/drm/i915/intel_region_lmem.c      |  10 +
 include/uapi/drm/i915_drm.h                   |  70 ++
 28 files changed, 2024 insertions(+), 36 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
 create mode 100644 drivers/gpu/drm/i915/i915_svm.c
 create mode 100644 drivers/gpu/drm/i915/i915_svm.h
 create mode 100644 drivers/gpu/drm/i915/i915_svm_copy.c
 create mode 100644 drivers/gpu/drm/i915/i915_svm_devmem.c

-- 
2.21.0.rc0.32.g243a4c7e27

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 111+ messages in thread
[parent not found: <20191122195452.14346-1-niranjana.vishwanathapura@intel.com>]

end of thread, other threads:[~2019-12-09  9:47 UTC | newest]

Thread overview: 111+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-22 20:57 [RFC 00/13] drm/i915/svm: Add SVM support Niranjana Vishwanathapura
2019-11-22 20:57 ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 01/13] drm/i915/svm: Add SVM documentation Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 02/13] drm/i915/svm: Define SVM UAPI Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-26 13:44   ` Joonas Lahtinen
2019-11-26 13:44     ` [Intel-gfx] " Joonas Lahtinen
2019-11-26 13:44     ` Joonas Lahtinen
2019-11-28  2:04     ` Niranjan Vishwanathapura
2019-11-28  2:04       ` [Intel-gfx] " Niranjan Vishwanathapura
2019-11-28  2:04       ` Niranjan Vishwanathapura
2019-11-22 20:57 ` [RFC 03/13] drm/i915/svm: Runtime (RT) allocator support Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-25  9:59   ` Chris Wilson
2019-11-25  9:59     ` [Intel-gfx] " Chris Wilson
2019-11-25  9:59     ` Chris Wilson
2019-11-25 16:40     ` Niranjan Vishwanathapura
2019-11-25 16:40       ` [Intel-gfx] " Niranjan Vishwanathapura
2019-11-25 16:40       ` Niranjan Vishwanathapura
2019-11-26 13:59       ` Joonas Lahtinen
2019-11-26 13:59         ` Joonas Lahtinen
2019-11-27 19:23         ` Niranjan Vishwanathapura
2019-11-27 19:23           ` [Intel-gfx] " Niranjan Vishwanathapura
2019-11-27 19:23           ` Niranjan Vishwanathapura
2019-11-28 12:12           ` Joonas Lahtinen
2019-11-28 12:12             ` [Intel-gfx] " Joonas Lahtinen
2019-11-28 12:12             ` Joonas Lahtinen
2019-12-02 19:59             ` Niranjan Vishwanathapura
2019-12-02 19:59               ` [Intel-gfx] " Niranjan Vishwanathapura
2019-12-02 19:59               ` Niranjan Vishwanathapura
2019-11-22 20:57 ` [RFC 04/13] drm/i915/svm: Implicitly migrate BOs upon CPU access Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 05/13] drm/i915/svm: Page table update support for SVM Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 06/13] drm/i915/svm: Page table mirroring support Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-22 23:33   ` Jason Gunthorpe
2019-11-22 23:33     ` [Intel-gfx] " Jason Gunthorpe
2019-11-22 23:33     ` Jason Gunthorpe
2019-11-23  4:44     ` Niranjan Vishwanathapura
2019-11-23  4:44       ` [Intel-gfx] " Niranjan Vishwanathapura
2019-11-23  4:44       ` Niranjan Vishwanathapura
2019-11-23 23:53       ` Jason Gunthorpe
2019-11-23 23:53         ` [Intel-gfx] " Jason Gunthorpe
2019-11-23 23:53         ` Jason Gunthorpe
2019-11-24 21:12         ` Niranjan Vishwanathapura
2019-11-24 21:12           ` [Intel-gfx] " Niranjan Vishwanathapura
2019-11-24 21:12           ` Niranjan Vishwanathapura
2019-11-25 13:24           ` Jason Gunthorpe
2019-11-25 13:24             ` [Intel-gfx] " Jason Gunthorpe
2019-11-25 13:24             ` Jason Gunthorpe
2019-11-25 16:32             ` Niranjan Vishwanathapura
2019-11-25 16:32               ` [Intel-gfx] " Niranjan Vishwanathapura
2019-11-26 18:45               ` Jason Gunthorpe
2019-11-26 18:45                 ` [Intel-gfx] " Jason Gunthorpe
2019-11-26 18:45                 ` Jason Gunthorpe
2019-12-03 19:07                 ` Niranjan Vishwanathapura
2019-12-03 19:07                   ` [Intel-gfx] " Niranjan Vishwanathapura
2019-11-25 16:34             ` Jerome Glisse
2019-11-25 16:34               ` [Intel-gfx] " Jerome Glisse
2019-11-25 16:34               ` Jerome Glisse
2019-11-25 16:33     ` Jerome Glisse
2019-11-25 16:33       ` [Intel-gfx] " Jerome Glisse
2019-11-25 21:29       ` Niranjan Vishwanathapura
2019-11-25 21:29         ` [Intel-gfx] " Niranjan Vishwanathapura
2019-11-26 18:32       ` Jason Gunthorpe
2019-11-26 18:32         ` [Intel-gfx] " Jason Gunthorpe
2019-11-26 18:32         ` Jason Gunthorpe
2019-12-03 19:19         ` Niranjan Vishwanathapura
2019-12-03 19:19           ` [Intel-gfx] " Niranjan Vishwanathapura
2019-12-04 21:51           ` Jerome Glisse
2019-12-04 21:51             ` [Intel-gfx] " Jerome Glisse
2019-12-08 18:23             ` Jason Gunthorpe
2019-12-08 18:23               ` [Intel-gfx] " Jason Gunthorpe
2019-11-22 20:57 ` [RFC 07/13] drm/i915/svm: Device memory support Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 08/13] drm/i915/svm: Implicitly migrate pages upon CPU fault Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 09/13] drm/i915/svm: Page copy support during migration Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 10/13] drm/i915/svm: Add functions to blitter copy SVM buffers Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 11/13] drm/i915/svm: Use blitter copy for migration Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 12/13] drm/i915/svm: Add support to en/disable SVM Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 20:57   ` Niranjana Vishwanathapura
2019-11-22 20:57 ` [RFC 13/13] drm/i915/svm: Add page table dump support Niranjana Vishwanathapura
2019-11-22 20:57   ` [Intel-gfx] " Niranjana Vishwanathapura
2019-11-22 21:32 ` ✗ Fi.CI.BUILD: failure for drm/i915/svm: Add SVM support Patchwork
2019-11-22 21:32   ` [Intel-gfx] " Patchwork
2019-11-26 14:03 ` [RFC 00/13] " Joonas Lahtinen
2019-11-26 14:03   ` [Intel-gfx] " Joonas Lahtinen
2019-11-26 14:03   ` Joonas Lahtinen
2019-12-02 19:37   ` Niranjan Vishwanathapura
2019-12-02 19:37     ` [Intel-gfx] " Niranjan Vishwanathapura
2019-12-02 19:37     ` Niranjan Vishwanathapura
     [not found] <20191122195452.14346-1-niranjana.vishwanathapura@intel.com>
     [not found] ` <20191122195452.14346-7-niranjana.vishwanathapura@intel.com>
2019-11-22 20:01   ` [RFC 06/13] drm/i915/svm: Page table mirroring support Niranjan Vishwanathapura
2019-11-22 20:01     ` Niranjan Vishwanathapura
2019-11-22 20:14     ` Jason Gunthorpe
2019-11-22 20:14       ` Jason Gunthorpe
2019-11-22 20:11       ` Niranjan Vishwanathapura

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.