[igt-dev] [RFC i-g-t 0/7] tests/i915/svm: Shared Virtual Memory (SVM) test

Niranjana Vishwanathapura niranjana.vishwanathapura at intel.com
Fri Dec 13 21:54:22 UTC 2019


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 a 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 validates both SVM system and runtime allocator support.

The patch series adds driver interface and some test cases.
It tests for
 - Binding an address range or a BO in device page table
 - Migrating of pages to and from device memory
 - GPU access to memory through shared virtual address space
 - Implicit migration back to host memory upon CPU access
 - SVM capability and configurability on per vm basis
 - Large mappings
 - Both CPU copy and blitter copy of pages
 - Multiple context/vm support
 - Proper unbinding when the buffer is freed
 - Different allocation methods
 - Stress test
 - etc.

Niranjana (1):
  drm-uapi: Import SVM UAPI

Niranjana Vishwanathapura (6):
  lib: Add interface to support SVM
  tests/i915/svm: Add basic SVM RT allocator test support
  tests/i915/svm: Add mmap support for SVM RT allocator
  tests/i915/svm: Add basic SVM SYS allocator test support
  tests/i915/svm: Add multiple process tests
  tests/i915/svm: Add stress test

 include/drm-uapi/i915_drm.h |  74 ++++
 lib/i915/gem_context.c      |  27 ++
 lib/i915/gem_context.h      |   2 +
 lib/i915/gem_vm.c           |  48 +++
 lib/i915/gem_vm.h           |   6 +
 lib/ioctl_wrappers.c        | 154 +++++++
 lib/ioctl_wrappers.h        |  14 +
 tests/Makefile.sources      |   3 +
 tests/i915/i915_svm_basic.c | 808 ++++++++++++++++++++++++++++++++++++
 tests/meson.build           |   1 +
 10 files changed, 1137 insertions(+)
 create mode 100644 tests/i915/i915_svm_basic.c

-- 
2.21.0.rc0.32.g243a4c7e27



More information about the igt-dev mailing list