Re: linux-4.4 bisected: kwin5 stuck on kde5 loading screen with radeon

From: Vlastimil Babka
Date: Thu Jan 21 2016 - 04:16:13 EST


On 01/21/2016 09:28 AM, Mario Kleiner wrote:
... just like drm_vblank_pre/post_modeset. That those were broken is a
regression which needs to be fixed anyway. I don't think switching to
drm_vblank_on/off is suitable for stable trees.

Looking at Vlastimil's original post again, I'd say the most likely
culprit is 4dfd6486 ("drm: Use vblank timestamps to guesstimate how many
vblanks were missed").


Yeah, this is what I bisected to.

Yes, i think reverting that one alone would likely fix it by reverting
to the old vblank update logic.

Yep I said in the original mail that reverting on top of 4.4 fixed it. Well not just this single commit, but also some patches on top (e.g. radeon and amdgpu adaptations to that commit, IIRC it wouldn't have compiled otherwise).


Once drm_vblank_off is called, drm_vblank_get will no-op and return an
error, so clients can't enable vblank irqs during the modeset - pageflip
ioctl and waitvblank ioctl would fail while a modeset happens -
hopefully userspace handles this correctly everywhere.

We've fixed xf86-video-ati for this.


I'll hack up a patch for demonstration now.

You're a bit late to that party. :)

http://lists.freedesktop.org/archives/dri-devel/2015-May/083614.html
http://lists.freedesktop.org/archives/dri-devel/2015-July/086451.html



Oops. Just sent out my little (so far untested) creations. Yes, they are
essentially the same as Daniel's patches. The only addition is to also
fix that other potential small race i describe by slightly moving the
xxx_pm_compute_clocks() calls around. And a fix for drm_vblank_get/put
imbalance in radeon_pm if vblank_on/off would be used.

Thanks, I'll test.


-mario