149 Commits

Author SHA1 Message Date
daan
9ebb94fe17 set extra debug padding per-heap 2020-04-20 17:09:28 -07:00
daan
40385c528b add heap leak check method 2020-04-07 09:04:20 -07:00
daan
aa47541ee5 add mi_heap_print_json 2020-04-07 08:51:02 -07:00
daan
75053f211a add more detailed block info for heap visiting 2020-04-07 08:36:22 -07:00
daan
173978c122 add more detailed block info for heap visiting 2020-04-06 23:39:09 -07:00
daan
8a7d5804bc add corrupted block scanning on overflow detection 2020-04-06 16:10:43 -07:00
daan
083392fa15 add padding check in usable size 2020-04-06 13:42:39 -07:00
daan
a38abae0a1 comments and improved error message on buffer overflow 2020-04-06 13:30:17 -07:00
daan
19cae48556 merge from dev 2020-04-06 12:59:29 -07:00
daan
afc4f79a69 fix for ensuring heap initialization with static linking on windows on huge allocations (issues #221) 2020-04-06 12:15:12 -07:00
daan
0a3e5bb699 further fixes to compile on mingw without warnings (issue #217) 2020-04-06 10:56:53 -07:00
daan
faa83a1c47 fix issue number: 212 to #221 2020-04-06 09:19:26 -07:00
daan
c7e9cfd3ed add test case for issue #212 2020-04-06 08:32:25 -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
414acd49ab Add test to exercise mi_usable_size on aligned allocations 2020-04-06 22:50:21 +10:00
daan
2d52b967bc merge from dev 2020-03-16 16:07:52 -07:00
daan
ec61224db0 fix padding issue with zero sized allocation (issue #209) 2020-02-18 20:05:30 -08:00
daan
6e08b0c0c8 Merge branch 'dev-debug' of https://github.com/microsoft/mimalloc into dev-debug 2020-02-17 10:24:15 -08:00
daan
6527819eaf merge from dev 2020-02-17 10:24:03 -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
ba3e32cb63 fix test build on linux 2020-02-15 13:15:45 -08:00
daan
e9c5b31b1c keep dbg entries in release build to allow linking with both 2020-02-14 11:08:25 -08:00
daan
c04881ef8a add getcwd and fullpath wrappers 2020-02-13 17:59:43 -08:00
daan
ff2fe673e5 merge with dev 2020-02-13 14:32:54 -08:00
daan
e981e9227e ensure thread delayed freeing is correct during heap_absorb; #204 2020-02-13 13:12:19 -08:00
daan
8a2a52843d delete all thread owned heaps when a thread is terminated (issue #202) 2020-02-13 12:15:23 -08:00
daan
946a71c4a9 fix issue #204 (and #205) by doing thread delayed free after absorbing the pages 2020-02-13 11:37:48 -08:00
daan
f42b8526d0 fix wrong __declspec(restrict) and __attribute__((malloc)) attributes on reallocation functions 2020-02-13 10:36:39 -08:00
daan
7d098836eb wip: basic tracking of allocation locations is working 2020-02-13 00:43:34 -08:00
daan
2fbe0e8842 wip: improving tracking of allocation locations 2020-02-11 20:27:09 -08:00
Daan Leijen
21a95c7449 wip: track allocation locations in debug mode 2020-02-11 12:19:22 -08:00
daan
4090561975 wip: initial work on tracking source of an allocation in debug mode 2020-02-11 09:37:26 -08:00
daan
04f1c3b1e2 bump version to v1.6.0 2020-02-09 18:53:39 -08:00
daan
b241be7075 reenable mimalloc in the stress test 2020-02-02 22:08:33 -08:00
daan
d516c9f99c Merge branch 'dev-exp' into dev-exp-tls 2020-02-02 22:02:16 -08:00
daan
f3c47c7c91 improved malloc zone handling on macOSX (not working yet) 2020-02-02 21:03:09 -08:00
daan
f0dc6e7e42 add extra alignment test 2020-02-02 16:21:06 -08:00
daan
bb64634e4e Merge branch 'dev-exp' into dev-exp-tls 2020-02-01 17:48:57 -08:00
daan
3f17ac287c add 'nodiscard' attribute to mimalloc interface 2020-02-01 17:29:30 -08:00
daan
0989562c2d add initial fast tls for macOSX 2020-02-01 16:57:00 -08:00
daan
a169cf0e3f merge dev-exp; add pthread TLS support for macOSX 2020-02-01 14:10:10 -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
03b363a1c2 first working tls on macOS using interpose; still slow 2020-01-29 22:46:44 -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
19a0d9dfa0 clean up stress test 2020-01-25 12:51:56 -08:00
daan
5e32d00aab add visit count to abandoned to limit list length 2020-01-25 12:26:08 -08:00
daan
b31bc52618 add cache alignment directives for contended variables 2020-01-24 19:02:13 -08:00
daan
e070eba112 fix tagged null encoding, search segment cache before reclaim 2020-01-24 16:31:18 -08:00
daan
8cf4882a85 fix linux build 2020-01-24 10:38:25 -08:00
daan
8b1520f5c1 make stress test deterministic 2020-01-23 21:53:28 -08:00
daan
58fdcbb0cd fix bug in collect where has_page was not set on free pages 2020-01-23 21:37:14 -08:00
daan
f8ab4bd7dc add leak test 2020-01-23 19:49:32 -08:00
daan
66818bf632 use atomic yield on delayed-freeing; clarify code 2020-01-23 09:57:55 -08:00
daan
0f14f431c5 bump version to 1.5 for further development 2020-01-22 18:33:07 -08:00
daan
5bc1c52ae6 update documentation 2020-01-20 17:34:29 -08:00
daan
146899af8a add missing members to stl allocator (#193) 2020-01-20 15:27:05 -08:00
daan
9d7ac76d93 fix compilation under Intel C compiler (icc) 2020-01-19 18:35:45 -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
97bd204c42
Merge branch 'dev' into kile/stl 2020-01-16 15:33:13 -08:00
Kirsten Lee
526bee6843 merge stl and main header 2020-01-16 15:17:15 -08:00
daan
202246425b bump version to 1.4 for further development 2020-01-15 12:16:53 -08:00
daan
783e3377f7 add output argument to stat printing 2020-01-15 10:53:54 -08:00
daan
940df53b0a fix iteration count display in stress test 2020-01-08 17:57:17 -08:00
daan
683d8998d4 fix potential A-B-A problem with segment abandonment; noticed by Manual Poeter and Sam Gross 2020-01-08 17:45:38 -08:00
daan
5d2f111f64 make the stress test do more iterations under a smaller load to stay under 1GiB committed and increase thread interaction 2020-01-08 16:33:45 -08:00
Kirsten Lee
0a2520490b only include vector header when compiling c++ 2020-01-06 16:44:55 -08:00
Kirsten Lee
743e891738 add stl mimalloc wrapper 2020-01-06 16:18:22 -08:00
Daan Leijen
0d3c195f37 update stress test with more documentation 2019-11-22 11:28:55 -08:00
daan
24b768363e bump version to 1.3 for further development 2019-11-22 09:28:48 -08:00
daan
6568059cc6 merge from dev 2019-11-21 16:28:28 -08:00
daan
d55ab50a84 update version to 1.2 2019-11-21 16:10:04 -08:00
daan
b820009df7 update documentation 2019-11-21 16:09:34 -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
56b9fac4bf merge from dev 2019-11-20 13:31:04 -08:00
Daan Leijen
94bfb47725 update stress test for more realisitic size distribution 2019-11-20 12:59:26 -08:00
daan
fd3ce5dc7d improve stress test 2019-11-15 16:28:11 -08:00
Daan Leijen
8637f113d5 improve test-stress to run multiple iterations 2019-11-15 14:09:17 -08:00
Daan Leijen
d2279b2a3f update test-stress with better object distribution 2019-11-10 08:13:40 -08:00
Daan Leijen
7b72a4cd50 fix region suitable bug 2019-11-08 11:55:43 -08:00
daan
378716c467 refactor and improve atomic bitmap usage 2019-11-07 10:26:52 -08:00
daan
a69016c33e improve and document numa support 2019-11-02 10:30:16 -07: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
daan
ff9f29660b remove double_free call 2019-10-28 12:27:32 -07:00
daan
5dfdc092b5 improve windows warning message 2019-10-28 12:26:57 -07:00
daan
25246070ae fix double free check in secure = 4 mode; inline _mi_ptr_cookie 2019-10-19 08:34:18 -07:00
daan
2affdbbd2e stronger secure mode when defining MI_SECURE=4: checks for double free, corrupted free list, and invalid pointer frees. Performance is impacted but not too much -- more perf testing is needed 2019-10-18 18:11:04 -07:00
daan
0e188a18a7 update test to match malloc with free 2019-10-17 09:21:20 -07:00
daan
24777f6a91 limit aligned allocation to power-of-two alignment 2019-09-11 17:49:28 -07:00
daan
8903d7a526 fix tests for aligned allocation 2019-09-09 08:21:35 -07:00
daan
89858ab791 improve page_free_extend performance slightly; do not maintain expensive statistics in release mode 2019-09-06 16:48:48 -07:00
daan
136e120d51 update redirection modules 2019-09-01 17:21:58 -07:00
daan
e7bd8c5d14 merge with dev-win 2019-08-21 11:11:40 -07:00
daan
86d4ded831 Merge branch 'dev' into dev-exp 2019-08-20 08:27:46 -07:00
daan
a5071eb510 Merge branch 'dev' into dev-win 2019-08-20 07:50:03 -07:00
daan
27d794b5f4 fix option_enable call 2019-08-20 07:49:40 -07:00
daan
a8b24472cb use 1GiB huge pages on windows when reserving upfront 2019-08-19 18:16:12 -07:00