* [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.