drm/nouveau/svm: initial support for shared virtual memory
authorBen Skeggs <bskeggs@redhat.com>
Thu, 5 Jul 2018 02:57:12 +0000 (12:57 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 19 Feb 2019 23:00:02 +0000 (09:00 +1000)
commiteeaf06ac1a5584e41cf289f8351e446bb131374b
tree4bd51901b98177c13c805fd61083156f0435d75a
parentbfe91afaca59251fbf5d62143fdd8f740b551302
drm/nouveau/svm: initial support for shared virtual memory

This uses HMM to mirror a process' CPU page tables into a channel's page
tables, and keep them synchronised so that both the CPU and GPU are able
to access the same memory at the same virtual address.

While this code also supports Volta/Turing, it's only enabled for Pascal
GPUs currently due to channel recovery being unreliable right now on the
later GPUs.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/Kbuild
drivers/gpu/drm/nouveau/Kconfig
drivers/gpu/drm/nouveau/nouveau_chan.c
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/nouveau/nouveau_drv.h
drivers/gpu/drm/nouveau/nouveau_svm.c [new file with mode: 0644]
drivers/gpu/drm/nouveau/nouveau_svm.h [new file with mode: 0644]
drivers/gpu/drm/nouveau/nouveau_vmm.c
drivers/gpu/drm/nouveau/nouveau_vmm.h
include/uapi/drm/nouveau_drm.h