From owner-freebsd-threads@freebsd.org Sun Dec 27 16:44:52 2015 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 06939A52628; Sun, 27 Dec 2015 16:44:52 +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 A97C71F5B; Sun, 27 Dec 2015 16:44:51 +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 tBRGiioL050482; Sun, 27 Dec 2015 11:44:44 -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]); Sun, 27 Dec 2015 11:44:44 -0500 (EST) Date: Sun, 27 Dec 2015 11:44:44 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net Reply-To: Daniel Eischen To: Konstantin Belousov cc: John Baldwin , freebsd-arch@freebsd.org, freebsd-threads@freebsd.org Subject: Re: libthr shared locks In-Reply-To: <20151226234424.GJ3625@kib.kiev.ua> Message-ID: References: <20151223172528.GT3625@kib.kiev.ua> <4199356.DlQeWDh27F@ralph.baldwin.cx> <5496837.TbTQtANDNj@ralph.baldwin.cx> <20151224191408.GA3625@kib.kiev.ua> <20151226105409.GH3625@kib.kiev.ua> <20151226234424.GJ3625@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: Sun, 27 Dec 2015 16:44:52 -0000 On Sun, 27 Dec 2015, Konstantin Belousov wrote: > On Sat, Dec 26, 2015 at 12:15:43PM -0500, Daniel Eischen wrote: [ snipped for brevity ] >> >> I agree, but the work that you are doing now would be basically >> thrown out later on. I will not stand in your way and appreciate >> any work you do. I would just rather that the struct change be >> made now for 11, even without any pshared or other changes. For >> once the struct change is made, pshared or other additions can >> be made afterward, even in the 11 branch because they would not >> break the ABI. > > Lock inlining was not done for ten years, now cost of doing it is > extremely high, as discussed above. Who would drive the change, and > with what time frame ? If me, I seriosly consider renaming libthr > to libthr2, but I had no time to think much about it. I could probably do the inlining of locks, pulling out that part of it from David's patch, and coordinating with you so we don't step on each other's toes. Perhaps just making the first element of the structs a self-reference at first, would help mitigate that... I'm not sure what renaming libthr to libthr2 solves that a version bump can't also. Can't we still tell whether both libthr.so.3 and libthr.so.4 have been loaded? Perhaps libthr2 is cleaner WRT keeping the old ABI (it could be dropped?). > Right now, I think that I want to commit my current patch and implement > robust mutexes as the next step, without ABI breakage. At least, this > seems to have fixed time-frame and can be made ready for 11.x. Lock > inlining might be not. Are there serious objections against the plan, > except that (lock inlining + pshared) is ideal situation, while the plan > is not (but more practical) ? What is the timeframe for 11.0-RELEASE? If not for 11.0, I would like to see it done soon in the 12-current branch afterward. In my mind, any pain will be the same in 11 or 12, nothing really is gained by waiting, only by not doing it (inlining locks) ever. -- DE