daan
5dfdc092b5
improve windows warning message
2019-10-28 12:26:57 -07:00
daan
fdfa6ed260
fix warnings at high warning level in msvc
2019-10-17 16:56:57 -07:00
daan
93b4281b82
ensure randomized huge page start address in 1GiB aligned
2019-10-17 12:35:35 -07: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
daan
08d83cc33d
disallow regular allocation from the huge reserved area
2019-10-17 09:24:57 -07:00
daan
d72b5350e3
fix error code on mprotect failure
2019-09-17 17:31:25 -07:00
daan
adf8e30eda
ensure large page privileges are acquired on windows when calling reserve_huge_os_pages
2019-09-14 15:23:28 -07:00
Daan Leijen
1909cfb346
refine mi_os_good_alloc_size and use it for huge pages (to ensure realloc is bounded as in #153
2019-09-10 13:26:51 -07:00
daan
f38fcf79eb
ensure addresses of large aligned allocations are randomized
2019-09-06 09:19:26 -07:00
daan
2be3208734
add wrap-around for large aligned allocations on Windows and Linux
2019-09-04 21:03:00 -07:00
daan
3bbc047ba6
reserve huge pages returns actual number of pages reserved
2019-09-04 12:26:02 -07:00
daan
739d11313c
fix commit zero on windows
2019-09-02 14:53:22 -07:00
daan
d1bd1644d5
support zero-initialized memory detection
2019-09-02 13:16:52 -07:00
daan
31726c6554
fix type; fix comment
2019-09-02 10:18:34 -07:00
daan
783ae72743
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2019-09-02 09:53:30 -07:00
daan
9af51506a6
track commit and is_large status more precisely
2019-08-28 11:58:30 -07:00
David Carlier
3903a10e93
FreeBSD (and possibly NetBSD) build fix.
2019-08-28 07:17:58 +00:00
daan
a551f3abc4
more precise commit statistics
2019-08-27 18:08:03 -07:00
daan
23b5593af6
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2019-08-27 16:40:47 -07:00
David Carlier
b72a2d9659
macOS: anonymous page ID make it as env var.
2019-08-27 19:17:41 +01:00
daan
db8d443ae6
track more precisely if memory is fixed or committed
2019-08-26 22:45:26 -07:00
daan
eea093000a
graceful fallback for huge page allocation on Linux
2019-08-26 13:47:52 -07:00
daan
8b06ab1e49
fix check on gigabyte alignment of huge os pages on windows
2019-08-26 12:41:35 -07:00
daan
a654732d99
merge from dev new atomics
2019-08-26 12:30:03 -07:00
daan
2159c22415
fix atomic declaration on windows
2019-08-25 23:06:18 -07:00
daan
e8664001f7
Use standard _Atomic declarations and clean up atomic operations
2019-08-25 22:59:12 -07:00
daan
6e360d34ee
fix 1GB huge page flag on Linux
2019-08-25 13:15:26 -07:00
daan
d04d379f66
fix merge conflicts
2019-08-23 21:44:07 -07:00
daan
d3224d0bba
Merge branch 'dev' into dev-win
2019-08-23 21:42:32 -07:00
daan
25ea9cf142
on windows use 4TiB area for aligned allocation
2019-08-23 21:38:45 -07:00
daan
acde83543f
remove threadid from pages and keep page flags separate
2019-08-23 14:08:00 -07:00
daan
a1c5218ff5
use 4TiB area on windows 64-bit for aligned allocation
2019-08-23 11:33:06 -07:00
daan
5d3bf1c844
don't commit or reset in huge OS pages
2019-08-23 11:22:35 -07:00
Jakub Szymanski
ee475fd8cd
add warning when no avaiable mem
2019-08-21 11:11:36 -07:00
daan
7a2e0df5ea
merge from dev
2019-08-20 07:37:46 -07:00
daan
d52e4039b6
remove the reset_discards option
2019-08-20 07:06:11 -07:00
daan
05631ebfc4
Merge branch 'dev' into dev-win
2019-08-19 21:23:04 -07:00
daan
d2324f1c2a
always check large_os_pages enabled option so it can be changed during the running of the program
2019-08-19 21:22:24 -07:00
daan
82e1b40166
Merge branch 'master' into dev
2019-08-19 19:13:25 -07:00
daan
a8b24472cb
use 1GiB huge pages on windows when reserving upfront
2019-08-19 18:16:12 -07:00
daan
0e639addb0
add environment option to reserve huge pages upfront
2019-08-19 14:14:50 -07:00
daan
741f37e1f0
always check large_os_pages enabled option so it can be changed during the running of the program
2019-08-19 11:17:00 -07:00
daan
42dedb00ec
initial implementation of mi_os_reserve_huge_pages
2019-08-19 11:10:06 -07:00
David Carlier
b0003cb101
linux build correction
...
MAP_HUGE_2MB is linux specific and the related header
is not automatically included.
2019-08-14 15:07:13 +01:00
daan
8ca79b5359
Hide MEM_EXTENDED_PARAMETER to compile on older SDK's
2019-08-12 08:58:22 -07:00
daan
648f535c80
improve support for transparent huge pages on Linux (pr #115 )
2019-08-11 18:23:31 -07:00
daan
f5902a7a82
ensure webassembly allocation sizes are page aligned
2019-08-11 08:06:17 -07:00
daan
a1384bff72
avoid atomic read on aligned allocation on Linux
2019-08-11 08:00:10 -07:00
daan
2fee6f98d7
Merge branch 'master' into dev
2019-08-10 15:23:43 -07:00
daan
6f3bc87dcd
merge from dev
2019-08-10 10:26:46 -07:00