<div dir="auto"><div><br><div class="gmail_extra"><br><div class="gmail_quote">On 10 Jan. 2017 19:50, "Daniel Vetter" <<a href="mailto:daniel@ffwll.ch">daniel@ffwll.ch</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="quoted-text">On Tue, Jan 10, 2017 at 12:12:30PM +1000, Dave Airlie wrote:<br>
> On runtime resume, nouveau can try and take the mode_config<br>
> mutex in the poll reenable, however a poll can race with this,<br>
> and take the mutex and get stuck waiting for the runtime to<br>
> finish completion. These two patches allow the driver to<br>
> get hooked in before the mutex is taken.<br>
><br>
> I think radeon/amdgpu will also need similar patches to nouveau.<br>
><br>
> I found this while trying to track down a runtime regression<br>
> on W541 laptop, I'm not sure I found what the reporter was seeing yet.<br>
<br>
</div>Hm, we fixed this by doing the rpm stuff always within any of the big core<br>
locks. And I think that's the much more reasonable design, at least as<br>
soon as you have more fine-grained locking.<br>
<br>
But maybe there's a cheap way out - why does nouveau take the modeset<br>
lock? Ime you can remove a lot of the kms locking super easily because<br>
it's all cargo-culted. The last hold-out was connector_list walking, but<br>
that's fixed now and also doesn't need any of the heavy-weight kms locks<br>
anymore.<br></blockquote></div></div></div><div dir="auto"><br></div><div dir="auto">Reenable polling takes the lock. </div><div dir="auto"><br></div><div dir="auto">Dave.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Asking since if you really need kms locks in rpm paths, and the general<br>
design is to grab/drop rpm outside of everything (as nouveau does with the<br>
overall ioctl wrapper trick), then there's fundamentally a deadlock, or at<br>
least a nice inversion. It shouldn't really be needed ...<br>
<font color="#888888">-Daniel<br>
--<br>
Daniel Vetter<br>
Software Engineer, Intel Corporation<br>
<a href="http://blog.ffwll.ch" rel="noreferrer" target="_blank">http://blog.ffwll.ch</a><br>
</font></blockquote></div><br></div></div></div>