daan
09e59e0610
use size_t instead of uintptr_t where appropiate
2021-11-13 15:13:16 -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
e02f88a11c
Fix warnings with g++-11 compilation
2021-10-20 09:55:03 -07:00
daan
505ea78cae
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2021-10-19 15:07:19 -07:00
Daan
ae5aae7e10
allow decommit in arena separate from initial commit
2021-10-19 14:00:40 -07:00
Daan Leijen
22c2fd82cc
ensure managed os memory is at least one arena block in size
2021-10-18 20:44:19 -07:00
Daan Leijen
bcce4d52bf
fix bug in determination of block size in pre-reserved arena memory
2021-10-18 20:39:39 -07:00
Daan Leijen
4ba32c3160
Revert "make all includes relative"
...
This reverts commit 1feb6123d9
.
2021-06-07 16:47:57 -07:00
Daan Leijen
1feb6123d9
make all includes relative
2021-06-06 20:31:36 -07: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
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 Leijen
3228bb685f
set errno ENOMEM for limited arena allocation (issue #295 )
2021-02-22 14:17:25 -08:00
daan
69f935944f
add test to avoid searching arenas when possible
2020-10-15 19:46:19 -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
c86459afef
split bitmap code into separate header and source file
2020-09-08 10:14:13 -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
ef8e5d18a6
replace atomics with C11/C++ atomics with explicit memory order; passes tsan. Issue #130
2020-07-26 18:01:33 -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
7123efb397
pass full commit flag to free, possible fix for issue #218
2020-04-23 20:19:48 -07:00
daan
8422ab125d
improve messages; fix reset size calculation on large pages
2020-01-31 17:28:26 -08:00
daan
7785139201
fix warning on gcc on attribute ignore in templates
2020-01-25 13:28:24 -08:00
daan
072ceb2efe
Merge branch 'dev' into dev-exp-abandon
2020-01-24 20:20:55 -08:00
daan
ecece57284
fix bug in committed check in arena allocation
2020-01-24 20:20:43 -08:00
daan
b31bc52618
add cache alignment directives for contended variables
2020-01-24 19:02:13 -08:00
daan
0193a15f7e
nicer message on huge OS page reservation
2020-01-22 19:46:43 -08:00
daan
e3b16fe4ef
reduce type casts in atomic operations
2020-01-22 19:44:54 -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
65f4f5144b
fix out-of-bounds error in huge OS page bitmap
2020-01-13 17:06:25 -08:00
daan
d4ab0ff08c
fix timeout on huge page reservation if set to 0
2020-01-07 14:15:37 -08:00
daan
a407f35c64
add arena.c into the static override object
2019-12-01 00:01:14 -08:00
Daan Leijen
211f1aa519
remove reset delay slots; add reset tracking per page and segment
2019-11-20 14:55:12 -08:00
Daan Leijen
d01ed42bcb
replace max_numa_nodes by use_numa_nodes (to help with wrong detection of numa nodes on WSL for example)
2019-11-13 13:35:50 -08:00
daan
db3f1c4bfa
add commit info to arenas
2019-11-11 15:26:11 -08:00
Daan Leijen
9f08ddd0d0
refactor regions; add commit tracking on a segment basis
2019-11-09 19:30:53 -08:00
daan
378716c467
refactor and improve atomic bitmap usage
2019-11-07 10:26:52 -08:00
daan
b09282bc0d
change arena allocator to atomic bitmap as well
2019-11-06 22:49:01 -08:00
daan
3d0a1e249f
remove all floating point types and arithmetic
2019-11-04 09:40:10 -08:00
daan
8afd06b248
use int64 for time (instead of double)
2019-11-04 08:44:40 -08:00
daan
9d6a5acb22
fix unix build warnings
2019-11-03 13:34:54 -08:00
daan
520a8dafee
divide huge pages more even
2019-11-03 13:25:28 -08:00
daan
f36ec5d9d8
reserve huge pages incrementally
2019-11-03 13:16:07 -08:00
daan
62cd0237fc
fix aligned huge page allocation on windows
2019-11-02 17:49:34 -07:00
daan
2c12d7f223
optimized numa calls; better Linux support
2019-11-01 22:01:52 -07:00
daan
57dd69265a
normalize numa node
2019-11-01 20:30:01 -07:00
daan
2d10c78587
fix linux compilation
2019-11-01 20:19:00 -07:00
daan
a6499be074
initial numa support for arenas
2019-11-01 19:53:07 -07:00
daan
aaf01620f4
improve allocation of the huge OS page arena
2019-10-31 19:39:49 -07:00
daan
d36d04b4a6
add arena for huge page management
2019-10-31 15:35:10 -07:00