-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KMS stale dlist alloc changes #5684
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6by9
force-pushed
the
rpi-6.1.y-2712
branch
2 times, most recently
from
October 27, 2023 15:47
8f1eb80
to
36ed2f9
Compare
I've been running this on kodi system for a couple of days without issue (but I wasn't getting the dlist error before). |
When factoring out __vc4_hvs_stop_channel, the logic got inverted from if (condition) // stop channel to if (condition) goto out //stop channel out: and also changed the exact register writes used to stop the channel. Correct the logic so that the channel is actually stopped, and revert to the original register writes. Fixes: 6d01a10 ("drm/vc4: crtc: Move HVS init and close to a function") Signed-off-by: Dave Stevenson <[email protected]>
The reset condition for the EMPTY flag in DISPSTATx is 0, so seeing as we've just reset the pipeline there is no guarantee that the flag will denote empty if it hasn't been enabled. Drop the WARN. Signed-off-by: Dave Stevenson <[email protected]>
The code handling freeing stale dlists had 2 issues: - it disabled the interrupt as soon as the first EOF interrupt occurred, even if it didn't clear all stale allocations, thus leading to stale entries - It didn't free stale entries from disabled channels, so eg "kmstest -c 0" could leave a stale alloc on channel 1 floating around. Keep the interrupt enabled whilst there are any outstanding allocs, and discard those on disabled channels. This second channel does require us to call vc4_hvs_stop_channel from vc4_crtc_atomic_disable so that the channel actually gets stopped. Signed-off-by: Dave Stevenson <[email protected]>
Users are reporting running out of DLIST memory. Add a debugfs file to dump out all the allocations. Signed-off-by: Dave Stevenson <[email protected]>
Signed-off-by: Dave Stevenson <[email protected]>
Rebased and updated. |
popcornmix
added a commit
to raspberrypi/firmware
that referenced
this pull request
Nov 21, 2023
kernel: KMS stale dlist alloc changes See: raspberrypi/linux#5684 kernel: drm/vc4: crtc: Support odd horizontal timings on BCM2712 See: raspberrypi/linux#5679 kernel: spi: dw-dma: Get the last DMA scoop out of the FIFO See: raspberrypi/linux#5699 kernel: defconfigs: Drop FB_UDL from all Pi defconfigs See: raspberrypi/linux#5702 kernel: RP1 GPIO header SDIO support See: raspberrypi/linux#5704 kernel: ASoC: bcm: audioinjector_octo: Add soundcard owner See: raspberrypi/linux#5705 kernel: drivers: media: imx708: Tweak broken line correction parameter See: raspberrypi/linux#5701
popcornmix
added a commit
to raspberrypi/rpi-firmware
that referenced
this pull request
Nov 21, 2023
kernel: KMS stale dlist alloc changes See: raspberrypi/linux#5684 kernel: drm/vc4: crtc: Support odd horizontal timings on BCM2712 See: raspberrypi/linux#5679 kernel: spi: dw-dma: Get the last DMA scoop out of the FIFO See: raspberrypi/linux#5699 kernel: defconfigs: Drop FB_UDL from all Pi defconfigs See: raspberrypi/linux#5702 kernel: RP1 GPIO header SDIO support See: raspberrypi/linux#5704 kernel: ASoC: bcm: audioinjector_octo: Add soundcard owner See: raspberrypi/linux#5705 kernel: drivers: media: imx708: Tweak broken line correction parameter See: raspberrypi/linux#5701
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#5674 "ERROR Failed to allocate DLIST entry: -28"
I haven't reproduced any failures, but have noted that we were getting stale allocs stuck for some time due to issues in the logic that freed them.
I have some reservations about actually disabling the HVS channel. It could be worked around by keeping an
enabled
state variable, but it feels nicer to actually clear the hardware. It needs a bit more testing to ensure we don't get the stuck pixel issue (not observed so far).Currently not tested on a Pi5, hence draft PR.