Message ID | 20230606163942.330052-1-luciano.coelho@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | drm/i915: implement internal workqueues | expand |
On 07/06/2023 09:34, Patchwork wrote: 8< > IGT changes > > > Possible regressions > > * > > igt@i915_selftest@mock@requests: > > o > > shard-apl: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13237/shard-apl1/igt@i915_selftest@mock@requests.html> -> INCOMPLETE <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118947v2/shard-apl1/igt@i915_selftest@mock@requests.html> > > o > > shard-snb: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13237/shard-snb6/igt@i915_selftest@mock@requests.html> -> INCOMPLETE <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118947v2/shard-snb6/igt@i915_selftest@mock@requests.html> > > o > > shard-glk: PASS > <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13237/shard-glk9/igt@i915_selftest@mock@requests.html> -> INCOMPLETE <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118947v2/shard-glk6/igt@i915_selftest@mock@requests.html> Could be missing wq creation/destruction in mock_gem_device/mock_device_release. Regards, Tvrtko
On Tue, 06 Jun 2023, Luca Coelho <luciano.coelho@intel.com> wrote: > Hi, > > This series implements internal workqueues in the i915 driver in order > to avoid using the system queue. We add one generic workqueue in the > drm_i915_private structure, one specific for wake references and one > in a self-test. > > This is based on Tetsuo's work[1] and is required to get rid of the > flush_scheduled_work() usage. > > As discussed, we can either take Tetsuo's implementation first, which > uses a module-global workqueue, and then my series on top of that, to > change the implementation to per-device workqueues, or apply my series > directly. And a third option would be to keep the workqueue as > module-global. I'm fine with any of this options. It's up to the > maintainers to decide which one to take. > > In v2: > * Removed per-engine workqueue and wakeref-specific queue; > * Renamed the workqueue name from "i915-wq" to "unordered_wq"; > * Added comment about when the new workqueue should be used; > * Changed wakeref structs to store i915 instead of rpm; > > In v3: > * Fixed queue to destroy in the init error path; > * Improved the new queue's description a bit; > * Removed stray empty-line removal; > > In v4: > * Fixed the queue used in __intel_wakeref_put_last(), we were > accidentally using the ordered workqueue. Thanks, Tvrtko! > > In v5: > * Fix compilation error cause by change from dev_priv to i915 in > intel_hdcp_enable(). > > Please review. mock i915 device also needs to have i915->unordered_wq. mock_gem_device() in selftests/mock_gem_device.c https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_118947v2/shard-apl1/igt@i915_selftest@mock@requests.html BR, Jani. > > [1] https://patchwork.freedesktop.org/series/114608/ > > Cheers, > Luca. > > > Luca Coelho (3): > drm/i915: use pointer to i915 instead of rpm in wakeref > drm/i915: add a dedicated workqueue inside drm_i915_private > drm/i915/selftests: add local workqueue for SW fence selftest > > drivers/gpu/drm/i915/display/intel_display.c | 5 ++-- > .../drm/i915/display/intel_display_driver.c | 2 +- > drivers/gpu/drm/i915/display/intel_dmc.c | 2 +- > drivers/gpu/drm/i915/display/intel_dp.c | 2 +- > .../drm/i915/display/intel_dp_link_training.c | 3 ++- > drivers/gpu/drm/i915/display/intel_drrs.c | 4 +++- > drivers/gpu/drm/i915/display/intel_fbc.c | 2 +- > drivers/gpu/drm/i915/display/intel_fbdev.c | 3 ++- > drivers/gpu/drm/i915/display/intel_hdcp.c | 23 +++++++++++-------- > drivers/gpu/drm/i915/display/intel_hotplug.c | 18 ++++++++++----- > drivers/gpu/drm/i915/display/intel_opregion.c | 3 ++- > drivers/gpu/drm/i915/display/intel_pps.c | 4 +++- > drivers/gpu/drm/i915/display/intel_psr.c | 8 ++++--- > drivers/gpu/drm/i915/gt/intel_engine_pm.c | 4 +--- > .../drm/i915/gt/intel_execlists_submission.c | 5 ++-- > .../gpu/drm/i915/gt/intel_gt_buffer_pool.c | 10 ++++---- > drivers/gpu/drm/i915/gt/intel_gt_irq.c | 2 +- > drivers/gpu/drm/i915/gt/intel_gt_pm.c | 2 +- > drivers/gpu/drm/i915/gt/intel_gt_requests.c | 10 ++++---- > drivers/gpu/drm/i915/gt/intel_reset.c | 2 +- > drivers/gpu/drm/i915/gt/intel_rps.c | 20 ++++++++-------- > drivers/gpu/drm/i915/gt/selftest_engine_cs.c | 2 +- > drivers/gpu/drm/i915/i915_driver.c | 13 +++++++++++ > drivers/gpu/drm/i915/i915_drv.h | 10 ++++++++ > drivers/gpu/drm/i915/i915_request.c | 2 +- > drivers/gpu/drm/i915/intel_runtime_pm.c | 2 +- > drivers/gpu/drm/i915/intel_wakeref.c | 22 ++++++++++-------- > drivers/gpu/drm/i915/intel_wakeref.h | 12 +++++----- > .../gpu/drm/i915/selftests/i915_sw_fence.c | 16 ++++++++++--- > 29 files changed, 136 insertions(+), 77 deletions(-)