<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 9, 2014 at 1:35 PM, David Chisnall <span dir="ltr"><<a href="mailto:David.Chisnall@cl.cam.ac.uk" target="_blank">David.Chisnall@cl.cam.ac.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5">On 9 Jun 2014, at 10:29, Kostya Serebryany <<a href="mailto:kcc@google.com">kcc@google.com</a>> wrote:<br>

<br>
> On Mon, Jun 9, 2014 at 1:21 PM, David Chisnall <<a href="mailto:David.Chisnall@cl.cam.ac.uk">David.Chisnall@cl.cam.ac.uk</a>> wrote:<br>
> On 9 Jun 2014, at 10:19, Kostya Serebryany <<a href="mailto:kcc@google.com">kcc@google.com</a>> wrote:<br>
><br>
> > tsan's deadlock detector (as well as helgrind and many other similar tools) detects lock order inversion, i.e. a situation which may potentially lead to a deadlock.<br>
><br>
> Yes, that's what WITNESS does in the FreeBSD kernel.  The line after the one you quoted mentioned the port of this to userspace pthreads.<br>
><br>
> Did it extend the pthread_mutex_t data structure?<br>
<br>
</div></div>No, it stored in a look-aside structure.  We've found that requiring users to recompile all of their code, including shared libraries, for a new ABI is a non-starter.<br></blockquote><div><br></div><div>Yea, for lpthread having a separate debug variant is hard. </div>
<div>But using look-aside structure for deadlock detection inside the pthread library is no better than </div><div>having an external deadlock detector that intercepts pthread_mutex_* (that's what tsan and others do)<br>
</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><font color="#888888"><br>
David<br>
<br>
</font></span></blockquote></div><br></div></div>