From owner-svn-src-stable-10@freebsd.org Sat Nov 14 18:30:29 2015 Return-Path: Delivered-To: svn-src-stable-10@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 80303A2FBE3; Sat, 14 Nov 2015 18:30:29 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cloud.theravensnest.org", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 505261DB1; Sat, 14 Nov 2015 18:30:28 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from [192.168.0.7] (cpc16-cmbg15-2-0-cust60.5-4.cable.virginm.net [86.5.162.61]) (authenticated bits=0) by theravensnest.org (8.15.2/8.15.2) with ESMTPSA id tAEIUKAI086032 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 14 Nov 2015 18:30:22 GMT (envelope-from theraven@FreeBSD.org) X-Authentication-Warning: theravensnest.org: Host cpc16-cmbg15-2-0-cust60.5-4.cable.virginm.net [86.5.162.61] claimed to be [192.168.0.7] Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\)) Subject: Re: svn commit: r290014 - in stable/10: lib/libthr/arch/amd64 lib/libthr/arch/i386 libexec/rtld-elf/amd64 libexec/rtld-elf/i386 share/mk From: David Chisnall In-Reply-To: <201510261621.t9QGLuL2028872@repo.freebsd.org> Date: Sat, 14 Nov 2015 18:30:13 +0000 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <71109998-711D-4ECA-9B44-5A7B1F8705F3@FreeBSD.org> References: <201510261621.t9QGLuL2028872@repo.freebsd.org> To: Eric van Gyzen X-Mailer: Apple Mail (2.2104) X-BeenThere: svn-src-stable-10@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for only the 10-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Nov 2015 18:30:29 -0000 On 26 Oct 2015, at 16:21, Eric van Gyzen wrote: >=20 > One counter-argument to this change is that most applications already > use SIMD, and the number of applications and amount of SIMD usage > are only increasing. Note that SSE and SIMD are not the same thing. The x86-64 ABI uses SSE = registers for floating point arguments, so even a purely scalar = application that uses floating point will end up faulting in the SSE = state. This is not the case on IA32, where x87 registers are used = (though when compiling for i686, SSE is used by default because register = allocation for x87 is a huge pain). I believe that the no-sse option for clang is ABI-preserving, so will = not actually disable all SSE unless you also specify -msoft-float. I = don=E2=80=99t think that libthr uses floating point anywhere, but libc = does and you only need to call one function that takes a floating point = argument in between context switches to lose this gain on x86-64. With = this change, we=E2=80=99re making the compiler emit less efficient code, = on the assumption that nothing will touch the fpu in the quantum before = the next context switch. I=E2=80=99d really like to see the set of = applications that you benchmarked the change with on x86-64 to reach the = conclusion that this is a net win overall.=20 Or, to put it another way: How many applications are multithreaded but = don=E2=80=99t use any floating point code? David