alektron
98d6b3bc85
Undo change from #6398 and fix arena overcommit bug in the correct place;
2026-04-10 23:53:41 +02:00
Shane Shrybman
5d80809dc8
Fix virtual arena memory block overcommit bug #5821
2026-03-10 11:13:15 -04:00
gingerBill
a7af6055b0
Move memory mutex guard around for resize in virtual.Arena allocator
2025-09-27 10:27:08 +01:00
Feoramund
efba9a1fb7
Disable usage of AddressSanitizer pending a per-allocator review
...
It has been discovered that AddressSanitizer does not keep a 1:1 mapping
of which bytes are poisoned and which are not. This can cause issues for
allocations less than 8 bytes and where addresses straddle 8-byte
boundaries.
See the following link for more information:
https://github.com/google/sanitizers/wiki/AddressSanitizerAlgorithm#mapping
2025-06-15 15:06:28 -04:00
Lucas Perlind
83bc2d3c4a
Add asan support for various allocators
2025-05-06 14:55:50 +10:00
gingerBill
539e9bd2e3
Merge pull request #4836 from laytan/fix-wrong-out-of-memory
...
fix wrong out of memory in edge cases, just try allocate from block for one source of truth
2025-03-20 17:20:26 +00:00
alektron
fd539b5e81
Fix: When resizing a virtual arena by commiting more of the already reserved memory, the total_used field of the arena was not updated;
2025-03-02 17:46:39 +01:00
Laytan Laats
7df5be2131
fix wrong out of memory in edge cases, just try allocate from block for one source of truth
2025-02-12 19:09:21 +01:00
Barinzaya
98b3a9eacd
Added support for growing in place to some arenas.
...
This affects `runtime.Arena` and `virtual.Arena`, but not currently
`mem.Arena`. These changes allow the last allocation that has been
made to be resized to a larger size by just extending their
allocation in-place, when there's sufficient room in the memory block to
do so.
Shrinking in place and re-using the rest of the allocation can be
supported using almost the same logic, but would require the memory to
be zeroed. Since this would add a additional cost that isn't currently
present, shrinking has not been changed.
2025-01-24 10:13:46 -05:00
alektron
a0c20023fc
Fix: Issue with non-zeroed memory after arena_temp_and;
...
Fix: total_used field of growing Arena was not decremented correctly in arena_temp_end;
2025-01-15 17:59:30 +01:00
dmitriy.gorevoy
e82a0c8fc7
Fixed crash in arena_free_all() for bootstrapped growing arenas.
...
When trying to set arena.curr_block.used = 0 after mem.zero() caused a crash because if the arena is bootstrapped its memory will be zeroed out after mem.zero() thus making arena.cur_block point to zero.
2024-12-23 09:25:18 +01:00
Laytan Laats
5a22d49b72
mem/virtual: make sure the given size is used for subsequent blocks
2024-08-29 14:48:36 +02:00
gingerBill
e01701ce0e
Fix typo
2024-03-07 12:32:46 +00:00
gingerBill
f9b14500be
Add default_commit_size to virtual.Arena
2024-03-07 12:30:34 +00:00
Laytan
9b4cd0743c
mem/virtual: fix arena_static_reset_to inverted logic
2024-02-06 20:24:38 +01:00
Colin Davidson
d0bb1fb844
bring log allocator up to date
2024-01-17 13:11:10 -08:00
Laytan
9a490e4e0d
fix big alignment
2023-12-18 16:38:51 +01:00
Laytan Laats
252de70b0f
fix same problem in virtual arena
2023-12-18 15:41:36 +01:00
Karl Zylinski
65333181fc
virtual arena: Actually use DEFAULT_ARENA_STATIC_RESERVE_SIZE as default value on arena_init_static
2023-12-04 21:15:46 +01:00
Colin Davidson
bfbeb23f54
add resize non zeroed in more places
2023-12-04 03:09:13 -08:00
gingerBill
9736402dfd
Fix docs typo
2023-08-07 15:34:28 +01:00
Eric Johnson
c6957e4e31
Fix small doc mistakes in arena.odin
2023-07-11 13:41:12 -07:00
gingerBill
9b54b99bf6
Use positional and named arguments within the core library
2023-06-21 01:17:05 +01:00
gingerBill
dfee7c103e
Document virtual.Arena
2023-02-28 13:07:52 +00:00
gingerBill
ecf65303cd
Make arena_free_all keep the first memory block for a .Growing arena
2023-02-28 12:37:05 +00:00
gingerBill
7032867421
Pass #caller_location down correctly
2023-02-10 13:18:03 +00:00
gingerBill
802333e454
Fix arena.free_all
2023-02-03 12:40:52 +00:00
gingerBill
c45ca1bfcc
Correct arena_temp_end usage when no allocation ever happens for that arena
2023-01-28 12:09:24 +00:00
gingerBill
8d6ce0b693
Add mutex to virtual.Arena; add virtual.arena_temp_ignore
2023-01-28 11:51:58 +00:00
hikari
d904ae5191
Replaced opaque bit-shifts with readable constants for memory units
2022-12-24 08:27:15 +02:00
gingerBill
f76316f889
Merge branch 'master' into allocator-mode-alloc-non-zeroed
2022-11-03 12:47:11 +00:00
gingerBill
7d217269b5
Add Arena_Kind.Buffer to core:mem/virtual
2022-10-26 13:37:20 +01:00
gingerBill
ff51c5ee56
Wrap intrinsics.overflow_add to safe_add
2022-10-15 12:52:07 +01:00
gingerBill
d48828dd80
Add overflow check when using a growing arena
2022-10-13 12:45:17 +01:00
gingerBill
b725e01cdd
Add @(require_results) to many procedures
2022-10-13 11:10:16 +01:00
gingerBill
cf4afc2e7b
Inline assert condition
2022-10-12 21:26:50 +01:00
gingerBill
5ed06f7eb8
Rename constants; minor rearrange of Arena layout
2022-10-12 21:23:45 +01:00
gingerBill
765cd66b30
Clean up minimum_block_size default implicit initialization
2022-10-12 21:20:31 +01:00
gingerBill
5a8fbc230d
Sanity corrections to virtual calls
2022-10-12 21:16:34 +01:00
gingerBill
5c62211f00
Inline resize logic for virtual.Arena
2022-10-12 20:44:36 +01:00
gingerBill
835b8ffa22
Update total_used for arena_static_reset_to
2022-10-12 20:30:48 +01:00
gingerBill
b84108c4b5
Inline align forward offset code
2022-10-12 20:28:51 +01:00
gingerBill
6642e1fc9d
Unify Static_Arena and Growing_Arena into Arena
2022-10-12 19:10:04 +01:00
gingerBill
9d9ec192f1
Rename to growing_arena.odin
2021-10-04 17:57:59 +01:00
gingerBill
f2e78dcc0b
Separate out the virtual memory allocation procedures
...
`reserve`, `commit`, `reserve_and_commit`, `decommit`, `release`, `protect`
2021-10-04 16:43:52 +01:00
gingerBill
e05a305764
Minor clean up
2021-10-03 12:43:11 +01:00
gingerBill
a437c95fed
Remove mutex from Growing_Arena; Add Growing_Arena_Temp
2021-10-03 12:41:24 +01:00
gingerBill
08ac2fd1b6
Rename virtual.Arena to virtual.Growing_Arena
2021-09-29 16:50:36 +01:00
gingerBill
b2a36f204e
Add a mutex to arena_free_all
2021-09-29 16:46:14 +01:00
gingerBill
efdd5cf499
Add a mutex to virtual.Arena
2021-09-29 16:43:58 +01:00