Daan
b759bcf5c7
Merge pull request #329 from asl/mi_stat_agg
...
Unify statistics collection
2021-01-29 12:52:29 -08:00
unknown
745cf1e2f5
fix build on ghc4.8 (issue #330 )
2020-12-10 12:33:35 -08:00
Anton Korobeynikov
765fc9c0ca
Unify statistic collection:
...
- For MI_STAT == 0 no allocation stats are collected
- For MI_STAT == 1 only aggregated values (across normal, large and huge heaps) are collected
- For MI_STAT == 1 separate per-bin collection for normal heap is done as well
2020-11-11 11:41:39 +03:00
Anton Korobeynikov
00fb89f771
Rename the field
2020-11-11 11:41:33 +03:00
daan
ca13e9cd59
better instruction scheduling for alloc
2020-10-15 19:46:33 -07:00
daan
6279835976
fix unused parameter warning
2020-10-11 13:22:14 -07:00
daan
7114d5424a
fix statistics to include padding correctly (issue #301 )
2020-10-11 13:14:43 -07:00
daan
44d030ba9d
fuse used decrement with test for slightly better codegen
2020-09-24 16:28:25 -07:00
daan
900c97664a
merge from dev-atomic
2020-09-03 09:47:01 -07:00
daan
b4825372ab
small compilation warning fixes (extra semicolon etc)
2020-08-29 19:30:38 -07:00
daan
ef8e5d18a6
replace atomics with C11/C++ atomics with explicit memory order; passes tsan. Issue #130
2020-07-26 18:01:33 -07:00
daan
a468430772
strengthen memory order of bit operations; insert memory fences
2020-07-26 14:19:30 -07:00
daan
09ade02429
bring inline with C11 atomics; no volatile and cas order of expected/desired
2020-07-25 22:52:27 -07:00
daan
8769082d63
add pointer validity check in debug mode for mi_usable_size/mi_realloc/mi_expand. Issue #269
2020-07-20 14:33:03 -07:00
daan
e31298bdc3
fix compiler warning in secure mode
2020-04-20 18:04:09 -07:00
daan
1116c0df2e
fix strnlen do not search beyond n characters, issue #228
2020-04-14 17:42:30 -07:00
daan
69a0846478
add MI_PADDING flag to cmake to supress use of padding in debug mode
2020-04-07 10:01:18 -07:00
Daan
1ece3ff6aa
Merge pull request #220 from cormacrelf/usable_size
...
Don't call mi_page_usable_size_of with an aligned pointer
2020-04-06 08:05:34 -07:00
Cormac Relf
0047b271f7
Call mi_page_usable_size_of with unaligned block rather than start of aligned memory
2020-04-06 22:50:21 +10:00
daan
ec61224db0
fix padding issue with zero sized allocation (issue #209 )
2020-02-18 20:05:30 -08:00
daan
baf08e8d54
fix size check on overflow when padding is enabled in debug mode
2020-02-17 09:59:34 -08:00
daan
f42b8526d0
fix wrong __declspec(restrict) and __attribute__((malloc)) attributes on reallocation functions
2020-02-13 10:36:39 -08:00
daan
f3c47c7c91
improved malloc zone handling on macOSX (not working yet)
2020-02-02 21:03:09 -08:00
daan
60cfc623be
fix zero initialization of blocks under 8 bytes when padding check is active
2020-02-01 14:29:12 -08:00
daan
edff9d4fbb
merge from dev-win (padding)
2020-02-01 12:32:59 -08:00
daan
aa68b8cbc7
improve encoding of padding canary and buffer overflow detection
2020-02-01 12:16:37 -08:00
daan
40f1e1e07b
byte-precise heap block overflow checking with encoded padding
2020-01-31 23:39:51 -08:00
daan
68112a2751
better padding implementation, more precise statistics
2020-01-31 20:34:24 -08:00
daan
4531367de2
fix padding check for aligned allocation; improve perf for small aligned allocations
2020-01-31 13:20:02 -08:00
daan
a7c69ccbea
fix stat accounting of segments with huge blocks
2020-01-30 06:25:42 -08:00
daan
7ff3ec2bf7
use EFAULT for buffer overflow and call abort in debug mode (as well as secure mode)
2020-01-29 17:25:40 -08:00
daan
5d212d688f
add MI_PADDING build option to add padding to each block to detect heap block overflows
2020-01-29 17:10:57 -08:00
daan
0316859e06
improve codegen for mi_free
2020-01-23 10:03:03 -08:00
daan
e3b16fe4ef
reduce type casts in atomic operations
2020-01-22 19:44:54 -08:00
daan
3957b2fd28
add mi_new_realloc(n) to support C++ style reallocation that raises std::bad_alloc on out-of-memory
2020-01-20 15:41:56 -08:00
daan
e8d7c80c74
fix build warnings on linux
2020-01-19 17:33:36 -08:00
daan
41e717c2e0
fix assertion in mi_block_zero_init (issue #194 )
2020-01-18 20:30:12 -08:00
daan
dc58388968
Add ability to register custom error function called on various error conditions; including ENOMEM
2020-01-17 19:59:55 -08:00
daan
6dd636d82d
improve STL allocator using mi_new_n and removing unused parameter names; follow up from pr #193 and #188
2020-01-17 15:41:52 -08:00
daan
7a9502973d
rearrange STL allocator code: remove pragma, ifdef for C++11
2020-01-16 15:57:11 -08:00
daan
4e91eab8fc
specialize mi_mallocn for count=1
2020-01-16 14:12:37 -08:00
daan
0099707af9
use delayed free for all pages; reduce size of the page structure for improved address calculation
2020-01-15 17:19:01 -08:00
daan
d596f08569
fix thread_free read in assertion
2020-01-03 22:06:27 -08:00
daan
9629a0190f
fix eager commit on large pages (issue #182 )
2020-01-02 17:25:00 -08:00
daan
fc3e537bd4
improve double free detection with faster same page check
2019-12-28 15:28:13 -08:00
daan
e3391d9a53
stronger encoding of free lists using two keys per page
2019-12-28 00:57:42 -08:00
daan
74dbfc30be
improved security by encoding NULL values; double free mitigation on by default; more precise free list corruption detection
2019-11-21 15:21:23 -08:00
Daan Leijen
4d4a2885f5
use atomic read/write on the page->heap field where concurrent interaction is possible
2019-11-20 13:19:17 -08:00
daan
b052d3b731
enable double free and heap corruption detection in debug mode
2019-10-28 15:54:33 -07:00
daan
28d4ec4c5a
fix statistics accounting of huge pages
2019-10-28 13:14:14 -07:00