diff mbox

package/glibc: enable lock elision on x86_64 hosts

Message ID 1426716071-27570-2-git-send-email-steven@uplinklabs.net
State Accepted
Headers show

Commit Message

Steven Noonan March 18, 2015, 10:01 p.m. UTC
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
---
 package/glibc/glibc.mk | 1 +
 1 file changed, 1 insertion(+)

Comments

Thomas Petazzoni July 19, 2015, 9:23 a.m. UTC | #1
Dear Steven Noonan,

On Wed, 18 Mar 2015 15:01:09 -0700, Steven Noonan wrote:
> Signed-off-by: Steven Noonan <steven@uplinklabs.net>
> ---
>  package/glibc/glibc.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
> index 0a37bb3..651711a 100644
> --- a/package/glibc/glibc.mk
> +++ b/package/glibc/glibc.mk
> @@ -90,6 +90,7 @@ define GLIBC_CONFIGURE_CMDS
>  		--prefix=/usr \
>  		--enable-shared \
>  		$(if $(BR2_SOFT_FLOAT),--without-fp,--with-fp) \
> +		$(if $(BR2_x86_64),--enable-lock-elision,) \

What happens on x86-64 processors that don't have the HW support needed
for lock elision ? Does glibc gracefully falls back at runtime to
"normal" locks ?

Thanks,

Thomas
Baruch Siach July 19, 2015, 9:33 a.m. UTC | #2
Hi Thomas,

On Sun, Jul 19, 2015 at 11:23:14AM +0200, Thomas Petazzoni wrote:
> On Wed, 18 Mar 2015 15:01:09 -0700, Steven Noonan wrote:
> > Signed-off-by: Steven Noonan <steven@uplinklabs.net>
> > ---
> >  package/glibc/glibc.mk | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
> > index 0a37bb3..651711a 100644
> > --- a/package/glibc/glibc.mk
> > +++ b/package/glibc/glibc.mk
> > @@ -90,6 +90,7 @@ define GLIBC_CONFIGURE_CMDS
> >  		--prefix=/usr \
> >  		--enable-shared \
> >  		$(if $(BR2_SOFT_FLOAT),--without-fp,--with-fp) \
> > +		$(if $(BR2_x86_64),--enable-lock-elision,) \
> 
> What happens on x86-64 processors that don't have the HW support needed
> for lock elision ? Does glibc gracefully falls back at runtime to
> "normal" locks ?

According to the code at sysdeps/unix/sysv/linux/x86/elision-conf.c, 
__elision_available is initialized from HAS_RTM which is evaluated at run-time 
(sysdeps/x86_64/multiarch/init-arch.h).

baruch
Thomas Petazzoni July 20, 2015, 8:57 p.m. UTC | #3
Dear Steven Noonan,

On Wed, 18 Mar 2015 15:01:09 -0700, Steven Noonan wrote:
> Signed-off-by: Steven Noonan <steven@uplinklabs.net>
> ---
>  package/glibc/glibc.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
> index 0a37bb3..651711a 100644
> --- a/package/glibc/glibc.mk
> +++ b/package/glibc/glibc.mk
> @@ -90,6 +90,7 @@ define GLIBC_CONFIGURE_CMDS
>  		--prefix=/usr \
>  		--enable-shared \
>  		$(if $(BR2_SOFT_FLOAT),--without-fp,--with-fp) \
> +		$(if $(BR2_x86_64),--enable-lock-elision,) \

The last comma was unnecessary. I've removed it and committed, thanks!

Thomas
diff mbox

Patch

diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
index 0a37bb3..651711a 100644
--- a/package/glibc/glibc.mk
+++ b/package/glibc/glibc.mk
@@ -90,6 +90,7 @@  define GLIBC_CONFIGURE_CMDS
 		--prefix=/usr \
 		--enable-shared \
 		$(if $(BR2_SOFT_FLOAT),--without-fp,--with-fp) \
+		$(if $(BR2_x86_64),--enable-lock-elision,) \
 		--with-pkgversion="Buildroot" \
 		--without-cvs \
 		--disable-profile \