[PATCH 4/9] malloc: remove mallopt fastbin stats

Dev Jain dev.jain@arm.com
Fri Oct 17 09:07:02 GMT 2025


In preparation for removal of fastbins, remove all fastbin code from
mallopt.
---
 malloc/malloc.c        | 29 -----------------------------
 malloc/malloc.h        |  4 ----
 malloc/tst-mallinfo2.c |  2 --
 3 files changed, 35 deletions(-)

diff --git a/malloc/malloc.c b/malloc/malloc.c
index d78abe64fe..a1066cbc94 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -659,12 +659,9 @@ void*  __libc_valloc(size_t);
 
   arena:     current total non-mmapped bytes allocated from system
   ordblks:   the number of free chunks
-  smblks:    the number of fastbin blocks (i.e., small chunks that
-	       have been freed but not reused or consolidated)
   hblks:     current number of mmapped regions
   hblkhd:    total bytes held in mmapped regions
   usmblks:   always 0
-  fsmblks:   total bytes held in fastbin blocks
   uordblks:  current total allocated space (normal or mmapped)
   fordblks:  total free space
   keepcost:  the maximum number of bytes that could ideally be released
@@ -5017,9 +5014,7 @@ int_mallinfo (mstate av, struct mallinfo2 *m)
   mbinptr b;
   mchunkptr p;
   INTERNAL_SIZE_T avail;
-  INTERNAL_SIZE_T fastavail;
   int nblocks;
-  int nfastblocks;
 
   check_malloc_state (av);
 
@@ -5027,26 +5022,6 @@ int_mallinfo (mstate av, struct mallinfo2 *m)
   avail = chunksize (av->top);
   nblocks = 1;  /* top always exists */
 
-  /* traverse fastbins */
-  nfastblocks = 0;
-  fastavail = 0;
-
-  for (i = 0; i < NFASTBINS; ++i)
-    {
-      for (p = fastbin (av, i);
-	   p != NULL;
-	   p = REVEAL_PTR (p->fd))
-        {
-	  if (__glibc_unlikely (misaligned_chunk (p)))
-	    malloc_printerr ("int_mallinfo(): "
-			     "unaligned fastbin chunk detected");
-          ++nfastblocks;
-          fastavail += chunksize (p);
-        }
-    }
-
-  avail += fastavail;
-
   /* traverse regular bins */
   for (i = 1; i < NBINS; ++i)
     {
@@ -5058,12 +5033,10 @@ int_mallinfo (mstate av, struct mallinfo2 *m)
         }
     }
 
-  m->smblks += nfastblocks;
   m->ordblks += nblocks;
   m->fordblks += avail;
   m->uordblks += av->system_mem - avail;
   m->arena += av->system_mem;
-  m->fsmblks += fastavail;
   if (av == &main_arena)
     {
       m->hblks = mp_.n_mmaps;
@@ -5104,11 +5077,9 @@ __libc_mallinfo (void)
 
   m.arena = m2.arena;
   m.ordblks = m2.ordblks;
-  m.smblks = m2.smblks;
   m.hblks = m2.hblks;
   m.hblkhd = m2.hblkhd;
   m.usmblks = m2.usmblks;
-  m.fsmblks = m2.fsmblks;
   m.uordblks = m2.uordblks;
   m.fordblks = m2.fordblks;
   m.keepcost = m2.keepcost;
diff --git a/malloc/malloc.h b/malloc/malloc.h
index 6de9ee8a7a..042a56c567 100644
--- a/malloc/malloc.h
+++ b/malloc/malloc.h
@@ -83,11 +83,9 @@ struct mallinfo
 {
   int arena;    /* non-mmapped space allocated from system */
   int ordblks;  /* number of free chunks */
-  int smblks;   /* number of fastbin blocks */
   int hblks;    /* number of mmapped regions */
   int hblkhd;   /* space in mmapped regions */
   int usmblks;  /* always 0, preserved for backwards compatibility */
-  int fsmblks;  /* space available in freed fastbin blocks */
   int uordblks; /* total allocated space */
   int fordblks; /* total free space */
   int keepcost; /* top-most, releasable (via malloc_trim) space */
@@ -100,11 +98,9 @@ struct mallinfo2
 {
   size_t arena;    /* non-mmapped space allocated from system */
   size_t ordblks;  /* number of free chunks */
-  size_t smblks;   /* number of fastbin blocks */
   size_t hblks;    /* number of mmapped regions */
   size_t hblkhd;   /* space in mmapped regions */
   size_t usmblks;  /* always 0, preserved for backwards compatibility */
-  size_t fsmblks;  /* space available in freed fastbin blocks */
   size_t uordblks; /* total allocated space */
   size_t fordblks; /* total free space */
   size_t keepcost; /* top-most, releasable (via malloc_trim) space */
diff --git a/malloc/tst-mallinfo2.c b/malloc/tst-mallinfo2.c
index 28ff6e2346..01b9e25ce4 100644
--- a/malloc/tst-mallinfo2.c
+++ b/malloc/tst-mallinfo2.c
@@ -35,11 +35,9 @@ print_mi (const char *msg, struct mallinfo2 *m)
 #define P(f) printf("%s: %zu\n", #f, m->f)
   P(arena);
   P(ordblks);
-  P(smblks);
   P(hblks);
   P(hblkhd);
   P(usmblks);
-  P(fsmblks);
   P(uordblks);
   P(fordblks);
   P(keepcost);
-- 
2.43.0



More information about the Libc-alpha mailing list