Daan
4e65b5018f
clean up options
2022-02-02 19:01:41 -08:00
Daan
ccfe005731
decommit in abandoned pages on mi_collect
2022-02-02 17:08:05 -08:00
Daan
bd2ac3c92e
collect segment cache on mi_collect
2022-02-02 16:17:21 -08:00
David Carlier
b1e1b0573c
tls revives inline asm for openbsd
2022-01-27 07:01:32 +00:00
Michael Clark
9da8788dae
mimalloc-types: amend comment adding medium to list of page kinds
2022-01-19 10:14:08 +13:00
daan
a74c05c6c0
Merge branch 'dev' into dev-slice
2022-01-10 16:21:15 -08:00
Daan
55b4d5e2b1
Merge pull request #517 from tiran/debug-uninit
...
Allow overrides of MI_DEBUG memory constants
2022-01-10 16:12:10 -08:00
Daan
f317225a70
ignore reset_decommits option in the 2.x / dev-slice version
2022-01-10 12:10:18 -08:00
Daan
0842004b61
Merge branch 'dev' into dev-slice
2022-01-10 12:04:47 -08:00
Daan
4fc63358a6
update copyright year
2022-01-10 12:01:26 -08:00
Daan
9f9c77e6b6
Merge branch 'dev' into dev-slice
2022-01-10 11:41:12 -08:00
Daan
4b63c76861
avoid conditional load on macos
2022-01-10 11:40:36 -08:00
Christian Heimes
0353fc38dd
Allow overrides of MI_DEBUG memory constants
...
CPython and Windows CRT debug builds use different values for uninit,
freed, and padding bytes. Make ``MI_DEBUG_*`` constants conditional to
allow embedders to override the constants.
Windows dbgheap:
```
_bNoMansLandFill = 0xFD
_bDeadLandFill = 0xDD
_bCleanLandFill = 0xCD
```
Python memory debug
```
PYMEM_CLEANBYTE 0xCD
PYMEM_DEADBYTE 0xDD
PYMEM_FORBIDDENBYTE 0xFD
```
Signed-off-by: Christian Heimes <christian@python.org>
2022-01-05 13:22:47 +01:00
daan
3eac4a912c
Merge branch 'dev' into dev-slice
2022-01-01 16:24:41 -08:00
daan
43e5cd2671
revise assembly test for the _mi_threadid(); fix issue #495 with musl libc on arm; test specifically for bionic libc on Android
2022-01-01 15:54:06 -08:00
Daan
6ead2840ec
Merge pull request #504 from res2k/tweak-stats-doc
...
Tweak documentation for mi_heap_area_t::used.
2021-12-20 17:44:52 -08:00
Frank Richter
ff3bb5ce7b
Tweak documentation for mi_heap_area_t::used.
...
For microsoft/mimalloc#503 .
2021-12-19 14:51:15 +01:00
daan
72a33c37ef
merge from dev
2021-12-18 11:34:02 -08:00
Daan Leijen
78e2e580f8
Merge branch 'dev' into dev-slice
2021-12-18 11:11:54 -08:00
Daan Leijen
89090510bd
update alignment tests
2021-12-18 11:11:44 -08:00
daan
30a99e2c51
default to portable C for the thread id on arm 32-bit, issue #495
2021-12-17 13:48:39 -08:00
daan
abbff9c030
merge from dev (MI_ALIGNED_MAX)
2021-12-17 13:23:24 -08:00
daan
89f583a69b
improve aligned allocation performance
2021-12-17 13:18:05 -08:00
daan
684c2c82a7
restrict max aligment boundary to prevent bug with segment determination (found by Matthew Parkinson).
2021-12-17 11:40:46 -08:00
daan
2af1db7f3a
Merge branch 'dev' into dev-slice
2021-12-15 19:29:04 -08:00
daan
55ccc94707
wip: fix zero init for sbrk; add lock around sbrk
2021-12-15 19:28:34 -08:00
daan
82a0e56f35
fix warning on mi_reallocarr
2021-12-15 18:54:57 -08:00
Daan
4a586808f7
merge
2021-12-15 16:52:36 -08:00
Daan
317093d78b
fix Android overriding (issue #381 and PR #487 )
2021-12-15 16:48:57 -08:00
Daan
17456f18d1
Merge pull request #489 from devnexen/remove_dfbsd_warning
...
removes dragonflybsd warning since the api and library overriding wor…
2021-12-15 16:37:56 -08:00
Daan
1b09877bc4
Merge branch 'dev' into netbsd_reallocarr
2021-12-15 16:27:26 -08:00
Daan
523e6d5c9b
fix thread slot on arm32 (issue #495 )
2021-12-15 16:05:07 -08:00
Daan
d15f5fae64
merge from dev
2021-12-14 18:29:58 -08:00
Daan
69b6b24688
further improvements to installation directories
2021-12-14 18:29:14 -08:00
Daan
c858690dea
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2021-12-12 10:35:19 -08:00
Daan
3a212d1895
fix assembly for mi_tls_slot_set on x32 and x64. Issue #488
2021-12-12 10:35:13 -08:00
David Carlier
d6a56dd99d
introduces netbsd's reallocarr overriding.
...
and couple of tests.
2021-12-01 22:43:13 +00:00
DC
20e37bf7c1
removes dragonflybsd warning since the api and library overriding works, also
...
for the os doc report purpose.
2021-11-28 08:14:21 +00:00
daan
5f6246b2cb
merge from dev
2021-11-23 19:05:19 -08:00
daan
9183b1eec0
remove experiment with unsafe_free_with_threadid
2021-11-23 19:04:41 -08:00
daan
ef6ea7e718
merge from dev
2021-11-23 18:00:12 -08:00
daan
8b60a5ab70
add mi_unsafe_free_with_threadid and mi_get_current_threadid()
2021-11-23 17:59:27 -08:00
daan
f412df7a2b
make segment size smaller on 32-bit
2021-11-14 16:52:10 -08:00
daan
5a1c3c8a4a
Merge branch 'dev' into dev-slice
2021-11-14 16:48:04 -08:00
daan
85eccf324f
Merge branch 'master' into dev
2021-11-14 16:44:54 -08:00
Daan
18fc788201
merge from dev
2021-11-14 15:39:05 -08:00
Daan
4a590b1447
bump version number to 1.7.3
2021-11-14 15:33:56 -08:00
Daan
d67ff1ca9f
add include cstdef for std::size_t in C++
2021-11-14 15:32:43 -08:00
Daan
9c9c3a0311
Merge pull request #485 from devnexen/builtin_overflow_sig_fix
...
fix spurious build warning with overflow builtins
2021-11-14 14:47:38 -08:00
daan
70547b5f16
fix slice count
2021-11-14 12:09:20 -08:00
daan
32170897dd
make decommit size equal to slice size
2021-11-14 11:45:28 -08:00
daan
c46a6f66c6
Merge branch 'dev-slice' into dev-slice-cmask
2021-11-14 11:26:47 -08:00
daan
a4ea2205ba
merge from dev
2021-11-14 11:25:51 -08:00
daan
4b0cda2012
take overcommit into account for eager commit delay
2021-11-14 11:23:11 -08:00
daan
511a8996f3
increase commit mask blocks to 2xslice size
2021-11-13 20:12:03 -08:00
daan
12bfd18ba7
fix commit mask for huge segments
2021-11-13 16:15:03 -08:00
daan
627892852c
merge from dev-slice
2021-11-13 15:53:57 -08:00
daan
b72065f04b
move commit mask functions to segment.c
2021-11-13 15:50:26 -08:00
daan
f1ce9228a1
use size_t for bitmask
2021-11-13 15:29:57 -08:00
daan
88e6b52b88
fix types to size_t
2021-11-13 15:25:51 -08:00
daan
f9597ba7cb
merge from dev-slice
2021-11-13 15:18:56 -08:00
daan
721486c82b
merge from dev
2021-11-13 14:52:11 -08:00
daan
28896e5b19
prefix UNUSED,KiB,MiB,GiB; add mi_threadid_t type; add mi_ssize_t
2021-11-13 14:46:03 -08:00
daan
9afc253726
add comments, renaming
2021-11-13 14:03:16 -08:00
daan
6ace2fe4e0
Merge branch 'dev-slice' into dev-slice-cmask
2021-11-12 19:04:35 -08:00
daan
5c08f75d69
merge from dev
2021-11-12 19:04:18 -08:00
daan
f9ac60a90f
suppres eager commit delay for the first 4 threads
2021-11-12 19:03:20 -08:00
daan
335d554438
merge from dev-slice
2021-11-12 18:38:14 -08:00
daan
b1aff903f5
fix decommit bug
2021-11-11 17:45:41 -08:00
daan
998c2de633
merge from dev-slice
2021-11-10 16:49:43 -08:00
daan
49d64dbc95
save decommit_mask for segments in the segment cache
2021-11-10 16:30:21 -08:00
daan
8cc7d0c019
increase segment size to 64MiB
2021-11-10 16:29:53 -08:00
daan
49c75a3157
wip: increase commit mask resolution
2021-11-09 20:19:31 -08:00
Daan
464cba833e
Merge branch 'dev' into dev-slice
2021-11-04 18:55:34 -07:00
Daan
e853f530a0
add noexcept attributes to improve mi_free codegen
2021-11-04 18:54:57 -07:00
Daan
f3ffa663f1
merge from dev
2021-11-02 22:42:25 -07:00
Daan
751a2249c8
add mi_decl_externc, nice layout
2021-11-02 21:53:20 -07:00
Daan
5360639748
add mi_malloc_good_size
2021-11-02 21:52:00 -07:00
dc
5b0e73281f
fix spurious build warning with overflow builtins
2021-10-28 22:43:21 +01:00
Daan
db223e4adb
merge from dev
2021-10-27 18:09:16 -07:00
Daan
f38956568c
only set visibility attribute when compiling for a shared library
2021-10-27 17:01:12 -07:00
Daan
725fe2ac7d
Merge branch 'dev' into dev-slice
2021-10-21 16:17:31 -07:00
Christian Heimes
13de1920ae
Rename _os_random_weak to _mi_os_random_weak
...
The ``_os_random_weak`` function is the only non-static function
besides ``_ZSt15get_new_handlerv`` that is not prefixed with ``mi`` or
``_mi``.
The discrepancy was discovered by CPython's smelly script. The checker
looks for exported symbols that don't have well-defined prefixes.
Signed-off-by: Christian Heimes <christian@python.org>
2021-10-21 21:40:45 +02:00
Daan
aeb73b0cd4
merge from dev
2021-10-19 12:55:10 -07:00
Daan
75987e4590
Merge pull request #410 from jserv/enforce-binary-prefix
...
Distinguish SI and Binary Prefixes
2021-10-19 12:28:33 -07:00
Daan
6068a8bb1b
Merge pull request #420 from hankluo6/typo
...
Fix typo
2021-10-19 12:17:44 -07:00
Daan
20a3eee6f0
Merge pull request #449 from bmalrat/FixTypo
...
Fixed typo in header
2021-10-19 10:24:54 -07:00
Daan
a4078df9d5
Merge branch 'dev' into dev-slice
2021-10-19 10:17:53 -07:00
Daan
5b9409f4d6
add space after _Atomic to prevent errors on msvc without /TP (see PR #452 )
2021-10-19 10:17:30 -07:00
Daan
1917fbd847
Merge pull request #467 from tiran/strict_prototypes
...
Fix strict function prototype warnings
2021-10-19 09:35:40 -07:00
Christian Heimes
7c73e3996d
Fix strict function prototype warnings
...
Fix warning ``warning: function declaration isn’t a prototype`` when
building mimalloc with ``-Wstrict-prototypes`` flag. In C argumentless
functions should be declared as ``func(void)``.
Reproducer:
```shell
$ cmake ../.. -DCMAKE_C_FLAGS="-Wstrict-prototypes"
$ make VERBOSE=1
```
Co-authored-by: Sam Gross <colesbury@gmail.com>
Co-authored-by: Neil Schemenauer <nas@arctrix.com>
Signed-off-by: Christian Heimes <christian@python.org>
2021-10-19 10:48:26 +02:00
Daan Leijen
54659aec9e
merge from dev
2021-10-18 16:28:08 -07:00
Daan Leijen
e6b58052da
add start offset to pages to reduce cache/page effects
2021-10-02 11:13:00 -07:00
Daan Leijen
9c5928060e
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2021-10-01 15:10:42 -07:00
Daan Leijen
d7ac4478a8
Merge branch 'dev' into dev-slice
2021-10-01 15:05:41 -07:00
Daan Leijen
679aad0659
update wasm support with emscripten compilation; now using sbrk instead of wasm_memory_grow
2021-10-01 15:05:01 -07:00
paulip1792
a2c3b0f8af
add option to reserve huge os pages at a specific numa node.
2021-08-10 16:30:44 +08:00
bmalrat
30be78d97a
Fixed typo in headers
2021-08-04 17:31:48 -04:00
Jim Huang
4369fe4323
Eliminate preprocessor warnings due to undefined "__GNUC__" with ClangCL
...
When building some code against mimalloc with C inside Visual Studio
with ClangCL, the compiler complains about __GNUC__ being undefined.
Reported by Mojca Miklavec.
Close #422
2021-06-24 17:29:06 +08:00
hank
1c1571742d
fix typo
2021-06-21 22:36:47 +08:00
Daan Leijen
b3b0fb5832
merge from dev
2021-06-17 20:05:40 -07:00
Daan Leijen
728be93977
fix for #414 making numa node count atomic
2021-06-17 19:38:51 -07:00
Daan Leijen
5869c85749
merge from dev
2021-06-17 19:18:57 -07:00
Daan Leijen
a83bca72b3
fixes for M1; disable interpose use zones; fix pedantic warnings
2021-06-17 19:15:09 -07:00
Daan
8af2511e66
Merge pull request #412 from diorszeng/dev-slice
...
fix typo
2021-06-07 16:55:03 -07:00
Daan Leijen
aeb62c2711
fix double quote includes
2021-06-07 16:50:31 -07:00
Daan Leijen
4ba32c3160
Revert "make all includes relative"
...
This reverts commit 1feb6123d90f5557a0fc1bc2afc72401e58f8cb0.
2021-06-07 16:47:57 -07:00
Daan Leijen
7b595bd957
Merge branch 'dev' into dev-slice
2021-06-06 20:31:53 -07:00
Daan Leijen
1feb6123d9
make all includes relative
2021-06-06 20:31:36 -07:00
diorszeng
0611058974
Update mimalloc-types.h
...
fix typo
2021-05-31 15:02:17 +08:00
Jim Huang
0f57425f80
Distinguish SI and Binary Prefixes
...
SI prefixes [the decimal prefixes] refer strictly to powers of 10. They
should not be used to indicate powers of 2. e.g., one kilobit
represents 1000 bits instead of 1024 bits. IEC 60027‐2 symbols are
formed adding a "i" to the SI symbol (e.g. G + i = Gi).
2021-05-30 20:13:28 +08:00
Daan Leijen
10ce8839fa
merge from dev
2021-04-28 13:23:46 -07:00
Jim Huang
5940d3bcce
Bump copyright date
...
Each source file has been changed according to relevant Git activities.
2021-04-24 16:35:11 +00:00
Daan
766f1f9345
Merge pull request #388 from nico-abram/patch-2
...
Fix typo in comment
2021-04-22 10:34:13 -07:00
Daan
f941015928
Merge pull request #384 from kdrag0n/fix-android-thread-id
...
Fix thread ID getter on Android ARM/AArch64
2021-04-22 10:33:53 -07:00
Jim Huang
3402c6cc3f
Revise the use of macOS predefined macro
...
Quoted from "Porting UNIX/Linux Applications to OS X,"[1]
* macro __MACH__ is defined if Mach system calls are supported;
* macro __APPLE__ is defined in any Apple computer.
__MACH__ is not specific to macOS since GNU/Hurd runs on a Mach-based
microkernel (gnumach) [2]. __MACH__ is defined by the compiler,
leading to potential confusions. The solution is just changing the
checked identifier (i.e. __APPLE__), so it is really used only on
macOS.
[1] https://developer.apple.com/library/archive/documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html
[2] https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html
2021-04-21 15:24:02 +08:00
unknown
8311cef0d1
Fix typo in comment
...
it -> if in mimalloc-types.h
2021-04-17 15:08:25 -03:00
Danny Lin
ad2fa2bf6f
Fix thread ID getter on Android ARM/AArch64
...
Android's Bionic libc stores the thread ID in TLS slot 1 instead of 0
on 32-bit ARM and AArch64. Slot 0 contains a pointer to the ELF DTV
(Dynamic Thread Vector) instead, which is constant for each loaded DSO.
Because mimalloc uses the thread ID to determine whether operations are
thread-local or cross-thread (atomic), all threads having the same ID
causes internal data structures to get corrupted quickly when multiple
threads are using the allocator:
mimalloc: assertion failed: at "external/mimalloc/src/page.c":563, mi_page_extend_free
assertion: "page->local_free == NULL"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":74, mi_page_is_valid_init
assertion: "page->used <= page->capacity"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":100, mi_page_is_valid_init
assertion: "page->used + free_count == page->capacity"
mimalloc: assertion failed: at "external/mimalloc/src/page.c":74, mi_page_is_valid_init
assertion: "page->used <= page->capacity"
Add support for Android's alternate TLS layout to fix the crashes in
multi-threaded use cases.
Fixes #376 .
2021-04-07 01:59:47 -07:00
Daan Leijen
34ba03951e
merge from dev
2021-04-06 11:01:06 -07:00
Daan Leijen
c6f5092287
merge from dev
2021-04-06 11:00:28 -07:00
Daan Leijen
dc6bce256d
bump version to v2.0.1
2021-04-06 10:58:12 -07:00
Daan Leijen
985f313b35
bump version to 1.7.1
2021-04-06 10:56:26 -07:00
Daan Leijen
8f69e7095d
Merge branch 'dev' into dev-slice
2021-02-22 14:28:22 -08:00
Daan Leijen
71ac98ab08
rename <Windows.h> include to <windows.h> for mingw compatibility (see pr #367 )
2021-02-22 13:04:11 -08:00
Daan Leijen
1b22da3c28
Merge branch 'dev' into dev-slice
2021-02-02 10:46:43 -08:00
Daan Leijen
331491e1e8
build fix for Apple M1 (issue #354 and pr #356 )
2021-02-02 10:46:30 -08:00
Daan Leijen
ba84aa2783
Merge branch 'dev' into dev-slice
2021-02-01 15:47:37 -08:00
Daan Leijen
a7c33a3b0e
fix getting the unique thread id on the Apple M1, see issue #354 .
2021-02-01 15:47:22 -08:00
Daan Leijen
bd56782f26
bump version to 2.0.0
2021-01-31 14:02:06 -08:00
Daan Leijen
8bcc60edd9
Merge branch 'dev' into dev-slice
2021-01-31 13:57:35 -08:00
Daan Leijen
92ead2d880
bump version to 1.7.0
2021-01-31 13:51:19 -08:00
Daan Leijen
36b7a3cb03
merge from dev
2021-01-30 16:37:38 -08:00
Daan Leijen
35c1fc2be9
limit memcpy as rep stosb to windows where the cpu supporst FSRM; add mi_memcpy_aligned for machine-word aligned copy. see issue #201 and pr #253
2021-01-30 14:33:46 -08:00
Daan Leijen
b93cba3b05
merge from dev
2021-01-29 16:53:52 -08:00
Daan Leijen
92ec493a5d
possible fix for aligment warning (issue #341 )
2021-01-29 16:21:50 -08:00
Daan Leijen
0a06884732
ensure memcpy with rep stosb is only used on windows
2021-01-29 16:09:09 -08:00
Daan
9b966c3492
Merge pull request #253 from haneefmubarak/memcpy-rep-movsb-windows-201
...
resolve #201 with a platform-selective REP MOVSB implementation
2021-01-29 16:00:00 -08:00
Daan Leijen
72559c5c49
merge from dev
2021-01-29 13:08:00 -08:00
Daan
b759bcf5c7
Merge pull request #329 from asl/mi_stat_agg
...
Unify statistics collection
2021-01-29 12:52:29 -08:00
Daan Leijen
1e9a5c2d78
Merge branch 'dev' into dev-slice
2021-01-28 17:37:13 -08:00
Daan Leijen
78ce716e2d
add comment on use of tpidrro_el0 on macOS
2021-01-28 17:36:56 -08:00
Daan Leijen
8d4444ef00
remove spurious parenthesis ( #350 )
2021-01-28 17:36:35 -08:00
Daan Leijen
e314699ee0
add debug view of arenas
2021-01-28 17:32:42 -08:00
Daan
d9ae916a74
Merge pull request #350 from mr-c/patch-1
...
add/improve atomic yields for SSE2, ARM*, PowerPC
2021-01-28 17:29:54 -08:00
Uwe L. Korn
a753084f74
Use APPLE instead of MACH
2021-01-28 11:38:38 +01:00
Michael R. Crusoe
fb66ebea1d
add/improve atomic yields for SSE2, ARM*, PowerPC
2021-01-23 16:45:47 +01:00
Uwe L. Korn
88330cfc9f
Use __APPLE__ instead of __MACH__
2021-01-22 17:06:43 +01:00
Uwe L. Korn
ab3dac04c2
Use tpidrro_el0 for thread local storage in macOS-arm64
...
Fixes #343
2020-12-30 21:49:41 +01:00
Daan Leijen
da79629308
Merge branch 'dev' into dev-slice
2020-12-17 14:11:50 -08:00
Daan
03503ea4e5
Merge pull request #339 from devnexen/spin_impl_upd
...
Restricts cpu yield instructions a little.
2020-12-17 14:06:23 -08:00
Daan
33614cc054
Merge pull request #342 from wsmoses/fix2
...
Fix strndup override
2020-12-17 14:06:01 -08:00
Daan Leijen
3c70317393
merge from dev
2020-12-15 16:07:23 -08:00
Daan Leijen
bb386025b5
update override on macOS with interpose of malloc_default_zone (issues #313 )
2020-12-15 16:03:54 -08:00
William S. Moses
30fc86cca9
Fix strndup override
2020-12-13 01:50:31 -05:00
David Carlier
33a10b4860
Restricts cpu yield instructions a little.
...
adding clobber for ARM and preventing older 32 bits chips not supporting this instruction.
2020-12-12 12:19:04 +00:00
Daan Leijen
b803095b83
merge from dev
2020-12-10 13:17:56 -08:00
Daan
9d0555c65b
Merge pull request #326 from asl/mi_stat_counter
...
Honour MI_STAT in couple more places
2020-12-10 11:53:30 -08:00
Daan
56a1c852ea
Merge pull request #325 from asl/max-error-counter
...
Do not use the same counter for warnings and errors
2020-12-10 10:23:08 -08:00
Daan
5bbe1c0216
Merge pull request #323 from devnexen/dfbsd_build_fix
...
DragonFly support fix (for 5.8.x and forward).
2020-12-10 10:19:05 -08:00
Daan
8b8011b4f0
Merge pull request #322 from Kokokokoka/x32_patch
...
fix for x32 builds
2020-12-10 10:14:04 -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
Anton Korobeynikov
39bcf8a6b0
Honour MI_STAT in couple more places.
2020-11-02 00:14:02 +03:00
Anton Korobeynikov
9c45221243
Do not use the same counter for warnings and errors.
...
Warnings happen normally and could be safely ignored in the most cases,
however errors, if enabled, should not be ignored. Currently since warnings
and errors share the same counter we effectively stop showing errors after
16 warnings (which happen all the time).
Use different counters for errors and warnings.
2020-11-01 23:57:42 +03:00
David Carlier
e6c2fd44fc
DragonFly support fix (for 5.8.x and forward).
...
The pthread slot approach is somewhat buggy (pretty visible
with the stress unit test which segfault more or less randomly,
but the stats never show up).
Using the default approach instead, the test passes eventough
it s relatively slow (e.g 1.5 sec on FreeBSD vs 4.5 on DragonFly with same
machine).
2020-10-22 11:15:37 +01:00
Vasya B
cb45e3c6b1
fix for x32 builds
2020-10-19 21:00:16 +00:00
daan
e1c38eef76
use allow_decommit option for both the segment cache and pages
2020-09-24 17:20:39 -07:00
daan
13a4030619
bump version to 1.6.7
2020-09-24 16:30:40 -07:00
daan
b59abce8ea
Merge branch 'dev' into dev-slice
2020-09-24 10:16:54 -07:00
daan
9d5098c705
bump version to 1.6.7 for further development
2020-09-24 10:16:40 -07:00
daan
6adb919085
bump version to 1.6.6
2020-09-24 10:14:10 -07:00
daan
f88b4b4c27
extend mi_process_info to include elapsed time
2020-09-24 10:13:25 -07:00
daan
680c9266bf
Merge branch 'dev' into dev-slice
2020-09-24 09:29:43 -07:00
daan
d0d3634143
bump version for further development
2020-09-24 09:29:37 -07:00
daan
165b64f553
Merge branch 'dev-exp' into dev-slice
2020-09-24 09:11:58 -07:00
daan
c05302f097
Merge branch 'dev' into dev-exp
2020-09-24 09:11:49 -07:00
daan
64a3d24dcd
bump version to 1.6.5
2020-09-23 20:00:23 -07:00
daan
fa01875eb2
merge from dev (with is_pinned/is_large separation)
2020-09-08 17:54:58 -07:00
daan
8607ff617c
add environment option mi_reserve_os_memory
2020-09-08 17:16:31 -07:00
daan
364674185e
add option to limit OS allocation and only allow allocation from arenas
2020-09-08 16:56:51 -07:00
daan
14b8d27386
track pinned memory separately from large os pages
2020-09-08 16:46:03 -07:00
daan
037285ac09
refactor segment cache and map in a separate source file
2020-09-08 13:27:34 -07:00
daan
a948724340
merge from dev (bitmap split)
2020-09-08 10:33:30 -07:00
daan
c86459afef
split bitmap code into separate header and source file
2020-09-08 10:14:13 -07:00
daan
30b993ecf3
consolidate bit scan operations
2020-09-08 09:27:57 -07:00
daan
371532ff02
merge from dev
2020-09-07 21:43:05 -07:00
daan
c7272afa9a
add mi_reserve_os_memory/mi_manage_os_memory; allow arena allocations to cross multiple bitmap fields
2020-09-07 21:34:34 -07:00
daan
953bbde089
fix is_in_same_page check
2020-09-06 15:09:51 -07:00
daan
b7046934e5
Merge branch 'dev' into dev-slice
2020-09-06 13:53:30 -07:00
daan
46ee8952eb
update mi_process_info to not use doubles
2020-09-06 13:53:02 -07:00
daan
45300ac43d
merge from dev
2020-09-06 13:24:47 -07:00
daan
8c838a949f
Merge branch 'dev' into dev-slice
2020-09-06 13:22:44 -07:00
daan
ee286919d9
add mi_process_info api call
2020-09-06 13:21:19 -07:00
daan
4355ab7d20
add i64 atomics
2020-09-06 13:21:02 -07:00
daan
f7dc4847f2
keep commit_mask live in the cache for better reuse
2020-09-05 21:58:32 -07:00
daan
63a9f45ba6
add initial mi_commit_mask abstraction
2020-09-05 19:39:10 -07:00
daan
83bd352f37
roll back previous commit (use standard C++ atomics on msvc
2020-09-05 11:29:38 -07:00
daan
102a85937e
experiment with using non-c++ atomics on msvc
2020-09-05 11:27:06 -07:00
daan
4df01218e2
fix msvc compilation with new atomics
2020-09-05 10:03:37 -07:00
daan
644e453709
Merge branch 'dev' into dev-slice
2020-09-05 09:37:38 -07:00
daan
2e311f341b
fix msvc compilation in C mode
2020-09-05 09:37:09 -07:00
daan
7c2b79bef0
Merge branch 'dev' into dev-slice
2020-09-05 09:17:59 -07:00
daan
50de0d2358
fix C++ compilation with new atomics
2020-09-05 09:17:42 -07:00
daan
97f56b1e08
merge from dev
2020-09-04 14:21:33 -07:00
daan
f107acb3c8
fix __cplusplus test (pr #287 )
2020-09-04 10:40:05 -07:00
daan
f6109765d8
update whitespace and comments
2020-09-03 15:04:40 -07:00
daan
03071dec0f
merge from dev-atomic with new atomic interface
2020-09-03 12:13:09 -07:00
daan
900c97664a
merge from dev-atomic
2020-09-03 09:47:01 -07:00
daan
76a68cd7af
bump version to 1.6.6 with new atomics
2020-09-03 09:45:53 -07:00
daan
b4825372ab
small compilation warning fixes (extra semicolon etc)
2020-08-29 19:30:38 -07:00
daan
8033b62979
allow overriding MI_MAX_ALIGN_SIZE
2020-08-29 09:59:15 -07:00
daan
e4ddc75069
set delayed decommit mask more precisely to only decommit currently committed blocks
2020-08-28 08:46:51 -07:00
daan
2cffc3b851
merge from dev
2020-08-27 22:43:57 -07:00
daan
5805c39916
enable --std=c99 compilation; fix mingw compilation
2020-08-09 17:55:17 -07:00
daan
ac0c121c68
update documentation for 1.6.4 release
2020-07-27 08:55:26 -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
a9f46dc86f
reduce memory order constraints for better efficiency on ARM etc
2020-07-26 11:58:02 -07:00
daan
ebf951e851
extra checks for atomic ptr exchange; extend mi_atomic_yield for win32
2020-07-26 00:15:57 -07:00
daan
95afd0509f
make segment abandoned_next atomic; tsan passes without warnings now (issue #130 )
2020-07-25 23:50:22 -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
e27422adca
switch to using C++ atomics in MSVC as well
2020-07-25 20:55:45 -07:00
daan
afe29cb8f5
fix ub on shift, issue #279
2020-07-25 19:33:02 -07:00
daan
a9a21f39d8
fix memory order for CAS failure, issue #130
2020-07-23 15:52:02 -07:00
daan
b74caddcc1
fix memory order to acq_rel for atomic and/or, issue #130 , thanks @mpoeter!
2020-07-23 15:00:49 -07:00
daan
8aa18d3661
fix TSAN warning for statistics maximum, issue #130
2020-07-22 14:16:18 -07:00
daan
444afa934f
fix memory order for weak CAS, issue #130 , thanks @mary3000!
2020-07-22 13:58:00 -07:00
daan
2e1b4f512d
make max update in the stats atomic
2020-07-22 13:45:04 -07:00
daan
c5406f327e
move include 'limits.h' outside of definition
2020-07-21 18:51:25 -07:00
David Carlier
0c550d1626
illumos support/build fix and large page support
2020-07-10 03:26:14 +01:00
Haneef Mubarak
4c45793ec1
fix __movsb typecast error MSVC
2020-05-26 16:16:19 -07:00
Haneef Mubarak
6c92690914
fix REP MOVSB doc comment typo
2020-05-26 16:08:33 -07:00
Haneef Mubarak
429025634e
resolve #201 with a platform-selective REP MOVSB implementation
2020-05-26 16:04:28 -07:00
daan
cb05ef9f2c
merge from dev
2020-05-19 10:43:46 -07:00
daan
a7d2bc8ad6
edit warning messages to be more consistent
2020-05-19 10:16:28 -07:00
daan
53aa46890a
merge from dev
2020-05-05 10:54:59 -07:00
daan
cefc930f72
bump version to 1.6.4 for further development
2020-05-05 10:47:46 -07:00
daan
e5b72cdfe7
reduce segment size and increase cache
2020-05-02 22:22:35 -07:00
daan
69158f2c76
roll back again to new arena cache: previous perf regression was caused due to accidentally making secure mode default
2020-05-02 12:04:36 -07:00
daan
b8846f7a27
fix unprotect of guard pages
2020-05-02 10:51:10 -07:00
daan
dcb3574cf0
fix assertions for huge segment free
2020-05-01 21:14:41 -07:00
daan
5cfdc39ff1
remove on-demand page commit option
2020-04-30 18:23:33 -07:00
daan
dad3be3c64
update comments
2020-04-30 17:21:36 -07:00
daan
0d25493c39
segment size to 16MiB to improve perf on mstress and rptest
2020-04-28 16:50:03 -07:00
daan
1b0de9b4cf
merge from dev
2020-04-28 16:22:38 -07:00
Anton Korobeynikov
079b886feb
Add cmake option to specify whether warnings / errors are enabled by default.
...
Currently warnings / errors are enabled by default in debug build.
Otherwise they could be enabled only via environmental variable or
API option call. Add possibility to specify the default during the
build time. This simplifies e.g. integration of the library into
bigger projects as no source changes would be required.
2020-04-28 16:44:44 +03:00
daan
3484cda169
bump version to 1.6.3 for further development
2020-04-20 18:01:39 -07:00
daan
d102882bdf
bump version to 1.6.2
2020-04-20 17:59:13 -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
0a3e5bb699
further fixes to compile on mingw without warnings (issue #217 )
2020-04-06 10:56:53 -07:00