[Intel-gfx] [PATCH v6 00/20] drm/i915/vm_bind: Add VM_BIND functionality

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Nov 10 14:47:16 UTC 2022


On 10/11/2022 05:49, Niranjana Vishwanathapura wrote:
> On Wed, Nov 09, 2022 at 04:16:25PM -0800, Zanoni, Paulo R wrote:
>> On Mon, 2022-11-07 at 00:51 -0800, Niranjana Vishwanathapura wrote:
>>> DRM_I915_GEM_VM_BIND/UNBIND ioctls allows UMD to bind/unbind GEM
>>> buffer objects (BOs) or sections of a BOs at specified GPU virtual
>>> addresses on a specified address space (VM). Multiple mappings can map
>>> to the same physical pages of an object (aliasing). These mappings (also
>>> referred to as persistent mappings) will be persistent across multiple
>>> GPU submissions (execbuf calls) issued by the UMD, without user having
>>> to provide a list of all required mappings during each submission (as
>>> required by older execbuf mode).
>>>
>>> This patch series support VM_BIND version 1, as described by the param
>>> I915_PARAM_VM_BIND_VERSION.
>>>
>>> Add new execbuf3 ioctl (I915_GEM_EXECBUFFER3) which only works in
>>> vm_bind mode. The vm_bind mode only works with this new execbuf3 ioctl.
>>> The new execbuf3 ioctl will not have any execlist support and all the
>>> legacy support like relocations etc., are removed.
>>>
>>> NOTEs:
>>> * It is based on below VM_BIND design+uapi rfc.
>>>   Documentation/gpu/rfc/i915_vm_bind.rst
>>
>> Hi
>>
>> One difference for execbuf3 that I noticed that is not mentioned in the
>> RFC document is that we now don't have a way to signal
>> EXEC_OBJECT_WRITE. When looking at the Kernel code, some there are some
>> pieces that check for this flag:
>>
>> - there's code that deals with frontbuffer rendering
>> - there's code that deals with fences
>> - there's code that prevents self-modifying batches
>> - another that seems related to waiting for objects
>>
>> Are there any new rules regarding frontbuffer rendering when we use
>> execbuf3? Any other behavior changes related to the other places that
>> we should expect when using execbuf3?
>>
> 
> Paulo,
> Most of the EXEC_OBJECT_WRITE check in execbuf path is related to
> implicit dependency tracker which execbuf3 does not support. The
> frontbuffer related updated is the only exception and I don't
> remember the rationale to not require this on execbuf3.
> 
> Matt, Tvrtko, Daniel, can you please comment here?

Does not ring a bell to me. Looking at the code it certainly looks like 
it would be silently failing to handle it properly.

I'll let people with more experience in this area answer, but from my 
point of view, if it is decided that it can be left unsupported, then we 
probably need a way of failing the ioctl is used against a frontbuffer, 
or something, instead of having display corruption.

Regards,

Tvrtko


More information about the dri-devel mailing list