Andy Wingo
b517464d7f
copy-space: refactor to copy_space_can_allocate
2025-01-24 16:11:11 +01:00
Andy Wingo
ba65e32b00
pcc / copy-space: Allow allocations to fail
...
This fixes an issue in which minor collection of a nursery full of live
data can fail because of fragmentation, whereas really it should just
fall back to promotion.
2025-01-13 17:22:43 +01:00
Andy Wingo
5fdb14cc5e
Remove "ABORTED" atomic forwarding state
...
It was not distinguishable from "NOT_FORWARDED".
2025-01-13 16:44:12 +01:00
Andy Wingo
b37a7f3862
copy-space: Fix bug computing field logging byte location
...
Also re-enable survivors in generational-pcc :)
2025-01-13 09:12:34 +01:00
Andy Wingo
4ab72e92b0
gpcc: Don't mix survivors and new objects in same block
2025-01-10 16:40:19 +01:00
Andy Wingo
0b8630145a
Copy space clears log bits when obtaining fresh blocks
2025-01-10 16:05:34 +01:00
Andy Wingo
e65c81518d
Fix copy space compilation in debug mode
...
Also add copy_space_should_promote
2025-01-10 16:02:37 +01:00
Andy Wingo
095d2ff953
Copy space maintains block flag indicating which are survivors
2025-01-06 16:59:54 +01:00
Andy Wingo
4f8c7bef61
Refactor copy_space_forward to take src and dst spaces
2025-01-06 16:59:54 +01:00
Andy Wingo
b33efb2759
Copy space can reserve some blocks for field-logging bits
...
Useful for an oldgen
2025-01-06 16:59:54 +01:00
Andy Wingo
a74a2c129c
Copy space has flags, can indicate that space is aligned
...
This will be useful for copy-space nurseries.
2025-01-06 16:59:54 +01:00
Andy Wingo
922c13a183
Move mmap / munmap / madvise to gc-platform
2025-01-06 16:59:54 +01:00
Andy Wingo
3955d2ad96
Factor out locking utils to separate header
2024-09-30 20:52:45 +02:00
Andy Wingo
691c777e7b
Fix ABA problem in the copy space
...
Same concerns as the previous fix to the nofl space.
2024-09-30 12:29:35 +02:00
Andy Wingo
7984f60eae
MMC and PCC defer actual page-out operations to background thread
...
Should avoid excessive VM traffic when allocating large objects, or when
the adaptive heap sizer is on and we see frequent expansions and
resizes.
2024-09-16 10:00:01 +02:00
Andy Wingo
2818958c59
First version of adaptive heap sizing for pcc and mcc
2024-09-16 09:59:55 +02:00
Andy Wingo
1ff082705e
Remove scc
...
PCC with GC_PARALLEL=0 is exactly equivalent to SCC. Also now that PCC
will dynamically avoid atomic forwarding if parallelism is disabled at
run-time, there is no need to keep SCC around.
2024-09-10 11:10:47 +02:00
Andy Wingo
6545b34073
Reorder events in event listener; refactors to mmc and pcc
...
In GC, request mutators to stop before doing anything else; changes the
order of the event listener interface. Also, refactor mmc to look more
like pcc.
2024-09-10 10:55:38 +02:00
Andy Wingo
1a7d08baac
Add separate extents header
...
Will be useful to let slab heaps grow.
2024-08-30 16:53:20 +02:00
Andy Wingo
e40b224faf
Attempt to dynamically choose whether to atomically forward
2024-08-05 15:03:24 +02:00
Andy Wingo
37e57f8c8d
Add serial copying collector
2024-08-05 14:41:04 +02:00
Andy Wingo
d3383ad911
Bulk-zero copy-space blocks
2024-08-05 11:48:25 +02:00
Andy Wingo
4c6889b751
Factor copy space out of pcc
2024-08-05 11:40:58 +02:00