[PATCH v2 04/10] malloc: remove mallopt fastbin stats
Dev Jain
dev.jain@arm.com
Mon Dec 8 10:59:51 GMT 2025
In preparation for removal of fastbins, remove all fastbin code from
mallopt.
---
malloc/malloc.c | 31 ++-----------------------------
malloc/malloc.h | 8 ++++----
2 files changed, 6 insertions(+), 33 deletions(-)
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 67d4781b56..3f2416d88a 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -660,12 +660,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
@@ -5030,9 +5027,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);
@@ -5040,26 +5035,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)
{
@@ -5071,12 +5046,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;
@@ -5117,11 +5090,11 @@ __libc_mallinfo (void)
m.arena = m2.arena;
m.ordblks = m2.ordblks;
- m.smblks = m2.smblks;
+ m.smblks = 0;
m.hblks = m2.hblks;
m.hblkhd = m2.hblkhd;
m.usmblks = m2.usmblks;
- m.fsmblks = m2.fsmblks;
+ m.fsmblks = 0;
m.uordblks = m2.uordblks;
m.fordblks = m2.fordblks;
m.keepcost = m2.keepcost;
diff --git a/malloc/malloc.h b/malloc/malloc.h
index 6de9ee8a7a..f3b0574041 100644
--- a/malloc/malloc.h
+++ b/malloc/malloc.h
@@ -83,11 +83,11 @@ struct mallinfo
{
int arena; /* non-mmapped space allocated from system */
int ordblks; /* number of free chunks */
- int smblks; /* number of fastbin blocks */
+ int smblks; /* number of fastbin blocks (deprecated) */
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 fsmblks; /* space available in freed fastbin blocks (deprecated) */
int uordblks; /* total allocated space */
int fordblks; /* total free space */
int keepcost; /* top-most, releasable (via malloc_trim) space */
@@ -100,11 +100,11 @@ 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 smblks; /* number of fastbin blocks (deprecated) */
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 fsmblks; /* space available in freed fastbin blocks (deprecated) */
size_t uordblks; /* total allocated space */
size_t fordblks; /* total free space */
size_t keepcost; /* top-most, releasable (via malloc_trim) space */
--
2.43.0
More information about the Libc-alpha
mailing list