Currently malloc caches a number of free'ed regions up to 128k
authorotto <otto@openbsd.org>
Sat, 26 Feb 2022 16:14:42 +0000 (16:14 +0000)
committerotto <otto@openbsd.org>
Sat, 26 Feb 2022 16:14:42 +0000 (16:14 +0000)
commit799edd1192e5a499a93ec7e6a1dbccb475eceb2e
treedf9605f2d2b37c5112ace2372e9be02c58d9a251
parent0d1e816533c1c11f7f1e3a7b6df627b8bb902a4f
Currently malloc caches a number of free'ed regions up to 128k
in size. This cache is indexed by size (in # of pages), so it is
very quick to check.  Some programs allocate and deallocate larger
allocations in a frantic way.  Accomodate those programs by also
keeping a cache of regions between 128k and 2M, in a cache of variable
sized regions.

Tested by many in snaps; ok deraadt@
lib/libc/stdlib/malloc.c