Nick Desaulniers
d01b425e5d
Add -Wimplicit-fallthrough checks if supported
...
Clang since r369414 (clang-10) can now check -Wimplicit-fallthrough for
C code, and use the GNU C style attribute to denote fallthrough.
Move the test from header only to autoconf. The previous test used
brittle version detection which did not work for newer clang that
supported this feature.
The attribute has to be its own statement, hence the added `;`. It also
can only precede case statements, so the final cases should be
explicitly terminated with break statements.
Fixes commit 3d29d11ac2
("Clean compilation -Wextra")
Link: 1e0affb6e5
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
2019-11-08 13:03:03 -08:00
Yinan Zhang
a8b578d538
Remove mallctl test for zero_realloc
2019-11-05 10:09:18 -08:00
Yinan Zhang
43f0ce92d8
Define general purpose tsd_thread_event_init()
2019-11-04 16:07:56 -08:00
Yinan Zhang
97f93fa0f2
Pull tcache GC events into thread event handler
2019-11-04 16:07:56 -08:00
Yinan Zhang
198f02e797
Pull prof_accumbytes into thread event handler
2019-11-04 15:21:16 -08:00
Yinan Zhang
152c0ef954
Build a general purpose thread event handler
2019-11-04 11:15:50 -08:00
RingsC
6924f83cb2
use SYS_openat when available
...
some architecture like AArch64 may not have the open syscall, but have
openat syscall. so check and use SYS_openat if SYS_openat available if
SYS_open is not supported at init_thp_state.
2019-11-01 13:06:40 -07:00
David T. Goldblatt
de81a4eada
Add stats counters for number of zero reallocs
2019-10-29 17:48:44 -07:00
David T. Goldblatt
9cfa805947
Realloc: Make behavior of realloc(ptr, 0) configurable.
2019-10-29 17:48:44 -07:00
David T. Goldblatt
ee961c2310
Merge realloc and rallocx pathways.
2019-10-29 17:48:44 -07:00
Yinan Zhang
bd6e28d6a3
Guard slabcur fetching in extent_util
2019-10-28 17:27:51 -07:00
Yinan Zhang
4786099a3a
Increase column width for global malloc/free rate
2019-10-24 14:54:51 -07:00
Yinan Zhang
05681e387a
Optimize cache_bin_alloc_easy for malloc fast path
...
`tcache_bin_info` is not accessed on malloc fast path but the
compiler reserves a register for it, as well as an additional
register for `tcache_bin_info[ind].stack_size`. The optimization
gets rid of the need for the two registers.
2019-10-21 16:43:45 -07:00
Yinan Zhang
4fe50bc7d0
Fix amd64 MSVC warning
2019-10-18 10:16:29 -07:00
Yinan Zhang
4fbbc817c1
Simplify time setting and getting for prof log
2019-10-16 09:24:52 -07:00
Qi Wang
4094b7c03f
Limit # of iters of test_bitmap_xfu.
...
Otherwise the test is too slow for higher page sizes such as 64k.
2019-10-09 11:15:37 -07:00
Yinan Zhang
66e07f986d
Suppress tdata creation in reentrancy
...
This change suppresses tdata initialization and prof sample threshold
update in interrupting malloc calls. Interrupting calls have no need
for tdata. Delaying tdata creation aligns better with our lazy tdata
creation principle, and it also helps us gain control back from
interrupting calls more quickly and reduces any risk of delegating
tdata creation to an interrupting call.
2019-10-04 08:52:50 -07:00
Yinan Zhang
beb7c16e94
Guard prof_active reset by opt_prof
...
Set `prof_active` to read-only when `opt_prof` is turned off.
2019-10-02 11:42:53 -07:00
Gareth Lloyd
1df9dd3515
Fix je_ prefix issue in test
2019-09-24 11:24:57 -07:00
David T. Goldblatt
3d84bd57f4
Arena: Add helper function arena_get_from_extent.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
c97d255752
Eset: Remove temporary declaration.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
ce5b128f10
Remove the undefined extent_size_quantize declarations.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
821dd53a1d
Extent -> Eset: Rename arena members.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
e144b21e4b
Extent -> Eset: Move fork handling.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
77bbb35a92
Extent -> Eset: Move extent fit functions.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
1210af9a4e
Extent -> Eset: Move insertion and removal.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
a42861540e
Extents -> Eset: Convert some stats getters.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
820f070c6b
Move page quantization to sz module.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
63d1b7a7a7
Extents -> Eset: move extents_state_get.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
b416b96a39
Extents -> Eset: rename/move extents_init.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
e6180fe1b4
Eset: Add a source file.
...
This will let us move extents_* functions over one by one.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
4e5e43f22e
Rename extents_t -> eset_t.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
723ccc6c27
Extents: Split out extent struct.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
41187bdfb0
Extents: Break extent-struct/arena interactions
...
Specifically, the extent_arena_[g|s]et functions and the address randomization.
These are the only things that tie the extent struct itself to the arena code.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
529cfe2abc
Arena: rename arena_structs_b.h -> arena_structs.h
...
arena_structs_a.h was removed in the previous commit.
2019-09-23 23:06:27 -07:00
David T. Goldblatt
e7cf84a8dd
Rearrange slab data and constants
...
The constants logically belong in the sc module. The slab data bitmap isn't
really scoped to an arena; move it to its own module.
2019-09-23 23:06:27 -07:00
Qi Wang
d1be488cd8
Add --with-lg-page=16 to CI.
2019-09-22 18:51:03 -07:00
Qi Wang
ac5185f73e
Fix tcache bin stack alignment.
...
Set the proper alignment when allocating space for the tcache bin stack.
2019-09-13 12:32:29 -07:00
zhxchen17
b7c7df24ba
Add max_per_bg_thd stats for per background thread mutexes.
...
Added a new stats row to aggregate the maximum value of mutex counters for each
background threads. Given that the per bg thd mutex is not expected to be
contended, this counter is mainly for sanity check / debugging.
2019-09-13 09:23:57 -07:00
zhxchen17
4b76c684bb
Add "prof.dump_prefix" to override filename prefixes for dumps.
2019-09-12 22:26:03 -07:00
zhxchen17
242af439b8
Rename "prof_dump_seq_mtx" to "prof_dump_filename_mtx".
2019-09-12 22:26:03 -07:00
Giridhar Prasath R
e06658cb24
check GNU make exists in path
...
Signed-off-by: Giridhar Prasath R <cristianoprasath@gmail.com>
2019-09-11 16:36:19 -07:00
Qi Wang
22bc75ee3e
Workaround the stringop-overflow check false positives.
2019-09-09 11:35:04 -07:00
Yinan Zhang
93d6151800
Pass tsd down to prof_backtrace()
2019-09-05 10:57:43 -07:00
Yinan Zhang
671f120e26
Fix prof_backtrace() reentrancy level
2019-09-05 10:57:43 -07:00
Qi Wang
785b84e603
Make cache_bin_sz_t unsigned.
...
The bin size type was made signed only because the low_water could go -1, which
was already removed.
2019-09-04 13:37:07 -07:00
Qi Wang
23dc7a7fba
Fix index type for cache_bin_alloc_easy.
2019-09-04 13:37:07 -07:00
Qi Wang
2abb02ecd7
Fix MSVC 2015 build, as proposed by @christianaguilera-foundry.
2019-08-28 23:37:24 -07:00
Qi Wang
719583f14a
Fix large.nflushes in the merged stats.
2019-08-28 23:37:00 -07:00
Yinan Zhang
adce29c885
Optimize for prof_active off
...
Move the handling of `prof_active` off case completely to slow path,
so as to reduce register pressure on malloc fast path.
2019-08-27 14:48:56 -07:00