1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-07 20:50:17 +02:00
Commit graph

299 commits

Author SHA1 Message Date
Andy Wingo
2b59efd9fc Fix semi-space with fixed-sized heaps 2024-09-16 15:06:50 +02:00
Andy Wingo
506b4187fc Update manual 2024-09-16 14:33:30 +02:00
Andy Wingo
b7306950bc Implement adaptive heap sizing for semi 2024-09-16 14:19:54 +02:00
Andy Wingo
1bf250f62a Heap growth can compete with lospace for nofl blocks 2024-09-16 13:40:09 +02:00
Andy Wingo
317039d952 Relax assertion when expanding the heap
It could be that newly mapped blocks were already acquired by other threads.
2024-09-16 13:07:25 +02:00
Andy Wingo
dcfdc547f6 Whoops, fix refactor-induced locking problem 2024-09-16 11:45:01 +02:00
Andy Wingo
cf570d0206 Don't release shared worklist buffers when less than 256 kB
Fixes https://github.com/wingo/whippet/issues/8.
2024-09-16 10:51:07 +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
d785f082b1 Factor out adapative heap sizer background thread to own file
This will let us piggy-back on the thread to asynchronously release
memory to the OS.
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
d19366bea2 Remove mention of concurrent marking for mmc 2024-09-10 11:35:28 +02:00
Andy Wingo
48085393f3 Update some doc links 2024-09-10 11:31:55 +02:00
Andy Wingo
4cdb47de6a There are four lights 2024-09-10 11:28:15 +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
9f437485ec MMC marks roots in parallel during the pause, not while stopping
Following the analysis in
https://wingolog.org/archives/2024/09/06/on-taking-advantage-of-ragged-stops,
we simplify MMC by traversing roots only during the pause.  This lets us
use gc_tracer parallel root-tracing.
2024-09-09 15:03:49 +02:00
Andy Wingo
8604ad6beb mmc reformatting 2024-09-08 09:54:16 +02:00
Andy Wingo
2915b052e4 Whoops, typo on mmc docs 2024-09-02 14:20:52 +02:00
Andy Wingo
519949edf3 Update .gitignore 2024-09-02 13:24:38 +02:00
Andy Wingo
44a7240e16 Rename "whippet" collector to "mmc": mostly marking collector 2024-09-02 13:19:05 +02:00
Andy Wingo
cf129f10de nofl: Block marks are bytes
There was no need to use a bitvector, and the marks were only being
partially cleared.  More straightforward (and still low overhead) as
bytes.
2024-08-30 21:20:34 +02:00
Andy Wingo
8d6db735fd Nofl space can have discontiguous slabs 2024-08-30 16:53:20 +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
c949e4e4a9 Refactor representation of blocks in nofl space 2024-08-30 16:53:20 +02:00
Andy Wingo
a180be0cbd
Merge pull request #4 from Z572/fix-doc
fix guile.md link
2024-08-26 09:23:40 +02:00
Andy Wingo
59b85abbda Fix regarding memset of block marks 2024-08-25 20:46:05 +02:00
Andy Wingo
59c9f5dff9 Mark blocks that are targets of evacuation 2024-08-25 08:58:55 +02:00
Andy Wingo
7b4a56c51a nofl: Fix sticky mark bit treatment for block marks 2024-08-25 08:45:17 +02:00
Andy Wingo
b8c0fa0e90 nofl: simplify sweeping
No more need to identify empties during sweeping, as that is done
eagerly during the pause.
2024-08-24 21:52:47 +02:00
Andy Wingo
6dcec272b1 nofl: eagerly sweep empty blocks 2024-08-24 21:31:07 +02:00
Andy Wingo
010185f729 nofl: Refactor to trace visitor 2024-08-24 16:38:11 +02:00
Andy Wingo
7db72e7f80 whippet: ensure mutators release allocators before start_gc 2024-08-24 09:09:23 +02:00
Andy Wingo
19fdd481d5 Fix some corner cases with hole zeroing of empty blocks 2024-08-23 21:20:40 +02:00
Andy Wingo
d137e1397c Instead of partitioning blocks by flag, put them in separate lists
This way you can directly iterate blocks of a certain kind.  Also verify
these lists more thoroughly, and allow full blocks that are the results
of evacuation to skip being swept the next round.  Also!  Have
next_hole_in_block / next_hole_in_block ensure that the object data and
the mark bytes are clear.
2024-08-22 21:47:15 +02:00
Andy Wingo
b663e5878e nofl: Refactor evacuation allocation to be thread-local
This relaxes a "reliability" requirement, as in
https://wingolog.org/archives/2024/07/10/copying-collectors-with-block-structured-heaps-are-unreliable.
2024-08-21 15:07:50 +02:00
Andy Wingo
004a3d0411 Factor nofl-space out of whippet 2024-08-21 10:19:26 +02:00
Andy Wingo
b6e9d3c0bb Fix bug in which empty block would not have mark bits cleared 2024-08-21 10:16:00 +02:00
Zheng Junjie
1f6f5aeab7
fix guile.md link 2024-08-14 22:36:50 +08:00
Andy Wingo
ea15d142fc Update documentation 2024-08-05 15:19:07 +02:00
Andy Wingo
e40b224faf Attempt to dynamically choose whether to atomically forward 2024-08-05 15:03:24 +02:00
Andy Wingo
12eb0e0c42 Update documentation 2024-08-05 14:47:32 +02:00
Andy Wingo
1925f84d3a Add missing file 2024-08-05 14:44:34 +02:00
Andy Wingo
37e57f8c8d Add serial copying collector 2024-08-05 14:41:04 +02:00
Andy Wingo
0ee58abb46 Add gc_finalizer_priority_count to gc-embedder-api.h 2024-08-05 11:56:46 +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
Andy Wingo
6c5cdd73c9 refactor pcc. no functional change 2024-07-29 11:31:52 +02:00
Andy Wingo
22f5b44330 Docs docs 2024-07-27 22:34:43 +02:00
Andy Wingo
50e90a026a Docs docs 2024-07-27 22:33:56 +02:00
Andy Wingo
3ce0899729 Docs docs 2024-07-27 22:32:08 +02:00