From: "Zanoni, Paulo R" <paulo.r.zanoni@intel.com>
To: "dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"Vishwanathapura,
Niranjana" <niranjana.vishwanathapura@intel.com>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>
Cc: "Nikula, Jani" <jani.nikula@intel.com>,
"Hellstrom, Thomas" <thomas.hellstrom@intel.com>,
"Auld, Matthew" <matthew.auld@intel.com>,
"Vetter, Daniel" <daniel.vetter@intel.com>,
"christian.koenig@amd.com" <christian.koenig@amd.com>
Subject: Re: [Intel-gfx] [PATCH v10 00/23] drm/i915/vm_bind: Add VM_BIND functionality
Date: Thu, 2 Feb 2023 01:54:53 +0000 [thread overview]
Message-ID: <2b1ec972fbf57f63bb900320cec7e774f5f27ea7.camel@intel.com> (raw)
In-Reply-To: <20230118071609.17572-1-niranjana.vishwanathapura@intel.com>
On Tue, 2023-01-17 at 23:15 -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
>
> * The IGT RFC series is posted as,
> [PATCH i-g-t v10 0/19] vm_bind: Add VM_BIND validation support
FYI, I created a Draft MR for the Mesa implementation:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21057
A Draft MR should be easier to track than simply a branch on a personal
tree. Feel free to put this link in the next cover letters for v11 and
above.
>
> v2: Address various review comments
> v3: Address review comments and other fixes
> v4: Remove vm_unbind out fence uapi which is not supported yet,
> replace vm->vm_bind_mode check with i915_gem_vm_is_vm_bind_mode()
> v5: Render kernel-doc, use PIN_NOEVICT, limit vm_bind support to
> non-recoverable faults
> v6: Rebased, minor fixes, add reserved fields to drm_i915_gem_vm_bind,
> add new patch for async vm_unbind support
> v7: Rebased, minor cleanups as per review feedback
> v8: Rebased, add capture support
> v9: Address capture support feedback from v8
> v10: Properly handle vma->resource for mappings with capture request
>
> Test-with: 20230118071350.17498-1-niranjana.vishwanathapura@intel.com
>
> Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
>
> Niranjana Vishwanathapura (23):
> drm/i915/vm_bind: Expose vm lookup function
> drm/i915/vm_bind: Add __i915_sw_fence_await_reservation()
> drm/i915/vm_bind: Expose i915_gem_object_max_page_size()
> drm/i915/vm_bind: Support partially mapped vma resource
> drm/i915/vm_bind: Add support to create persistent vma
> drm/i915/vm_bind: Implement bind and unbind of object
> drm/i915/vm_bind: Support for VM private BOs
> drm/i915/vm_bind: Add support to handle object evictions
> drm/i915/vm_bind: Support persistent vma activeness tracking
> drm/i915/vm_bind: Add out fence support
> drm/i915/vm_bind: Abstract out common execbuf functions
> drm/i915/vm_bind: Use common execbuf functions in execbuf path
> drm/i915/vm_bind: Implement I915_GEM_EXECBUFFER3 ioctl
> drm/i915/vm_bind: Update i915_vma_verify_bind_complete()
> drm/i915/vm_bind: Expose i915_request_await_bind()
> drm/i915/vm_bind: Handle persistent vmas in execbuf3
> drm/i915/vm_bind: userptr dma-resv changes
> drm/i915/vm_bind: Limit vm_bind mode to non-recoverable contexts
> drm/i915/vm_bind: Add uapi for user to enable vm_bind_mode
> drm/i915/vm_bind: Render VM_BIND documentation
> drm/i915/vm_bind: Async vm_unbind support
> drm/i915/vm_bind: Properly build persistent map sg table
> drm/i915/vm_bind: Support capture of persistent mappings
>
> Documentation/gpu/i915.rst | 78 +-
> drivers/gpu/drm/i915/Makefile | 3 +
> drivers/gpu/drm/i915/gem/i915_gem_context.c | 43 +-
> drivers/gpu/drm/i915/gem/i915_gem_context.h | 17 +
> drivers/gpu/drm/i915/gem/i915_gem_create.c | 72 +-
> drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 6 +
> .../gpu/drm/i915/gem/i915_gem_execbuffer.c | 522 +----------
> .../gpu/drm/i915/gem/i915_gem_execbuffer3.c | 872 ++++++++++++++++++
> .../drm/i915/gem/i915_gem_execbuffer_common.c | 671 ++++++++++++++
> .../drm/i915/gem/i915_gem_execbuffer_common.h | 76 ++
> drivers/gpu/drm/i915/gem/i915_gem_ioctls.h | 2 +
> drivers/gpu/drm/i915/gem/i915_gem_object.c | 3 +
> drivers/gpu/drm/i915/gem/i915_gem_object.h | 2 +
> .../gpu/drm/i915/gem/i915_gem_object_types.h | 6 +
> drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 19 +
> drivers/gpu/drm/i915/gem/i915_gem_vm_bind.h | 30 +
> .../drm/i915/gem/i915_gem_vm_bind_object.c | 463 ++++++++++
> drivers/gpu/drm/i915/gt/intel_gtt.c | 22 +
> drivers/gpu/drm/i915/gt/intel_gtt.h | 28 +
> drivers/gpu/drm/i915/i915_driver.c | 4 +
> drivers/gpu/drm/i915/i915_drv.h | 2 +
> drivers/gpu/drm/i915/i915_gem.c | 14 +-
> drivers/gpu/drm/i915/i915_gem_gtt.c | 39 +
> drivers/gpu/drm/i915/i915_gem_gtt.h | 3 +
> drivers/gpu/drm/i915/i915_getparam.c | 3 +
> drivers/gpu/drm/i915/i915_gpu_error.c | 52 +-
> drivers/gpu/drm/i915/i915_sw_fence.c | 28 +-
> drivers/gpu/drm/i915/i915_sw_fence.h | 23 +-
> drivers/gpu/drm/i915/i915_vma.c | 301 +++++-
> drivers/gpu/drm/i915/i915_vma.h | 70 +-
> drivers/gpu/drm/i915/i915_vma_types.h | 43 +
> include/uapi/drm/i915_drm.h | 281 +++++-
> 32 files changed, 3245 insertions(+), 553 deletions(-)
> create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_execbuffer3.c
> create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_execbuffer_common.c
> create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_execbuffer_common.h
> create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_vm_bind.h
> create mode 100644 drivers/gpu/drm/i915/gem/i915_gem_vm_bind_object.c
>
next prev parent reply other threads:[~2023-02-02 1:55 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-18 7:15 [Intel-gfx] [PATCH v10 00/23] drm/i915/vm_bind: Add VM_BIND functionality Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 01/23] drm/i915/vm_bind: Expose vm lookup function Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 02/23] drm/i915/vm_bind: Add __i915_sw_fence_await_reservation() Niranjana Vishwanathapura
2023-02-01 17:14 ` Andi Shyti
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 03/23] drm/i915/vm_bind: Expose i915_gem_object_max_page_size() Niranjana Vishwanathapura
2023-02-01 17:23 ` Andi Shyti
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 04/23] drm/i915/vm_bind: Support partially mapped vma resource Niranjana Vishwanathapura
2023-02-01 17:25 ` Andi Shyti
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 05/23] drm/i915/vm_bind: Add support to create persistent vma Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 06/23] drm/i915/vm_bind: Implement bind and unbind of object Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 07/23] drm/i915/vm_bind: Support for VM private BOs Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 08/23] drm/i915/vm_bind: Add support to handle object evictions Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 09/23] drm/i915/vm_bind: Support persistent vma activeness tracking Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 10/23] drm/i915/vm_bind: Add out fence support Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 11/23] drm/i915/vm_bind: Abstract out common execbuf functions Niranjana Vishwanathapura
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 12/23] drm/i915/vm_bind: Use common execbuf functions in execbuf path Niranjana Vishwanathapura
2023-02-02 16:04 ` Andi Shyti
2023-01-18 7:15 ` [Intel-gfx] [PATCH v10 13/23] drm/i915/vm_bind: Implement I915_GEM_EXECBUFFER3 ioctl Niranjana Vishwanathapura
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 14/23] drm/i915/vm_bind: Update i915_vma_verify_bind_complete() Niranjana Vishwanathapura
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 15/23] drm/i915/vm_bind: Expose i915_request_await_bind() Niranjana Vishwanathapura
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 16/23] drm/i915/vm_bind: Handle persistent vmas in execbuf3 Niranjana Vishwanathapura
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 17/23] drm/i915/vm_bind: userptr dma-resv changes Niranjana Vishwanathapura
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 18/23] drm/i915/vm_bind: Limit vm_bind mode to non-recoverable contexts Niranjana Vishwanathapura
2023-02-02 16:11 ` Andi Shyti
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 19/23] drm/i915/vm_bind: Add uapi for user to enable vm_bind_mode Niranjana Vishwanathapura
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 20/23] drm/i915/vm_bind: Render VM_BIND documentation Niranjana Vishwanathapura
2023-02-02 16:38 ` Andi Shyti
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 21/23] drm/i915/vm_bind: Async vm_unbind support Niranjana Vishwanathapura
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 22/23] drm/i915/vm_bind: Properly build persistent map sg table Niranjana Vishwanathapura
2023-01-18 12:49 ` Matthew Auld
2023-02-02 16:51 ` Andi Shyti
2023-01-18 7:16 ` [Intel-gfx] [PATCH v10 23/23] drm/i915/vm_bind: Support capture of persistent mappings Niranjana Vishwanathapura
2023-01-18 12:45 ` Matthew Auld
2023-01-18 18:19 ` Niranjana Vishwanathapura
2023-01-18 12:46 ` kernel test robot
2023-01-18 20:27 ` kernel test robot
2023-02-02 17:03 ` Andi Shyti
2023-01-18 8:17 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/vm_bind: Add VM_BIND functionality (rev13) Patchwork
2023-01-18 8:45 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-01-19 8:03 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2023-02-02 1:54 ` Zanoni, Paulo R [this message]
2023-04-13 18:51 ` [Intel-gfx] [PATCH v10 00/23] drm/i915/vm_bind: Add VM_BIND functionality Niranjana Vishwanathapura
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2b1ec972fbf57f63bb900320cec7e774f5f27ea7.camel@intel.com \
--to=paulo.r.zanoni@intel.com \
--cc=christian.koenig@amd.com \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=matthew.auld@intel.com \
--cc=niranjana.vishwanathapura@intel.com \
--cc=thomas.hellstrom@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox