Skip to content

drm/apple: dcp: init dimensions_wq in the announce test fixture (KVM KUnit timeout) - #168

Closed
iconidentify wants to merge 1 commit into
integration/aurorafrom
ci/kunit-dimensions-wq
Closed

iconidentify wants to merge 1 commit into
integration/aurorafrom
ci/kunit-dimensions-wq

Conversation

@iconidentify

Copy link
Copy Markdown
Collaborator

Fixes the KUnit timeout Marcelo hit running the suites under KVM on the Namespace runner: announce_unbind_running_hotplug_test timed out waiting for t->paused, right after a __flush_work WARN from disable_work_sync in dcp_comp_unbind.

Root cause (not a driver race). dcp_comp_unbind() calls disable_work_sync(&dcp->dimensions_wq). The driver initialises that work in dcp_modes_init() (iomfb.c:1444), but the external-announce KUnit fixture doesn't run that path and never initialised dimensions_wq — so every teardown case was syncing an uninitialised work. Under TCG that only warned in __flush_work; under KVM the faster timing let the unbind diverge at that point and miss the test's pause, so the teardown cases timed out.

Fix. Initialise dimensions_wq with the fixture's existing noop worker, exactly like the other works in the setup. This removes the WARN and the timeout — no need to force TCG, so KUnit keeps the KVM speedup (~3.5 min vs ~10). Also drops the six now-unneeded dimensions_wq entries from the CI's KUnit expected-warnings.

I can't reproduce KVM locally (x86 host), so I'm validating on the Namespace runner via the ci:build label on this PR — will confirm the timeout is gone there.

🤖 Generated with Claude Code

@iconidentify iconidentify added the ci:build Build, test and boot the kernel for this PR now label Oct 21, 2026
dcp_comp_unbind() runs disable_work_sync(&dcp->dimensions_wq). The driver
initialises that work in dcp_modes_init() (iomfb.c), but the external-announce
KUnit fixture does not run that path and never initialised it, so every
teardown case flushed an uninitialised work. Under TCG that only warned in
__flush_work; under KVM the faster timing let the unbind diverge there and
miss the test's pause point, so announce_unbind_running_hotplug_test (and its
siblings) timed out waiting for t->paused.

Initialise dimensions_wq with the fixture's noop worker like the other works.
Also drop the six now-unneeded dimensions_wq entries from the CI's KUnit
expected-warnings list.

Signed-off-by: Chris Kearney <[email protected]>
Co-Authored-By: Claude Opus 4.8 <[email protected]>
@iconidentify
iconidentify force-pushed the ci/kunit-dimensions-wq branch from 1f8d532 to 4ce90ae Compare October 21, 2026 05:05
@maralcbr

Copy link
Copy Markdown
Collaborator

Thanks, Chris. Already in via #169 (merged): it initialises dimensions_wq plus the three delayed works dcp_disable_typec_work() disables (typec_relink_wq, hdmi_settle_wq, hdmi_recheck_wq), which this PR leaves uninitialised, and drops the same expected warnings. KUnit passed under KVM on Namespace with no announce splats: https://github.com/omacom/linux-aurora/actions/runs/39546961219

@maralcbr maralcbr closed this Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:build Build, test and boot the kernel for this PR now

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants