libthr shared locks

Daniel Eischen deischen at
Fri Dec 25 18:18:17 UTC 2015

On Thu, 24 Dec 2015, Konstantin Belousov wrote:

> On Thu, Dec 24, 2015 at 01:46:25PM -0500, Daniel Eischen wrote:
>> Can we still implement things like robust and priority mutexes in a
>> pshared mutex with Konstantin's implementation?  The rest of the world
>> (Linux, Solaris anyway) use structs and get by just fine ABI-wise.
> Yes, we do. I intend to do this as the next stage, planned the
> implementation and did some preparations for it in the current patch.
> This raises the question, why do you suppose that my approach with
> the off-page would not allow it ? I am asking not to argument, but to
> understand a possible shortcoming in the approach, which I missed.

No, I was merely inquiring, if this is on your agenda, that's

> From the implementation PoV, off-page is completely equivalent to the
> in-line structs approach, and the difference is only in the initial
> translation of say pthread_mutex_t to the structure (off-page lookup vs.
> identity). The issues with maintaining the lists of the owned robust of
> pi mutexes are same, and in fact you could see some non-trivial traces
> of this in the _mutex_fork() reimplementation in my patch.
> Linux and Solaris get (large enough) structs early enough to avoid the ABI
> issues.  I remember Linux changing FILE layout in early days of glibc 2.0
> and resulting pain, while they already had the GNU symbol versioning
> working and used.

I guess the issue now is the apparent speedups without having the
extra de-reference.  8-10% for things like mysql might be worth
considering the userland structs.


More information about the freebsd-threads mailing list