Re: [PATCH drm-next v4 00/14] [RFC] DRM GPUVA Manager & Nouveau VM_BIND UAPI

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Donald,

On 6/9/23 13:56, Donald Robson wrote:
On Wed, 2023-06-07 at 00:31 +0200, Danilo Krummrich wrote:

Christian König (1):
   drm: execution context for GEM buffers v4

Danilo Krummrich (13):
   maple_tree: split up MA_STATE() macro
   drm: manager to keep track of GPUs VA mappings

I have tested the drm GPUVA manager as part of using it with our new
driver.  The link below shows use of the drm_gpuva_sm_[un]map()
functions.  I think this is based on the v3 patches, but I have also
tried it locally using v4 patches.  We will be submitting this
driver for review soon.

That's awesome - thank your for taking the effort!


https://gitlab.freedesktop.org/sarah-walker-imgtec/powervr/-/blob/dev/v3/drivers/gpu/drm/imagination/pvr_vm.c

In a previous incarnation, I used the drm_gpuva_insert() and
drm_gpuva_remove() functions directly.  In some now abandoned work I
used the drm_gpuva_sm_[un]map_ops_create() route.

The only problem I encountered along the way was the maple tree init
issue already reported by Boris and fixed in v4.  One caveat - as
our driver is a work in progress our testing is limited to certain
Sascha Willem tests.

I did find it quite difficult to get the prealloc route with
drm_gpuva_sm_[un]map() working.  I'm not sure to what degree this
reflects me being a novice on matters DRM, but I did find myself
wishing for more direction, even with Boris's help.

I'm definitely up improving the existing documentation. Anything in particular you think should be described in more detail?

- Danilo


Tested-by: Donald Robson <donald.robson@xxxxxxxxxx>

   drm: debugfs: provide infrastructure to dump a DRM GPU VA space
   drm/nouveau: new VM_BIND uapi interfaces
   drm/nouveau: get vmm via nouveau_cli_vmm()
   drm/nouveau: bo: initialize GEM GPU VA interface
   drm/nouveau: move usercopy helpers to nouveau_drv.h
   drm/nouveau: fence: separate fence alloc and emit
   drm/nouveau: fence: fail to emit when fence context is killed
   drm/nouveau: chan: provide nouveau_channel_kill()
   drm/nouveau: nvkm/vmm: implement raw ops to manage uvmm
   drm/nouveau: implement new VM_BIND uAPI
   drm/nouveau: debugfs: implement DRM GPU VA debugfs






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux