From owner-freebsd-threads@freebsd.org Thu Feb 18 17:10:01 2016 Return-Path: Delivered-To: freebsd-threads@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8CE9AAC72A for ; Thu, 18 Feb 2016 17:10:01 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id B241CD48 for ; Thu, 18 Feb 2016 17:10:01 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id AD009AAC729; Thu, 18 Feb 2016 17:10:01 +0000 (UTC) Delivered-To: threads@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC613AAC727; Thu, 18 Feb 2016 17:10:01 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "*.netplex.net", Issuer "RapidSSL SHA256 CA - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 725C9D34; Thu, 18 Feb 2016 17:10:01 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.15.1/8.15.1/NETPLEX) with ESMTP id u1IH9xD2034133; Thu, 18 Feb 2016 12:09:59 -0500 X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.4.3 (mail.netplex.net [204.213.176.9]); Thu, 18 Feb 2016 12:09:59 -0500 (EST) Date: Thu, 18 Feb 2016 12:09:59 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net Reply-To: Daniel Eischen To: Konstantin Belousov cc: Eric van Gyzen , threads@freebsd.org, arch@freebsd.org Subject: Re: libthr shared locks In-Reply-To: <20160218153256.GS91220@kib.kiev.ua> Message-ID: References: <20151223172528.GT3625@kib.kiev.ua> <56BE69B8.9020808@FreeBSD.org> <56C24586.9050906@FreeBSD.org> <20160216113222.GY91220@kib.kiev.ua> <20160217164541.GM91220@kib.kiev.ua> <20160218153256.GS91220@kib.kiev.ua> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Feb 2016 17:10:01 -0000 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