[PATCH drm-next v4 00/14] [RFC] DRM GPUVA Manager & Nouveau VM_BIND UAPI
Danilo Krummrich
dakr at redhat.com
Tue Jun 13 14:20:41 UTC 2023
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 at imgtec.com>
>
>> 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
>>
More information about the dri-devel
mailing list