From owner-freebsd-threads@FreeBSD.ORG Wed Sep 24 17:31:30 2014 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DA7904F2; Wed, 24 Sep 2014 17:31:30 +0000 (UTC) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B1E6AF19; Wed, 24 Sep 2014 17:31:30 +0000 (UTC) Received: from ralph.baldwin.cx (pool-173-70-85-31.nwrknj.fios.verizon.net [173.70.85.31]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 56C7CB91A; Wed, 24 Sep 2014 13:31:29 -0400 (EDT) From: John Baldwin To: Konstantin Belousov Subject: Re: sem_post() performance Date: Wed, 24 Sep 2014 13:31:22 -0400 Message-ID: <3994706.9XWGRdTEky@ralph.baldwin.cx> User-Agent: KMail/4.10.5 (FreeBSD/10.0-STABLE; KDE/4.10.5; amd64; ; ) In-Reply-To: <20140924151943.GM8870@kib.kiev.ua> References: <20140921213742.GA46868@stack.nl> <8951456.0ca4t8PBR9@ralph.baldwin.cx> <20140924151943.GM8870@kib.kiev.ua> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 24 Sep 2014 13:31:29 -0400 (EDT) Cc: adrian@freebsd.org, kib@freebsd.org, freebsd-threads@freebsd.org X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2014 17:31:31 -0000 On Wednesday, September 24, 2014 06:19:43 PM Konstantin Belousov wrote: > On Wed, Sep 24, 2014 at 11:04:28AM -0400, John Baldwin wrote: > > On Wednesday, September 24, 2014 05:45:19 PM Konstantin Belousov wrote: > > > I think it is even worse now. If the application linked against FBSD_1.0 > > > (ksem) semaphores implementation runs on the modern host, it cannot > > > share semaphore with modern binary. > > > > Correct. We changed sem_t's ABI hence the compat shims IIRC. > > I mean, that new and old semaphores cannot IPC. Yes. > > > Since this is not considered significant problem, we can avoid compat > > > code there as well. > > By compat code I mean the switch on SEM_VERSION, not symversioning the > libc symbols. Ah, ok. My idea was we can always add that back in later if it becomes an issue (though it would only solve half the problem). > > I think if we leave sem_t alone there is no reason to create new compat > > shims for this change, but the existing FBSD_1.0 versions have to remain > > for people using old binaries, yes? > > Assume we applied new symver to semaphores which use new binary protocol > on the existing sem_t, and, to make it reasonable, use old protocol > when sem_t is accessed by older functions. Then, old binaries cannot > IPC with new binaries, although both are dynamically linked to libc. > IMO this is worse than the problem of different libc versions not > communicating. Yes, I don't think we should bump symver for this change, just change SEM_MAGIC from 'sem1' to 'sem2'. -- John Baldwin