All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/syncobj: Use dma_fence_wait for the simple wait case
@ 2018-05-05 10:55 Chris Wilson
  2018-05-05 11:17 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Chris Wilson @ 2018-05-05 10:55 UTC (permalink / raw)
  To: dri-devel; +Cc: intel-gfx

When waiting for a single fence beneath a syncobj, forgo our open coding
for waiting over multiple fences and call the driver specific
dma_fence_wait_timeout(). This gives the opportunity for the driver to
handle it more efficiently then the lcd of signal callbacks, and avoids
the temporary allocations and array iterations.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/drm_syncobj.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c
index d4f4ce484529..c0f787f7a298 100644
--- a/drivers/gpu/drm/drm_syncobj.c
+++ b/drivers/gpu/drm/drm_syncobj.c
@@ -695,6 +695,14 @@ static signed long drm_syncobj_array_wait_timeout(struct drm_syncobj **syncobjs,
 	signed long ret;
 	uint32_t signaled_count, i;
 
+	/* KISS for the common case of waiting for a single submitted fence. */
+	if (count == 1 && (fence = drm_syncobj_fence_get(syncobjs[0]))) {
+		ret = dma_fence_wait_timeout(fence, true, timeout);
+		dma_fence_put(fence);
+		*idx = 0;
+		return ret;
+	}
+
 	entries = kcalloc(count, sizeof(*entries), GFP_KERNEL);
 	if (!entries)
 		return -ENOMEM;
-- 
2.17.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/syncobj: Use dma_fence_wait for the simple wait case
  2018-05-05 10:55 [PATCH] drm/syncobj: Use dma_fence_wait for the simple wait case Chris Wilson
@ 2018-05-05 11:17 ` Patchwork
  2018-05-05 11:33 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-05-05 11:17 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/syncobj: Use dma_fence_wait for the simple wait case
URL   : https://patchwork.freedesktop.org/series/42716/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
401dfcbd6be0 drm/syncobj: Use dma_fence_wait for the simple wait case
-:23: ERROR:ASSIGN_IN_IF: do not use assignment in if condition
#23: FILE: drivers/gpu/drm/drm_syncobj.c:699:
+	if (count == 1 && (fence = drm_syncobj_fence_get(syncobjs[0]))) {

total: 1 errors, 0 warnings, 0 checks, 14 lines checked

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* ✓ Fi.CI.BAT: success for drm/syncobj: Use dma_fence_wait for the simple wait case
  2018-05-05 10:55 [PATCH] drm/syncobj: Use dma_fence_wait for the simple wait case Chris Wilson
  2018-05-05 11:17 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
@ 2018-05-05 11:33 ` Patchwork
  2018-05-05 12:25 ` ✗ Fi.CI.IGT: failure " Patchwork
  2018-05-08  5:51 ` [PATCH] " Daniel Vetter
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-05-05 11:33 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/syncobj: Use dma_fence_wait for the simple wait case
URL   : https://patchwork.freedesktop.org/series/42716/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4149 -> Patchwork_8914 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/42716/revisions/1/mbox/

== Known issues ==

  Here are the changes found in Patchwork_8914 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_module_reload@basic-reload:
      fi-bsw-n3050:       PASS -> DMESG-FAIL (fdo#106373)

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-4200u:       PASS -> DMESG-FAIL (fdo#102614)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-cnl-y3:          PASS -> DMESG-WARN (fdo#104951)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-ivb-3520m:       PASS -> DMESG-WARN (fdo#106084)

    igt@prime_vgem@basic-fence-flip:
      fi-ilk-650:         PASS -> FAIL (fdo#104008)

    
    ==== Possible fixes ====

    igt@debugfs_test@read_all_entries:
      fi-snb-2520m:       INCOMPLETE (fdo#103713) -> PASS

    igt@gem_exec_suspend@basic-s4-devices:
      fi-skl-guc:         FAIL (fdo#105900, fdo#104699) -> PASS +1

    igt@gem_mmap_gtt@basic-small-bo-tiledx:
      fi-gdg-551:         FAIL (fdo#102575) -> PASS

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-cnl-psr:         FAIL (fdo#100368) -> PASS

    igt@kms_frontbuffer_tracking@basic:
      {fi-hsw-peppy}:     DMESG-FAIL (fdo#102614, fdo#106103) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      fi-ivb-3520m:       DMESG-WARN (fdo#106084) -> PASS

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#104699 https://bugs.freedesktop.org/show_bug.cgi?id=104699
  fdo#104951 https://bugs.freedesktop.org/show_bug.cgi?id=104951
  fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
  fdo#106084 https://bugs.freedesktop.org/show_bug.cgi?id=106084
  fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103
  fdo#106373 https://bugs.freedesktop.org/show_bug.cgi?id=106373


== Participating hosts (40 -> 36) ==

  Missing    (4): fi-byt-j1900 fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

    * Linux: CI_DRM_4149 -> Patchwork_8914

  CI_DRM_4149: 6c2ec0dee7d19b798a1de1101175f5a076549cd9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4461: f772d9a910130b3aec8efa4f09ed723618fae656 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8914: 401dfcbd6be0094d1d1ae6818edc544ca7f6b4c4 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4461: 55207ea5154dfaa6d2c128124c50e3be4f9b6440 @ git://anongit.freedesktop.org/piglit


== Linux commits ==

401dfcbd6be0 drm/syncobj: Use dma_fence_wait for the simple wait case

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8914/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* ✗ Fi.CI.IGT: failure for drm/syncobj: Use dma_fence_wait for the simple wait case
  2018-05-05 10:55 [PATCH] drm/syncobj: Use dma_fence_wait for the simple wait case Chris Wilson
  2018-05-05 11:17 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
  2018-05-05 11:33 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-05-05 12:25 ` Patchwork
  2018-05-08  5:51 ` [PATCH] " Daniel Vetter
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-05-05 12:25 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/syncobj: Use dma_fence_wait for the simple wait case
URL   : https://patchwork.freedesktop.org/series/42716/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4149_full -> Patchwork_8914_full =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_8914_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_8914_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/42716/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_8914_full:

  === IGT changes ===

    ==== Possible regressions ====

    igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
      shard-apl:          PASS -> FAIL +2

    igt@kms_flip@flip-vs-panning:
      shard-kbl:          PASS -> FAIL

    
    ==== Warnings ====

    igt@gem_mocs_settings@mocs-rc6-blt:
      shard-kbl:          PASS -> SKIP

    
== Known issues ==

  Here are the changes found in Patchwork_8914_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_flip@blocking-wf_vblank:
      shard-hsw:          PASS -> FAIL (fdo#103928)

    igt@kms_flip@busy-flip-interruptible:
      shard-glk:          PASS -> FAIL (fdo#106088)

    igt@kms_flip@flip-vs-blocking-wf-vblank:
      shard-glk:          PASS -> FAIL (fdo#100368) +1

    igt@kms_flip@flip-vs-expired-vblank:
      shard-hsw:          PASS -> FAIL (fdo#105707)

    igt@kms_mmio_vs_cs_flip@setcrtc_vs_cs_flip:
      shard-kbl:          PASS -> DMESG-WARN (fdo#103558, fdo#105602) +15

    igt@kms_rotation_crc@primary-rotation-90:
      shard-apl:          PASS -> FAIL (fdo#103925)

    igt@kms_vblank@pipe-c-ts-continuation-suspend:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665) +1

    
    ==== Possible fixes ====

    igt@kms_flip@absolute-wf_vblank-interruptible:
      shard-glk:          FAIL (fdo#106087) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      shard-kbl:          INCOMPLETE (fdo#103665) -> PASS

    igt@kms_setmode@basic:
      shard-kbl:          FAIL (fdo#99912) -> PASS

    igt@prime_vgem@basic-fence-flip:
      shard-kbl:          DMESG-WARN (fdo#106247) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
  fdo#103928 https://bugs.freedesktop.org/show_bug.cgi?id=103928
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#105707 https://bugs.freedesktop.org/show_bug.cgi?id=105707
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087
  fdo#106088 https://bugs.freedesktop.org/show_bug.cgi?id=106088
  fdo#106247 https://bugs.freedesktop.org/show_bug.cgi?id=106247
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (6 -> 6) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4149 -> Patchwork_8914

  CI_DRM_4149: 6c2ec0dee7d19b798a1de1101175f5a076549cd9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4461: f772d9a910130b3aec8efa4f09ed723618fae656 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8914: 401dfcbd6be0094d1d1ae6818edc544ca7f6b4c4 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4461: 55207ea5154dfaa6d2c128124c50e3be4f9b6440 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8914/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/syncobj: Use dma_fence_wait for the simple wait case
  2018-05-05 10:55 [PATCH] drm/syncobj: Use dma_fence_wait for the simple wait case Chris Wilson
                   ` (2 preceding siblings ...)
  2018-05-05 12:25 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2018-05-08  5:51 ` Daniel Vetter
  3 siblings, 0 replies; 5+ messages in thread
From: Daniel Vetter @ 2018-05-08  5:51 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx, dri-devel

On Sat, May 05, 2018 at 11:55:49AM +0100, Chris Wilson wrote:
> When waiting for a single fence beneath a syncobj, forgo our open coding
> for waiting over multiple fences and call the driver specific
> dma_fence_wait_timeout(). This gives the opportunity for the driver to
> handle it more efficiently then the lcd of signal callbacks, and avoids
> the temporary allocations and array iterations.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Aside: Do the igts test both the single and multi-case?
-Daniel
> ---
>  drivers/gpu/drm/drm_syncobj.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c
> index d4f4ce484529..c0f787f7a298 100644
> --- a/drivers/gpu/drm/drm_syncobj.c
> +++ b/drivers/gpu/drm/drm_syncobj.c
> @@ -695,6 +695,14 @@ static signed long drm_syncobj_array_wait_timeout(struct drm_syncobj **syncobjs,
>  	signed long ret;
>  	uint32_t signaled_count, i;
>  
> +	/* KISS for the common case of waiting for a single submitted fence. */
> +	if (count == 1 && (fence = drm_syncobj_fence_get(syncobjs[0]))) {
> +		ret = dma_fence_wait_timeout(fence, true, timeout);
> +		dma_fence_put(fence);
> +		*idx = 0;
> +		return ret;
> +	}
> +
>  	entries = kcalloc(count, sizeof(*entries), GFP_KERNEL);
>  	if (!entries)
>  		return -ENOMEM;
> -- 
> 2.17.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-05-08  5:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-05 10:55 [PATCH] drm/syncobj: Use dma_fence_wait for the simple wait case Chris Wilson
2018-05-05 11:17 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2018-05-05 11:33 ` ✓ Fi.CI.BAT: success " Patchwork
2018-05-05 12:25 ` ✗ Fi.CI.IGT: failure " Patchwork
2018-05-08  5:51 ` [PATCH] " Daniel Vetter

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.