Patchwork [1/5] Inline tcache functions

login
register
mail settings
Submitter Wilco Dijkstra
Date Oct. 12, 2017, 9:35 a.m.
Message ID <DB6PR0801MB205336D2A0F815EFB500900B834B0@DB6PR0801MB2053.eurprd08.prod.outlook.com>
Download mbox | patch
Permalink /patch/23492/
State New
Headers show

Comments

Wilco Dijkstra - Oct. 12, 2017, 9:35 a.m.
The functions tcache_get and tcache_put show up in profiles as they
are a critical part of the tcache code.  Inline them to give tcache
a 16% performance gain.  Since this improves multi-threaded cases
as well, it helps offset any potential performance loss due to adding
single-threaded fast paths.

Passes GLIBC tests, OK for commit?

ChangeLog:
2017-10-11  Wilco Dijkstra  <wdijkstr@arm.com>

	* malloc/malloc.c (tcache_put): Inline.
	(tcache_get): Inline.

--

Patch

diff --git a/malloc/malloc.c b/malloc/malloc.c
index cdaeedcc96dbad890b28aebd85eb5327e4fed32e..0dd095cb79e2bc2a4e111155bb9cb115e7f92d50 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -2911,7 +2911,7 @@  static __thread tcache_perthread_struct *tcache = NULL;
 
 /* Caller must ensure that we know tc_idx is valid and there's room
    for more chunks.  */
-static void
+static inline void
 tcache_put (mchunkptr chunk, size_t tc_idx)
 {
   tcache_entry *e = (tcache_entry *) chunk2mem (chunk);
@@ -2923,7 +2923,7 @@  tcache_put (mchunkptr chunk, size_t tc_idx)
 
 /* Caller must ensure that we know tc_idx is valid and there's
    available chunks to remove.  */
-static void *
+static inline void *
 tcache_get (size_t tc_idx)
 {
   tcache_entry *e = tcache->entries[tc_idx];