server-skynet-source-3rd-je.../test/unit
Qi Wang 72cfdce718 Allocate tcache stack from base allocator
When using metadata_thp, allocate tcache bin stacks from base0, which means they
will be placed on huge pages along with other metadata, instead of mixed with
other regular allocations.

In order to do so, modified the base allocator to support limited reuse: freed
tcached stacks (from thread termination) will be returned to base0 and made
available for reuse, but no merging will be attempted since they were bump
allocated out of base blocks. These reused base extents are managed using
separately allocated base edata_t -- they are cached in base->edata_avail when
the extent is all allocated.

One tricky part is, stats updating must be skipped for such reused extents
(since they were accounted for already, and there is no purging for base). This
requires tracking the "if is reused" state explicitly and bypass the stats
updates when allocating from them.
2023-09-18 12:18:32 -07:00
..
a0.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
arena_decay.c Rename 'arena_decay' to 'arena_util' 2021-12-15 10:39:17 -08:00
arena_decay.sh Allow opt.tcache_max to accept small size classes. 2020-10-24 20:43:44 -07:00
arena_reset_prof.c Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
arena_reset_prof.sh Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
arena_reset.c Fix shadowed variable usage. 2021-12-23 10:55:08 -08:00
atomic.c Fix shadowed variable usage. 2021-12-23 10:55:08 -08:00
background_thread_enable.c More conservative setting for /test/unit/background_thread_enable. 2023-02-16 14:42:21 -08:00
background_thread.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
base.c Fix base_ehooks_get_for_metadata 2021-12-20 15:37:53 -08:00
batch_alloc_prof.c Add batch allocation API 2020-07-31 09:16:50 -07:00
batch_alloc_prof.sh Add batch allocation API 2020-07-31 09:16:50 -07:00
batch_alloc.c Enable per-tcache tcache_max 2023-09-06 10:47:14 -07:00
batch_alloc.sh Add batch allocation API 2020-07-31 09:16:50 -07:00
binshard.c PA: Parameterize emap. Move emap_global to arena. 2020-04-10 13:12:47 -07:00
binshard.sh Add unit test for sharded bins. 2018-12-03 17:17:03 -08:00
bit_util.c Make eligible functions static 2023-05-08 15:00:02 -07:00
bitmap.c bitset test: Pull NBITS_TAB into its own file. 2020-07-30 15:25:23 -07:00
buf_writer.c Add piping API to buffered writer 2020-04-01 09:41:20 -07:00
cache_bin.c Remove unnecessary parameters for cache_bin_postincrement. 2023-09-06 10:47:14 -07:00
ckh.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
counter.c Migrate counter to use locked int 2020-05-12 08:23:15 -07:00
decay.c Wake up background threads on demand 2021-09-17 16:56:41 -07:00
div.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
double_free.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
double_free.h Eagerly detect double free and sized dealloc bugs for large sizes. 2020-10-15 10:03:16 -07:00
edata_cache.c add experimental.arenas_create_ext mallctl 2021-09-24 13:43:18 -07:00
emitter.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
extent_quantize.c Implement opt.cache_oblivious. 2021-02-11 11:32:01 -08:00
fb.c Travis: Unbreak the builds. 2021-06-24 07:40:28 -07:00
fork.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
fxp.c fxp: Add FXP_INIT_PERCENT 2021-02-04 20:58:31 -08:00
hash.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
hook.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
hpa_background_thread.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
hpa_background_thread.sh Fix infinite purging loop in HPA 2023-08-08 14:36:19 -07:00
hpa_validate_conf.c Fix infinite purging loop in HPA 2023-08-08 14:36:19 -07:00
hpa_validate_conf.sh Fix infinite purging loop in HPA 2023-08-08 14:36:19 -07:00
hpa.c Make eligible global variables static and/or const 2023-07-06 14:15:12 -07:00
hpdata.c HPA: Purge across retained extents. 2021-07-12 17:59:18 -07:00
huge.c Avoid assuming the arena id in test when percpu_arena is used. 2023-03-13 10:50:10 -07:00
inspect.c Inspect test: Reduce checks when profiling is on. 2020-03-12 11:58:09 -07:00
inspect.sh Add the profiling settings for tests explicit. 2021-12-22 20:10:28 -08:00
junk_alloc.c Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
junk_alloc.sh Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
junk_free.c Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
junk_free.sh Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
junk.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
junk.sh Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
log.c Travis: Unbreak the builds. 2021-06-24 07:40:28 -07:00
mallctl.c Explicit arena assignment in test_thread_idle. 2023-03-22 15:16:43 -07:00
malloc_conf_2.c Add malloc_conf_2_conf_harder 2020-03-31 06:25:08 -07:00
malloc_conf_2.sh Add malloc_conf_2_conf_harder 2020-03-31 06:25:08 -07:00
malloc_io.c IO: Support 0-padding for unsigned numbers. 2020-08-13 10:03:15 -07:00
math.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
mpsc_queue.c mpsc_queue: Add module. 2021-06-24 14:55:49 -07:00
mq.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
mtx.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
nstime.c Make eligible functions static 2023-05-08 15:00:02 -07:00
oversize_threshold.c Avoid eager purging on the dedicated oversize arena when using bg thds. 2023-06-27 11:57:41 -07:00
pa.c Make eligible functions static 2023-05-08 15:00:02 -07:00
pack.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
pack.sh Refactor *decay_time into *decay_ms. 2017-05-18 11:33:45 -07:00
pages.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
peak.c Add peak_t, for tracking allocator net max. 2020-06-11 13:54:22 -07:00
ph.c Pairing heap: inline functions instead of macros. 2021-08-02 15:02:49 -07:00
prng.c PRNG test: cleanups. 2020-10-05 19:55:57 -07:00
prof_accum.c Move file handling logic in prof_data to prof_sys 2020-06-29 14:27:50 -07:00
prof_accum.sh Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
prof_active.c Expose prof_data testing internals only in prof tests 2020-06-29 14:27:50 -07:00
prof_active.sh Add the profiling settings for tests explicit. 2021-12-22 20:10:28 -08:00
prof_gdump.c HPA: Tie components into a PAI implementation. 2020-10-23 11:14:34 -07:00
prof_gdump.sh Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
prof_hook.c Implement prof sample hooks "experimental.hooks.prof_sample(_free)". 2022-12-07 16:06:49 -08:00
prof_hook.sh Making jemalloc max stack depth a runtime option 2022-09-12 13:56:22 -07:00
prof_idump.c Fix shadowed variable usage. 2021-12-23 10:55:08 -08:00
prof_idump.sh Remove --disable-tcache. 2017-04-21 10:06:12 -07:00
prof_log.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
prof_log.sh Add the profiling settings for tests explicit. 2021-12-22 20:10:28 -08:00
prof_mdump.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
prof_mdump.sh Push error handling logic out of core dumping logic 2020-06-29 14:27:50 -07:00
prof_recent.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
prof_recent.sh Add the prof_sys_thread_name feature in the prof_recent unit test. 2023-05-11 09:10:57 -07:00
prof_reset.c Fix shadowed variable usage. 2021-12-23 10:55:08 -08:00
prof_reset.sh Last-N profiling mode 2019-12-30 15:58:57 -08:00
prof_small.c Add a test-case for small profiled allocations 2023-07-03 16:19:06 -07:00
prof_small.sh Add a test-case for small profiled allocations 2023-07-03 16:19:06 -07:00
prof_stats.c Darwin malloc_size override support proposal. 2021-10-01 14:32:40 -07:00
prof_stats.sh Add the profiling settings for tests explicit. 2021-12-22 20:10:28 -08:00
prof_sys_thread_name.c Add a multithreaded test for prof_sys_thread_name. 2023-04-05 10:03:12 -07:00
prof_sys_thread_name.sh Add the profiling settings for tests explicit. 2021-12-22 20:10:28 -08:00
prof_tctx.c Define PROF_TCTX_SENTINEL instead of using magic numbers 2023-07-24 14:40:42 -07:00
prof_tctx.sh Add the profiling settings for tests explicit. 2021-12-22 20:10:28 -08:00
prof_thread_name.c Inline the storage for thread name in prof_tdata_t. 2023-04-05 10:03:12 -07:00
prof_thread_name.sh Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00
psset.c psset: Purge empty slabs first. 2021-07-12 17:59:18 -07:00
ql.c Add move constructor to ql module 2020-04-06 09:50:27 -07:00
qr.c Optimize meld in qr module 2020-04-06 09:50:27 -07:00
rb.c Fix shadowed variable usage. 2021-12-23 10:55:08 -08:00
retained.c Address compiler warnings in the unit tests 2023-07-03 16:06:35 -07:00
rtree.c Small refactors around 7bb05e0. 2021-09-27 16:05:13 -07:00
safety_check.c Avoid overflow warnings in test/unit/safety_check. 2022-01-27 10:29:54 -08:00
safety_check.sh Add the profiling settings for tests explicit. 2021-12-22 20:10:28 -08:00
san_bump.c Rename 'arena_decay' to 'arena_util' 2021-12-15 10:39:17 -08:00
san.c San: Bump alloc frequently reused guarded allocations 2021-12-15 10:39:17 -08:00
san.sh San: Rename 'guard' to 'san' 2021-12-15 10:39:17 -08:00
sc.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
sec.c Fix size class calculation for sec 2022-03-22 17:45:55 -07:00
seq.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
SFMT.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
size_check.c Make eligible functions static 2023-05-08 15:00:02 -07:00
size_check.sh Add the profiling settings for tests explicit. 2021-12-22 20:10:28 -08:00
size_classes.c Fix array bounds false warning in gcc 12.3.0 2023-09-05 14:33:55 -07:00
slab.c Tcache flush: keep common path state in registers. 2021-02-04 14:10:43 -08:00
smoothstep.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
spin.c Header refactoring: unify and de-catchall rtree module. 2017-05-31 13:08:45 -07:00
stats_print.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
stats.c Add stats for stashed bytes in tcache. 2021-12-29 14:44:43 -08:00
sz.c fix some typos 2022-04-25 11:29:00 -07:00
tcache_max.c Allocate tcache stack from base allocator 2023-09-18 12:18:32 -07:00
tcache_max.sh Fix test config of lg_san_uaf_align. 2022-01-04 11:03:51 -08:00
test_hooks.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
thread_event.c Remove thread_event_rollback() 2020-03-12 13:55:00 -07:00
thread_event.sh Build a general purpose thread event handler 2019-11-04 11:15:50 -08:00
ticker.c Disallow decay during reentrancy. 2023-04-05 10:16:37 -07:00
tsd.c Enable fast thread locals for dealloc-only threads. 2022-10-25 09:54:38 -07:00
uaf.c Fix test config of lg_san_uaf_align. 2022-01-04 11:03:51 -08:00
witness.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
zero_realloc_abort.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
zero_realloc_abort.sh Realloc: Make behavior of realloc(ptr, 0) configurable. 2019-10-29 17:48:44 -07:00
zero_realloc_alloc.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
zero_realloc_alloc.sh Rename zero_realloc option "strict" to "alloc". 2022-04-20 10:27:25 -07:00
zero_realloc_free.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
zero_realloc_free.sh Realloc: Make behavior of realloc(ptr, 0) configurable. 2019-10-29 17:48:44 -07:00
zero_reallocs.c Enabled -Wstrict-prototypes and fixed warnings. 2023-07-06 12:00:02 -07:00
zero_reallocs.sh Add stats counters for number of zero reallocs 2019-10-29 17:48:44 -07:00
zero.c Change assert_* to expect_* in tests 2020-02-19 16:03:16 -08:00
zero.sh Use MALLOC_CONF rather than malloc_conf for tests. 2017-02-23 08:57:02 -08:00