aboutsummaryrefslogtreecommitdiff
path: root/malloc/Versions
diff options
context:
space:
mode:
authorDJ Delorie <dj@delorie.com>2016-04-29 14:58:34 -0400
committerDJ Delorie <dj@delorie.com>2016-04-29 15:01:16 -0400
commit46b44370f430c1de1da835903b96c77a55ff1d63 (patch)
tree6d29bcc00e85789d7829f7a8ff1c3dbde0895660 /malloc/Versions
parent5bd0885c9ddf14ddb959742fcb0d4b2368d7b44f (diff)
downloadglibc-46b44370f430c1de1da835903b96c77a55ff1d63.tar.xz
glibc-46b44370f430c1de1da835903b96c77a55ff1d63.zip
changes to per-thread cache algorithms
Core algorithm changes: * Per-thread cache is refilled from existing fastbins and smallbins instead of always needing a bigger chunk. * Caches are linked, and cache is cleaned up when the thread exits (incomplete for now, needed framework for chunk scanner). * Fixes to mutex placement - needed to sync chunk headers across threads. Enabling the per-thread cache (tcache) gives about a 20-30% speedup at a 20-30% memory cost (due to fragmentation). Still working on that :-) Debugging helpers (temporary): * __malloc_scan_chunks() calls back to the app for each chunk in each heap. * _m_printf() helper for "safe" printing within malloc * Lots of calls to the above, commented out, in case you need them. * trace_run scans leftover chunks too.
Diffstat (limited to 'malloc/Versions')
-rw-r--r--malloc/Versions2
1 files changed, 2 insertions, 0 deletions
diff --git a/malloc/Versions b/malloc/Versions
index 43cb90938a..6f03a46735 100644
--- a/malloc/Versions
+++ b/malloc/Versions
@@ -76,5 +76,7 @@ libc {
# malloc trace hooks for mtrace-ctl
__malloc_set_trace_buffer;
__malloc_get_trace_buffer;
+
+ __malloc_scan_chunks;
}
}