✗ Fi.CI.BUILD: failure for series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all(). (rev2)
== Series Details == Series: series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all(). (rev2) URL : https://patchwork.freedesktop.org/series/129478/ State : failure == Summary == Error: patch https://patchwork.freedesktop.org/api/1.0/series/129478/revisions/2/mbox/ not applied Applying: drm: Add drm_vblank_work_flush_all(). Applying: drm/i915: Use vblank worker to unpin old legacy cursor fb safely Using index info to reconstruct a base tree... M drivers/gpu/drm/i915/display/intel_cursor.c M drivers/gpu/drm/i915/display/intel_display.c M drivers/gpu/drm/i915/display/intel_display_types.h Falling back to patching base and 3-way merge... Auto-merging drivers/gpu/drm/i915/display/intel_display_types.h Auto-merging drivers/gpu/drm/i915/display/intel_display.c CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_display.c Auto-merging drivers/gpu/drm/i915/display/intel_cursor.c error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0002 drm/i915: Use vblank worker to unpin old legacy cursor fb safely When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". Build failed, no error log produced
✓ Fi.CI.BAT: success for series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all().
== Series Details == Series: series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all(). URL : https://patchwork.freedesktop.org/series/129478/ State : success == Summary == CI Bug Log - changes from CI_DRM_14212 -> Patchwork_129478v1 Summary --- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_129478v1/index.html Participating hosts (38 -> 36) -- Additional (1): fi-bsw-n3050 Missing(3): bat-mtlp-8 fi-snb-2520m fi-pnv-d510 Known issues Here are the changes found in Patchwork_129478v1 that come from known issues: ### IGT changes ### Issues hit * igt@gem_lmem_swapping@random-engines: - fi-bsw-n3050: NOTRUN -> [SKIP][1] ([fdo#109271]) +15 other tests skip [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_129478v1/fi-bsw-n3050/igt@gem_lmem_swapp...@random-engines.html Possible fixes * igt@i915_selftest@live@gt_pm: - bat-adln-1: [DMESG-FAIL][2] ([i915#10010]) -> [PASS][3] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14212/bat-adln-1/igt@i915_selftest@live@gt_pm.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_129478v1/bat-adln-1/igt@i915_selftest@live@gt_pm.html Warnings * igt@i915_module_load@reload: - fi-kbl-7567u: [DMESG-WARN][4] ([i915#180] / [i915#8585]) -> [DMESG-WARN][5] ([i915#180] / [i915#1982] / [i915#8585]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14212/fi-kbl-7567u/igt@i915_module_l...@reload.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_129478v1/fi-kbl-7567u/igt@i915_module_l...@reload.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [i915#10010]: https://gitlab.freedesktop.org/drm/intel/issues/10010 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#8585]: https://gitlab.freedesktop.org/drm/intel/issues/8585 Build changes - * Linux: CI_DRM_14212 -> Patchwork_129478v1 CI-20190529: 20190529 CI_DRM_14212: 1dd92467500a5ead3e44bbdfe15e064dd79b65ef @ git://anongit.freedesktop.org/gfx-ci/linux IGT_7702: bf075a74ece1956fc0e554291591b9da3eab54cf @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_129478v1: 1dd92467500a5ead3e44bbdfe15e064dd79b65ef @ git://anongit.freedesktop.org/gfx-ci/linux ### Linux commits 292a73b38172 drm/i915: Use the same vblank worker for atomic unpin 12cd415a24ea drm/i915: Use vblank worker to unpin old legacy cursor fb safely 244e94a83dbb drm: Add drm_vblank_work_flush_all(). == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_129478v1/index.html
✗ Fi.CI.SPARSE: warning for series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all().
== Series Details == Series: series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all(). URL : https://patchwork.freedesktop.org/series/129478/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol
✗ Fi.CI.CHECKPATCH: warning for series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all().
== Series Details == Series: series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all(). URL : https://patchwork.freedesktop.org/series/129478/ State : warning == Summary == Error: dim checkpatch failed 28807ec6d593 drm: Add drm_vblank_work_flush_all(). -:33: WARNING:WAITQUEUE_ACTIVE: waitqueue_active without comment #33: FILE: drivers/gpu/drm/drm_vblank_work.c:249: + waitqueue_active(>work_wait_queue), total: 0 errors, 1 warnings, 0 checks, 41 lines checked fa478472ce0a drm/i915: Use vblank worker to unpin old legacy cursor fb safely 0383330aea1d drm/i915: Use the same vblank worker for atomic unpin -:37: WARNING:TYPO_SPELLING: 'succesful' may be misspelled - perhaps 'successful'? #37: FILE: drivers/gpu/drm/i915/display/intel_atomic_plane.c:1168: +* This branch can only ever be called after plane update is succesful, ^ -:118: WARNING:LONG_LINE: line length of 105 exceeds 100 columns #118: FILE: drivers/gpu/drm/i915/display/intel_crtc.c:641: + drm_crtc_accurate_vblank_count(>base) + 1, total: 0 errors, 2 warnings, 0 checks, 110 lines checked
[CI 1/3] drm: Add drm_vblank_work_flush_all().
From: Maarten Lankhorst In some cases we want to flush all vblank work, right before vblank_off for example. Add a simple function to make this possible. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/drm_vblank_work.c | 22 ++ include/drm/drm_vblank_work.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/drivers/gpu/drm/drm_vblank_work.c b/drivers/gpu/drm/drm_vblank_work.c index 43cd5c0f4f6fb..ff86f2b2e052e 100644 --- a/drivers/gpu/drm/drm_vblank_work.c +++ b/drivers/gpu/drm/drm_vblank_work.c @@ -232,6 +232,28 @@ void drm_vblank_work_flush(struct drm_vblank_work *work) } EXPORT_SYMBOL(drm_vblank_work_flush); +/** + * drm_vblank_work_flush_all - flush all currently pending vblank work on crtc. + * @crtc: crtc for which vblank work to flush + * + * Wait until all currently queued vblank work on @crtc + * has finished executing once. + */ +void drm_vblank_work_flush_all(struct drm_crtc *crtc) +{ + struct drm_device *dev = crtc->dev; + struct drm_vblank_crtc *vblank = >vblank[drm_crtc_index(crtc)]; + + spin_lock_irq(>event_lock); + wait_event_lock_irq(vblank->work_wait_queue, + waitqueue_active(>work_wait_queue), + dev->event_lock); + spin_unlock_irq(>event_lock); + + kthread_flush_worker(vblank->worker); +} +EXPORT_SYMBOL(drm_vblank_work_flush_all); + /** * drm_vblank_work_init - initialize a vblank work item * @work: vblank work item diff --git a/include/drm/drm_vblank_work.h b/include/drm/drm_vblank_work.h index eb41d0810c4ff..e04d436b72973 100644 --- a/include/drm/drm_vblank_work.h +++ b/include/drm/drm_vblank_work.h @@ -17,6 +17,7 @@ struct drm_crtc; * drm_vblank_work_init() * drm_vblank_work_cancel_sync() * drm_vblank_work_flush() + * drm_vblank_work_flush_all() */ struct drm_vblank_work { /** @@ -67,5 +68,6 @@ void drm_vblank_work_init(struct drm_vblank_work *work, struct drm_crtc *crtc, void (*func)(struct kthread_work *work)); bool drm_vblank_work_cancel_sync(struct drm_vblank_work *work); void drm_vblank_work_flush(struct drm_vblank_work *work); +void drm_vblank_work_flush_all(struct drm_crtc *crtc); #endif /* !_DRM_VBLANK_WORK_H_ */ -- 2.43.0
✗ Fi.CI.BUILD: failure for series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all(). (rev2)
== Series Details == Series: series starting with [CI,1/3] drm: Add drm_vblank_work_flush_all(). (rev2) URL : https://patchwork.freedesktop.org/series/129369/ State : failure == Summary == Error: patch https://patchwork.freedesktop.org/api/1.0/series/129369/revisions/2/mbox/ not applied Applying: drm: Add drm_vblank_work_flush_all(). Applying: drm/i915: Use vblank worker to unpin old legacy cursor fb safely Using index info to reconstruct a base tree... M drivers/gpu/drm/i915/display/intel_cursor.c M drivers/gpu/drm/i915/display/intel_display.c M drivers/gpu/drm/i915/display/intel_display_types.h Falling back to patching base and 3-way merge... Auto-merging drivers/gpu/drm/i915/display/intel_display_types.h Auto-merging drivers/gpu/drm/i915/display/intel_display.c Auto-merging drivers/gpu/drm/i915/display/intel_cursor.c CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_cursor.c error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0002 drm/i915: Use vblank worker to unpin old legacy cursor fb safely When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". Build failed, no error log produced
[CI 1/3] drm: Add drm_vblank_work_flush_all().
From: Maarten Lankhorst In some cases we want to flush all vblank work, right before vblank_off for example. Add a simple function to make this possible. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/drm_vblank_work.c | 22 ++ include/drm/drm_vblank_work.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/drivers/gpu/drm/drm_vblank_work.c b/drivers/gpu/drm/drm_vblank_work.c index 43cd5c0f4f6fb..ff86f2b2e052e 100644 --- a/drivers/gpu/drm/drm_vblank_work.c +++ b/drivers/gpu/drm/drm_vblank_work.c @@ -232,6 +232,28 @@ void drm_vblank_work_flush(struct drm_vblank_work *work) } EXPORT_SYMBOL(drm_vblank_work_flush); +/** + * drm_vblank_work_flush_all - flush all currently pending vblank work on crtc. + * @crtc: crtc for which vblank work to flush + * + * Wait until all currently queued vblank work on @crtc + * has finished executing once. + */ +void drm_vblank_work_flush_all(struct drm_crtc *crtc) +{ + struct drm_device *dev = crtc->dev; + struct drm_vblank_crtc *vblank = >vblank[drm_crtc_index(crtc)]; + + spin_lock_irq(>event_lock); + wait_event_lock_irq(vblank->work_wait_queue, + waitqueue_active(>work_wait_queue), + dev->event_lock); + spin_unlock_irq(>event_lock); + + kthread_flush_worker(vblank->worker); +} +EXPORT_SYMBOL(drm_vblank_work_flush_all); + /** * drm_vblank_work_init - initialize a vblank work item * @work: vblank work item diff --git a/include/drm/drm_vblank_work.h b/include/drm/drm_vblank_work.h index eb41d0810c4ff..e04d436b72973 100644 --- a/include/drm/drm_vblank_work.h +++ b/include/drm/drm_vblank_work.h @@ -17,6 +17,7 @@ struct drm_crtc; * drm_vblank_work_init() * drm_vblank_work_cancel_sync() * drm_vblank_work_flush() + * drm_vblank_work_flush_all() */ struct drm_vblank_work { /** @@ -67,5 +68,6 @@ void drm_vblank_work_init(struct drm_vblank_work *work, struct drm_crtc *crtc, void (*func)(struct kthread_work *work)); bool drm_vblank_work_cancel_sync(struct drm_vblank_work *work); void drm_vblank_work_flush(struct drm_vblank_work *work); +void drm_vblank_work_flush_all(struct drm_crtc *crtc); #endif /* !_DRM_VBLANK_WORK_H_ */ -- 2.43.0
[[CI] 1/3] drm: Add drm_vblank_work_flush_all().
From: Maarten Lankhorst In some cases we want to flush all vblank work, right before vblank_off for example. Add a simple function to make this possible. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/drm_vblank_work.c | 22 ++ include/drm/drm_vblank_work.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/drivers/gpu/drm/drm_vblank_work.c b/drivers/gpu/drm/drm_vblank_work.c index 43cd5c0f4f6fb..ff86f2b2e052e 100644 --- a/drivers/gpu/drm/drm_vblank_work.c +++ b/drivers/gpu/drm/drm_vblank_work.c @@ -232,6 +232,28 @@ void drm_vblank_work_flush(struct drm_vblank_work *work) } EXPORT_SYMBOL(drm_vblank_work_flush); +/** + * drm_vblank_work_flush_all - flush all currently pending vblank work on crtc. + * @crtc: crtc for which vblank work to flush + * + * Wait until all currently queued vblank work on @crtc + * has finished executing once. + */ +void drm_vblank_work_flush_all(struct drm_crtc *crtc) +{ + struct drm_device *dev = crtc->dev; + struct drm_vblank_crtc *vblank = >vblank[drm_crtc_index(crtc)]; + + spin_lock_irq(>event_lock); + wait_event_lock_irq(vblank->work_wait_queue, + waitqueue_active(>work_wait_queue), + dev->event_lock); + spin_unlock_irq(>event_lock); + + kthread_flush_worker(vblank->worker); +} +EXPORT_SYMBOL(drm_vblank_work_flush_all); + /** * drm_vblank_work_init - initialize a vblank work item * @work: vblank work item diff --git a/include/drm/drm_vblank_work.h b/include/drm/drm_vblank_work.h index eb41d0810c4ff..e04d436b72973 100644 --- a/include/drm/drm_vblank_work.h +++ b/include/drm/drm_vblank_work.h @@ -17,6 +17,7 @@ struct drm_crtc; * drm_vblank_work_init() * drm_vblank_work_cancel_sync() * drm_vblank_work_flush() + * drm_vblank_work_flush_all() */ struct drm_vblank_work { /** @@ -67,5 +68,6 @@ void drm_vblank_work_init(struct drm_vblank_work *work, struct drm_crtc *crtc, void (*func)(struct kthread_work *work)); bool drm_vblank_work_cancel_sync(struct drm_vblank_work *work); void drm_vblank_work_flush(struct drm_vblank_work *work); +void drm_vblank_work_flush_all(struct drm_crtc *crtc); #endif /* !_DRM_VBLANK_WORK_H_ */ -- 2.43.0