Experimental configuration option for fast path prefetch from cache_bin

This commit is contained in:
Slobodan Predolac
2025-06-04 09:48:14 -07:00
committed by Guangli Dai
parent c45b6223e5
commit f9fae9f1f8
3 changed files with 41 additions and 0 deletions

View File

@@ -160,6 +160,11 @@
/* JEMALLOC_EXPERIMENTAL_SMALLOCX_API enables experimental smallocx API. */
#undef JEMALLOC_EXPERIMENTAL_SMALLOCX_API
/* JEMALLOC_EXPERIMENTAL_FASTPATH_PREFETCH enables prefetch
* on malloc fast path.
*/
#undef JEMALLOC_EXPERIMENTAL_FASTPATH_PREFETCH
/* JEMALLOC_PROF enables allocation profiling. */
#undef JEMALLOC_PROF

View File

@@ -374,6 +374,12 @@ imalloc_fastpath(size_t size, void *(fallback_alloc)(size_t)) {
*/
ret = cache_bin_alloc_easy(bin, &tcache_success);
if (tcache_success) {
#if defined(JEMALLOC_EXPERIMENTAL_FASTPATH_PREFETCH)
cache_bin_sz_t lb = (cache_bin_sz_t)(uintptr_t)bin->stack_head;
if(likely(lb != bin->low_bits_empty)) {
util_prefetch_write_range(*(bin->stack_head), usize);
}
#endif
fastpath_success_finish(tsd, allocated_after, bin, ret);
return ret;
}