Modesetting lock changes breaks vmwgfx since 3.18-rc1
Daniel Vetter
daniel at ffwll.ch
Mon Nov 3 08:10:18 PST 2014
On Mon, Nov 03, 2014 at 11:29:39AM +0100, Thomas Hellstrom wrote:
> Hi!
>
> On 10/31/2014 06:33 PM, Daniel Vetter wrote:
> > On Thu, Oct 30, 2014 at 03:41:31PM +0100, Thomas Hellstrom wrote:
> >> Hi!
> >>
> >> Details in
> >>
> >> https://urldefense.proofpoint.com/v2/url?u=https-3A__bugzilla.redhat.com_show-5Fbug.cgi-3Fid-3D1155825&d=AAIBAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=vpukPkBtpoNQp2IUKuFviOmPNYWVKmen3Jeeu55zmEA&m=lsrU5TbpNlecpBoc0CpsmwopYh2VrihduvgGEIFPsXw&s=uzLKWffads4edz_fJN5-3K2IObzmVFUcH6kty4ObySs&e=
> >>
> >> Can whoever broke the driver please make an effort to fix it up?
> >>
> >> Daniel, You've been named as a suspect. I'm not sure if that is true.
> > Yeah the recent locking frobbing didn't account for the FIXME comment in
> > vmwgfx. Might be good to address that long-term to get vmwgfx more in line
> > with everyone else again - I simply don't understand the interactions well
> > enough to make that call. There's two of those in total.
> >
> > Can we just remove them perhaps? The question is whether you can do the
> > cursor operation just with the per-crtc lock as protection, or whether
> > there's any shared resources and you need the full exclusion provided by
> > modeset_lock_all. If the crtc locking is good enough then we could rip
> > this out in both function and be done.
> >
> > Note that this FIXME has been in vmwgfx since almost two years now.
> >
> > If that's not possible then I have a major kludge of a hack in my atomic
> > helpers branch which will keep this alive for a bit longer. It ain't
> > pretty though.
> >
> > Cheers, Daniel
>
> Hi.
>
> Actually we haven't looked much at the new modesetting locking at all
> but been pretty happy with what others have put in the code, but it
> sounds like we need to actually deal with this now. I've basically never
> been really convinced that we'd see any modesetting locking contention
> with a single lock, but OTOH I guess with a single lock we'd eventually
> start to run into locking recursion problems.
The problem only happens on real hardware, where you need to read EDIDs in
the background and other probe fun. At glance that means we'll just have 2
locks, one fore probe stuff and one for everything else. Except for nasty
overlapping cases, which require the entire thing to be pretty
ridiculously flexible ;-)
But on virtual hardware where no kms op takes a long time fine-grained
locking is indeed complete overkill.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the dri-devel
mailing list