aboutsummaryrefslogtreecommitdiff
path: root/malloc
diff options
context:
space:
mode:
authorWangyang Guo <wangyang.guo@intel.com>2024-11-26 15:33:38 +0800
committerH.J. Lu <hjl.tools@gmail.com>2024-11-27 08:24:09 +0800
commitc69e8cccaff8f2d89cee43202623b33e6ef5d24a (patch)
tree08817e40b4eeaab83cc382348c92c3c8e67fd371 /malloc
parent4836a9af89f1b4d482e6c72ff67e36226d36434c (diff)
downloadglibc-c69e8cccaff8f2d89cee43202623b33e6ef5d24a.zip
glibc-c69e8cccaff8f2d89cee43202623b33e6ef5d24a.tar.gz
glibc-c69e8cccaff8f2d89cee43202623b33e6ef5d24a.tar.bz2
malloc: Avoid func call for tcache quick path in free()
Tcache is an important optimzation to accelerate memory free(), things within this code path should be kept as simple as possible. This commit try to remove the function call when free() invokes tcache code path by inlining _int_free(). Result of bench-malloc-thread benchmark Test Platform: Xeon-8380 Ratio: New / Original time_per_iteration (Lower is Better) Threads# | Ratio -----------|------ 1 thread | 0.879 4 threads | 0.874 The performance data shows it can improve bench-malloc-thread benchmark by ~12% in both single thread and multi-thread scenario. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'malloc')
-rw-r--r--malloc/malloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 32dbc27..81ddd2c 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -4677,7 +4677,7 @@ _int_free_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T size, int have_lock)
P has already been locked. It will perform sanity check, then try the
fast path to free into tcache. If the attempt not success, free the
chunk to arena. */
-static void
+static inline void
_int_free (mstate av, mchunkptr p, int have_lock)
{
INTERNAL_SIZE_T size; /* its size */