Remove --disable-experimental-malloc option

Message ID 20230328185015.2058355-1-adhemerval.zanella@linaro.org
State Committed
Headers
Series Remove --disable-experimental-malloc option |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Adhemerval Zanella March 28, 2023, 6:50 p.m. UTC
  It is the default since 2.26 and the options has bitrotten over the
yeas, with the options multiple malloc tests fails:

  FAIL: malloc/tst-memalign-2
  FAIL: malloc/tst-memalign-2-malloc-hugetlb1
  FAIL: malloc/tst-memalign-2-malloc-hugetlb2
  FAIL: malloc/tst-memalign-2-mcheck
  FAIL: malloc/tst-mxfast-malloc-hugetlb1
  FAIL: malloc/tst-mxfast-malloc-hugetlb2
  FAIL: malloc/tst-tcfree2
  FAIL: malloc/tst-tcfree2-malloc-hugetlb1
  FAIL: malloc/tst-tcfree2-malloc-hugetlb2

Checked on x86_64-linux-gnu.
---
 INSTALL                      |  6 ------
 config.make.in               |  2 --
 configure                    | 13 -------------
 configure.ac                 |  7 -------
 malloc/Makefile              |  4 ----
 manual/install.texi          |  6 ------
 scripts/build-many-glibcs.py |  1 -
 7 files changed, 39 deletions(-)
  

Comments

DJ Delorie March 28, 2023, 7:41 p.m. UTC | #1
Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:
> -'--disable-experimental-malloc'
> -     By default, a per-thread cache is enabled in 'malloc'.  While this
> -     cache can be disabled on a per-application basis using tunables
> -     (set glibc.malloc.tcache_count to zero), this option can be used to
> -     remove it from the build completely.
> -

Ok.  Also, yay :-)

>  CPPFLAGS-malloc-debug.c += -DUSE_TCACHE=0
> -ifeq ($(experimental-malloc),yes)
>  CPPFLAGS-malloc.c += -DUSE_TCACHE=1
> -else
> -CPPFLAGS-malloc.c += -DUSE_TCACHE=0
> -endif

In the future, we could default this inside malloc.c instead of doing
this in the Makefile, but it's not important now.  Ok.

> diff --git a/manual/install.texi b/manual/install.texi
> index 260f8a5c82..cb76fbd28f 100644
> --- a/manual/install.texi
> +++ b/manual/install.texi
> @@ -292,12 +292,6 @@ This option is for hackers and distributions experimenting with
>  independently-maintained implementations of libcrypt.  It may become
>  the default in a future release.
>  
> -@item --disable-experimental-malloc
> -By default, a per-thread cache is enabled in @code{malloc}.  While
> -this cache can be disabled on a per-application basis using tunables
> -(set glibc.malloc.tcache_count to zero), this option can be used to
> -remove it from the build completely.
> -

LGTM.
Reviewed-by: DJ Delorie <dj@redhat.com>
  
Adhemerval Zanella March 29, 2023, 11:54 a.m. UTC | #2
On 28/03/23 16:41, DJ Delorie wrote:
> Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:
>> -'--disable-experimental-malloc'
>> -     By default, a per-thread cache is enabled in 'malloc'.  While this
>> -     cache can be disabled on a per-application basis using tunables
>> -     (set glibc.malloc.tcache_count to zero), this option can be used to
>> -     remove it from the build completely.
>> -
> 
> Ok.  Also, yay :-)
> 
>>  CPPFLAGS-malloc-debug.c += -DUSE_TCACHE=0
>> -ifeq ($(experimental-malloc),yes)
>>  CPPFLAGS-malloc.c += -DUSE_TCACHE=1
>> -else
>> -CPPFLAGS-malloc.c += -DUSE_TCACHE=0
>> -endif
> 
> In the future, we could default this inside malloc.c instead of doing
> this in the Makefile, but it's not important now.  Ok.
> 
>> diff --git a/manual/install.texi b/manual/install.texi
>> index 260f8a5c82..cb76fbd28f 100644
>> --- a/manual/install.texi
>> +++ b/manual/install.texi
>> @@ -292,12 +292,6 @@ This option is for hackers and distributions experimenting with
>>  independently-maintained implementations of libcrypt.  It may become
>>  the default in a future release.
>>  
>> -@item --disable-experimental-malloc
>> -By default, a per-thread cache is enabled in @code{malloc}.  While
>> -this cache can be disabled on a per-application basis using tunables
>> -(set glibc.malloc.tcache_count to zero), this option can be used to
>> -remove it from the build completely.
>> -
> 
> LGTM.
> Reviewed-by: DJ Delorie <dj@redhat.com>
> 

Thanks, I will add a NEW entry on deprecated and removed features:

* The --disable-experimental-malloc is no longer available.  The per-thread
  cache can still be disable per-application using tunables
  (glibc.malloc.tcache_count set to zero).
  

Patch

diff --git a/INSTALL b/INSTALL
index 970d6627e2..04388877d5 100644
--- a/INSTALL
+++ b/INSTALL
@@ -264,12 +264,6 @@  if 'CFLAGS' is specified it must enable optimization.  For example:
      independently-maintained implementations of libcrypt.  It may
      become the default in a future release.
 
-'--disable-experimental-malloc'
-     By default, a per-thread cache is enabled in 'malloc'.  While this
-     cache can be disabled on a per-application basis using tunables
-     (set glibc.malloc.tcache_count to zero), this option can be used to
-     remove it from the build completely.
-
 '--disable-scv'
      Disable using 'scv' instruction for syscalls.  All syscalls will
      use 'sc' instead, even if the kernel supports 'scv'.  PowerPC only.
diff --git a/config.make.in b/config.make.in
index d7c416cbea..b871fa2a74 100644
--- a/config.make.in
+++ b/config.make.in
@@ -78,8 +78,6 @@  multi-arch = @multi_arch@
 
 mach-interface-list = @mach_interface_list@
 
-experimental-malloc = @experimental_malloc@
-
 memory-tagging = @memory_tagging@
 
 nss-crypt = @libc_cv_nss_crypt@
diff --git a/configure b/configure
index efb891456a..162210c71f 100755
--- a/configure
+++ b/configure
@@ -671,7 +671,6 @@  libc_cv_static_nss_crypt
 libc_cv_nss_crypt
 build_crypt
 memory_tagging
-experimental_malloc
 enable_werror
 all_warnings
 force_install
@@ -776,7 +775,6 @@  enable_kernel
 enable_all_warnings
 enable_werror
 enable_multi_arch
-enable_experimental_malloc
 enable_memory_tagging
 enable_crypt
 enable_nss_crypt
@@ -1443,8 +1441,6 @@  Optional Features:
   --disable-werror        do not build with -Werror
   --enable-multi-arch     enable single DSO with optimizations for multiple
                           architectures
-  --disable-experimental-malloc
-                          disable experimental malloc features
   --enable-memory-tagging enable memory tagging if supported by the
                           architecture [default=no]
   --disable-crypt         do not build nor install the passphrase hashing
@@ -3468,15 +3464,6 @@  else
 fi
 
 
-# Check whether --enable-experimental-malloc was given.
-if test "${enable_experimental_malloc+set}" = set; then :
-  enableval=$enable_experimental_malloc; experimental_malloc=$enableval
-else
-  experimental_malloc=yes
-fi
-
-
-
 # Check whether --enable-memory-tagging was given.
 if test "${enable_memory_tagging+set}" = set; then :
   enableval=$enable_memory_tagging; memory_tagging=$enableval
diff --git a/configure.ac b/configure.ac
index 011844a3d4..f1abeda9aa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -307,13 +307,6 @@  AC_ARG_ENABLE([multi-arch],
 	      [multi_arch=$enableval],
 	      [multi_arch=default])
 
-AC_ARG_ENABLE([experimental-malloc],
-	      AS_HELP_STRING([--disable-experimental-malloc],
-			     [disable experimental malloc features]),
-	      [experimental_malloc=$enableval],
-	      [experimental_malloc=yes])
-AC_SUBST(experimental_malloc)
-
 AC_ARG_ENABLE([memory-tagging],
 	      AS_HELP_STRING([--enable-memory-tagging],
 			     [enable memory tagging if supported by the architecture @<:@default=no@:>@]),
diff --git a/malloc/Makefile b/malloc/Makefile
index dfb51d344c..f685fc6e6c 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -286,11 +286,7 @@  tst-malloc-usable-tunables-ENV = GLIBC_TUNABLES=glibc.malloc.check=3 \
 tst-mxfast-ENV = GLIBC_TUNABLES=glibc.malloc.tcache_count=0:glibc.malloc.mxfast=0
 
 CPPFLAGS-malloc-debug.c += -DUSE_TCACHE=0
-ifeq ($(experimental-malloc),yes)
 CPPFLAGS-malloc.c += -DUSE_TCACHE=1
-else
-CPPFLAGS-malloc.c += -DUSE_TCACHE=0
-endif
 # Uncomment this for test releases.  For public releases it is too expensive.
 #CPPFLAGS-malloc.o += -DMALLOC_DEBUG=1
 
diff --git a/manual/install.texi b/manual/install.texi
index 260f8a5c82..cb76fbd28f 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -292,12 +292,6 @@  This option is for hackers and distributions experimenting with
 independently-maintained implementations of libcrypt.  It may become
 the default in a future release.
 
-@item --disable-experimental-malloc
-By default, a per-thread cache is enabled in @code{malloc}.  While
-this cache can be disabled on a per-application basis using tunables
-(set glibc.malloc.tcache_count to zero), this option can be used to
-remove it from the build completely.
-
 @item --disable-scv
 Disable using @code{scv} instruction for syscalls. All syscalls will use
 @code{sc} instead, even if the kernel supports @code{scv}. PowerPC only.
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index 29c10c2916..9c5c77f423 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -447,7 +447,6 @@  class Context(object):
                                                '--disable-mathvec',
                                                '--disable-tunables',
                                                '--disable-crypt',
-                                               '--disable-experimental-malloc',
                                                '--disable-build-nscd',
                                                '--disable-nscd']},
                                       {'variant': 'no-pie',