From: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: paulo.r.zanoni@intel.com, jani.nikula@intel.com, thomas.hellstrom@intel.com, matthew.auld@intel.com, daniel.vetter@intel.com, christian.koenig@amd.com Subject: [Intel-gfx] [PATCH v8 13/22] drm/i915/vm_bind: Update i915_vma_verify_bind_complete() Date: Mon, 28 Nov 2022 23:26:26 -0800 [thread overview] Message-ID: <20221129072635.847-14-niranjana.vishwanathapura@intel.com> (raw) In-Reply-To: <20221129072635.847-1-niranjana.vishwanathapura@intel.com> Ensure i915_vma_verify_bind_complete() handles case where bind is not initiated. Also make it non static, add documentation and move it out of CONFIG_DRM_I915_DEBUG_GEM. v2: Fix fence leak Reviewed-by: Matthew Auld <matthew.auld@intel.com> Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com> --- drivers/gpu/drm/i915/i915_vma.c | 22 ++++++++++++++++------ drivers/gpu/drm/i915/i915_vma.h | 1 + 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c index c29e22b1cfea..e382c8a6cac4 100644 --- a/drivers/gpu/drm/i915/i915_vma.c +++ b/drivers/gpu/drm/i915/i915_vma.c @@ -441,12 +441,25 @@ int i915_vma_sync(struct i915_vma *vma) return i915_vm_sync(vma->vm); } -#if IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM) -static int i915_vma_verify_bind_complete(struct i915_vma *vma) +/** + * i915_vma_verify_bind_complete() - Check for the bind completion of the vma + * @vma: vma to check for bind completion + * + * As the fence reference is obtained under RCU, no locking is required by + * the caller. + * + * Returns: 0 if the vma bind is completed. Error code otherwise. + */ +int i915_vma_verify_bind_complete(struct i915_vma *vma) { - struct dma_fence *fence = i915_active_fence_get(&vma->active.excl); + struct dma_fence *fence; int err; + /* Ensure vma bind is initiated */ + if (!i915_vma_is_bound(vma, I915_VMA_BIND_MASK)) + return -EINVAL; + + fence = i915_active_fence_get(&vma->active.excl); if (!fence) return 0; @@ -459,9 +472,6 @@ static int i915_vma_verify_bind_complete(struct i915_vma *vma) return err; } -#else -#define i915_vma_verify_bind_complete(_vma) 0 -#endif I915_SELFTEST_EXPORT void i915_vma_resource_init_from_vma(struct i915_vma_resource *vma_res, diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h index 25e4aa69cd89..9a411a79badd 100644 --- a/drivers/gpu/drm/i915/i915_vma.h +++ b/drivers/gpu/drm/i915/i915_vma.h @@ -441,6 +441,7 @@ void i915_vma_make_purgeable(struct i915_vma *vma); int i915_vma_wait_for_bind(struct i915_vma *vma); int i915_vma_sync(struct i915_vma *vma); +int i915_vma_verify_bind_complete(struct i915_vma *vma); /** * i915_vma_get_current_resource - Get the current resource of the vma -- 2.21.0.rc0.32.g243a4c7e27
WARNING: multiple messages have this Message-ID (diff)
From: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: matthew.brost@intel.com, paulo.r.zanoni@intel.com, tvrtko.ursulin@intel.com, jani.nikula@intel.com, lionel.g.landwerlin@intel.com, thomas.hellstrom@intel.com, matthew.auld@intel.com, jason@jlekstrand.net, andi.shyti@linux.intel.com, daniel.vetter@intel.com, christian.koenig@amd.com Subject: [PATCH v8 13/22] drm/i915/vm_bind: Update i915_vma_verify_bind_complete() Date: Mon, 28 Nov 2022 23:26:26 -0800 [thread overview] Message-ID: <20221129072635.847-14-niranjana.vishwanathapura@intel.com> (raw) In-Reply-To: <20221129072635.847-1-niranjana.vishwanathapura@intel.com> Ensure i915_vma_verify_bind_complete() handles case where bind is not initiated. Also make it non static, add documentation and move it out of CONFIG_DRM_I915_DEBUG_GEM. v2: Fix fence leak Reviewed-by: Matthew Auld <matthew.auld@intel.com> Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com> --- drivers/gpu/drm/i915/i915_vma.c | 22 ++++++++++++++++------ drivers/gpu/drm/i915/i915_vma.h | 1 + 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c index c29e22b1cfea..e382c8a6cac4 100644 --- a/drivers/gpu/drm/i915/i915_vma.c +++ b/drivers/gpu/drm/i915/i915_vma.c @@ -441,12 +441,25 @@ int i915_vma_sync(struct i915_vma *vma) return i915_vm_sync(vma->vm); } -#if IS_ENABLED(CONFIG_DRM_I915_DEBUG_GEM) -static int i915_vma_verify_bind_complete(struct i915_vma *vma) +/** + * i915_vma_verify_bind_complete() - Check for the bind completion of the vma + * @vma: vma to check for bind completion + * + * As the fence reference is obtained under RCU, no locking is required by + * the caller. + * + * Returns: 0 if the vma bind is completed. Error code otherwise. + */ +int i915_vma_verify_bind_complete(struct i915_vma *vma) { - struct dma_fence *fence = i915_active_fence_get(&vma->active.excl); + struct dma_fence *fence; int err; + /* Ensure vma bind is initiated */ + if (!i915_vma_is_bound(vma, I915_VMA_BIND_MASK)) + return -EINVAL; + + fence = i915_active_fence_get(&vma->active.excl); if (!fence) return 0; @@ -459,9 +472,6 @@ static int i915_vma_verify_bind_complete(struct i915_vma *vma) return err; } -#else -#define i915_vma_verify_bind_complete(_vma) 0 -#endif I915_SELFTEST_EXPORT void i915_vma_resource_init_from_vma(struct i915_vma_resource *vma_res, diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h index 25e4aa69cd89..9a411a79badd 100644 --- a/drivers/gpu/drm/i915/i915_vma.h +++ b/drivers/gpu/drm/i915/i915_vma.h @@ -441,6 +441,7 @@ void i915_vma_make_purgeable(struct i915_vma *vma); int i915_vma_wait_for_bind(struct i915_vma *vma); int i915_vma_sync(struct i915_vma *vma); +int i915_vma_verify_bind_complete(struct i915_vma *vma); /** * i915_vma_get_current_resource - Get the current resource of the vma -- 2.21.0.rc0.32.g243a4c7e27
next prev parent reply other threads:[~2022-11-29 7:28 UTC|newest] Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-11-29 7:26 [PATCH v8 00/22] drm/i915/vm_bind: Add VM_BIND functionality Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 01/22] drm/i915/vm_bind: Expose vm lookup function Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 02/22] drm/i915/vm_bind: Add __i915_sw_fence_await_reservation() Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 03/22] drm/i915/vm_bind: Expose i915_gem_object_max_page_size() Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 04/22] drm/i915/vm_bind: Add support to create persistent vma Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 05/22] drm/i915/vm_bind: Implement bind and unbind of object Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 06/22] drm/i915/vm_bind: Support for VM private BOs Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 07/22] drm/i915/vm_bind: Add support to handle object evictions Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 08/22] drm/i915/vm_bind: Support persistent vma activeness tracking Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 09/22] drm/i915/vm_bind: Add out fence support Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 10/22] drm/i915/vm_bind: Abstract out common execbuf functions Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 11/22] drm/i915/vm_bind: Use common execbuf functions in execbuf path Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 12/22] drm/i915/vm_bind: Implement I915_GEM_EXECBUFFER3 ioctl Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura [this message] 2022-11-29 7:26 ` [PATCH v8 13/22] drm/i915/vm_bind: Update i915_vma_verify_bind_complete() Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 14/22] drm/i915/vm_bind: Expose i915_request_await_bind() Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 15/22] drm/i915/vm_bind: Handle persistent vmas in execbuf3 Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [PATCH v8 16/22] drm/i915/vm_bind: userptr dma-resv changes Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 17/22] drm/i915/vm_bind: Limit vm_bind mode to non-recoverable contexts Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 18/22] drm/i915/vm_bind: Add uapi for user to enable vm_bind_mode Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 19/22] drm/i915/vm_bind: Render VM_BIND documentation Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 20/22] drm/i915/vm_bind: Async vm_unbind support Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 21/22] drm/i915/vm_bind: Properly build persistent map sg table Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-12-12 18:17 ` Matthew Auld 2022-12-12 18:17 ` [Intel-gfx] " Matthew Auld 2022-12-14 4:58 ` Niranjana Vishwanathapura 2022-12-14 4:58 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-11-29 7:26 ` [Intel-gfx] [PATCH v8 22/22] drm/i915/vm_bind: Support capture of persistent mappings Niranjana Vishwanathapura 2022-11-29 7:26 ` Niranjana Vishwanathapura 2022-12-01 10:49 ` Matthew Auld 2022-12-01 10:49 ` [Intel-gfx] " Matthew Auld 2022-12-01 15:27 ` Niranjana Vishwanathapura 2022-12-01 15:27 ` [Intel-gfx] " Niranjana Vishwanathapura 2022-12-01 18:43 ` Niranjana Vishwanathapura 2022-12-06 17:40 ` Matthew Auld 2022-12-08 13:54 ` Niranjana Vishwanathapura 2022-11-29 8:24 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/vm_bind: Add VM_BIND functionality (rev11) Patchwork 2022-11-29 8:24 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork 2022-11-29 8:46 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2022-11-29 11:29 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
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=20221129072635.847-14-niranjana.vishwanathapura@intel.com \ --to=niranjana.vishwanathapura@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=paulo.r.zanoni@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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.