[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