daan
6b26f0cb17
merge from dev-exp (numa support)
2019-11-01 20:08:56 -07:00
daan
3fadf4abaf
initial numa awareness for regions
2019-11-01 20:01:08 -07:00
daan
a6499be074
initial numa support for arenas
2019-11-01 19:53:07 -07:00
daan
eed42445e8
merge from dev-exp
2019-10-31 20:40:02 -07:00
daan
aaf01620f4
improve allocation of the huge OS page arena
2019-10-31 19:39:49 -07:00
daan
a74e072a9a
set test-stress scale to 20 again
2019-10-31 19:00:26 -07:00
daan
62984c0a24
merge from dev-exp
2019-10-31 18:44:48 -07:00
daan
d36d04b4a6
add arena for huge page management
2019-10-31 15:35:10 -07:00
daan
bbca1cd8d9
allow decommit by default
2019-10-31 12:42:23 -07:00
daan
6695f8ae91
add allow_decommit option
2019-10-31 10:59:50 -07:00
daan
ed4f60fc7e
respect large pages for arena allocation
2019-10-31 10:59:40 -07:00
daan
28cb19148c
fixed memory arena allocation for huge pages
2019-10-31 09:10:58 -07:00
daan
f7d2c45af3
initial experiment with fixed memory arena and sliced segments
2019-10-31 00:40:41 -07:00
daan
c7ec30ae25
fix secure mode
2019-10-30 15:36:13 -07:00
daan
93ae3e26b1
Merge branch 'dev' into dev-win-exp
2019-10-30 15:22:56 -07:00
daan
8725a88fba
fix assertion in debug secure mode
2019-10-30 15:22:40 -07:00
daan
b73beede34
merge from dev
2019-10-30 15:19:34 -07:00
daan
b4d90818e9
merge from dev
2019-10-30 14:55:22 -07:00
daan
4a4d74927c
protect against double-free in multi-threaded free list
2019-10-30 14:53:21 -07:00
daan
6cf16b1201
fix reset error on windows when disabling eager commit option
2019-10-30 14:32:28 -07:00
daan
b052d3b731
enable double free and heap corruption detection in debug mode
2019-10-28 15:54:33 -07:00
daan
57b0b578ad
Merge branch 'dev' into dev-win
2019-10-28 14:12:37 -07:00
daan
87bdfbb9b6
use more conservative retire strategy
2019-10-28 14:12:06 -07:00
daan
081e2d1eb6
fix statistics display
2019-10-28 13:43:42 -07:00
daan
28d4ec4c5a
fix statistics accounting of huge pages
2019-10-28 13:14:14 -07:00
daan
9d4f57abf3
merge from dev-win
2019-10-28 12:33:01 -07:00
daan
1a36ca3eb9
merge from dev
2019-10-28 12:31:08 -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
4b15e2ed97
merge from dev
2019-10-17 18:24:35 -07:00
daan
fdfa6ed260
fix warnings at high warning level in msvc
2019-10-17 16:56:57 -07:00
daan
5de851a84d
update page_flags to have more portable definition
2019-10-17 16:48:16 -07:00
daan
93b4281b82
ensure randomized huge page start address in 1GiB aligned
2019-10-17 12:35:35 -07:00
daan
454bc67338
increase delayed output buffer to 32k
2019-10-17 12:14:15 -07:00
daan
6e94950de3
update redirection modules
2019-10-17 12:13:45 -07:00
daan
26c27fbf58
use uint8_t bit fields, and improve portability of page_flags type
2019-10-17 12:07:26 -07:00
Daan
72d1ab80c3
Merge pull request #160 from dscho/git-for-windows-fixes
...
Assorted fixes for compiler warnings
2019-10-17 11:51:39 -07:00
Johannes Schindelin
559688ec64
Suppress warning about unnamed struct
...
This prevents MSVC complaining with
warning C4201: nonstandard extension used: nameless struct/union
The struct might seem unnecessary to the occasional reader (it did seem
so to this commit's author), but it is not! It is required to align the
fields to a boundary, which is verified by the test suite. Removing that
"unnecessary" `struct` results in this failure:
1: Test command: mimalloc-test-api
[...]
1: test: malloc-zero... mimalloc: assertion failed: at src/page.c:591, mi_page_init
1: assertion: "!mi_page_has_aligned(page)"
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-17 20:43:18 +02:00
Johannes Schindelin
0fd0122c0a
Avoid compiler warning when casting the result of GetProcAddress()
...
It is most unfortunate that the return type of `GetProcAddress()` is
`FARPROC` (which is essentially `intptr_t(*)(void)): this type cannot
be cast by GCC without warnings to anything but the generic function
pointer type `void(*)(void)`.
Let's work around that.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-17 20:43:18 +02:00
Johannes Schindelin
5bd8ea2e4f
Repeat mi_decl_allocator
in functions' definitions
...
Quite a few functions are declared with that attribute, and VS 2019
complains if the definition does not repeat it.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-17 20:43:18 +02:00
Johannes Schindelin
e747a6f3a6
Use unsigned
for bit-field variables
...
It is actually non-standard to use `bool` with a bit-field quantifier,
and VS 2019 complains about this.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2019-10-17 20:43:18 +02:00
daan
f3a162f095
pick better umul_overflow variant based on size_t size
2019-10-17 09:52:10 -07:00
daan
4609537b8a
pick better umul_overflow variant based on intptr size
2019-10-17 09:47:12 -07:00
daan
08d83cc33d
disallow regular allocation from the huge reserved area
2019-10-17 09:24:57 -07:00
daan
a96c90db5d
remove old windows overriding method
2019-10-17 09:22:23 -07:00
daan
0e188a18a7
update test to match malloc with free
2019-10-17 09:21:20 -07:00
daan
46aa16b432
updated redirection module on windows
2019-10-17 09:20:57 -07:00
daan
99141497ee
merge from dev
2019-10-12 11:17:05 -07:00