Date: Sat, 14 Nov 2015 18:30:13 +0000 From: David Chisnall <theraven@FreeBSD.org> To: Eric van Gyzen <vangyzen@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org 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 Message-ID: <71109998-711D-4ECA-9B44-5A7B1F8705F3@FreeBSD.org> In-Reply-To: <201510261621.t9QGLuL2028872@repo.freebsd.org> References: <201510261621.t9QGLuL2028872@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26 Oct 2015, at 16:21, Eric van Gyzen <vangyzen@FreeBSD.org> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?71109998-711D-4ECA-9B44-5A7B1F8705F3>