Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Feb 2016 12:09:59 -0500 (EST)
From:      Daniel Eischen <deischen@freebsd.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Eric van Gyzen <vangyzen@FreeBSD.org>, threads@freebsd.org, arch@freebsd.org
Subject:   Re: libthr shared locks
Message-ID:  <Pine.GSO.4.64.1602181204470.28877@sea.ntplx.net>
In-Reply-To: <20160218153256.GS91220@kib.kiev.ua>
References:  <20151223172528.GT3625@kib.kiev.ua> <56BE69B8.9020808@FreeBSD.org> <56C24586.9050906@FreeBSD.org> <20160216113222.GY91220@kib.kiev.ua> <Pine.GSO.4.64.1602161224250.19440@sea.ntplx.net> <20160217164541.GM91220@kib.kiev.ua> <Pine.GSO.4.64.1602171220540.24204@sea.ntplx.net> <20160218153256.GS91220@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 18 Feb 2016, Konstantin Belousov wrote:

> On Wed, Feb 17, 2016 at 12:37:52PM -0500, Daniel Eischen wrote:
>> On Wed, 17 Feb 2016, Konstantin Belousov wrote:
>>> I do plan to introduce inlined objects (most likely in the form of
>>> libthr2 initially, i.e. cc -D_LIBTHR2 -o file file.c -lthr2). But my
>>> plans are to get the existing patch for pshared into the tree for 11.0.
>>> After that I wanted to implement robust mutexes, still in the context of
>>> the libthr. Then libthr2.
>>
>> As soon as this is done, will we build FreeBSD base OS against
>> the new API?  So only ports would be affected.
> I do not think this is feasible.  Base system does not have any significant
> thread consumers, might be only ntpd qualifies.  Small things like ngctl
> are not that important.
>
> But base system provides C++ runtime for ports and I suspect that libc++
> depends on the libthr ABI. Even jemalloc depends on libthr ABI. So
> changing only the base ABI is probably impossible, from the first look
> the switch like WITH_LIBTHR2_DEFAULT would be a flag day. Anyway, this
> must be considered carefully during the later stage of the libthr2
> development, right now it is rather empty speculation on my side.

I would think partially inlined objects (still a pointer inside)
could be made in libthr (not libthr2) by default for 11.0 (or 11.x).
So that the only change is the size of the objects, not anything
else.  The only breakage would be layout related.

-- 
DE



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.1602181204470.28877>