phantomuserland icon indicating copy to clipboard operation
phantomuserland copied to clipboard

In mem snapshot based GC

Open dzavalishin opened this issue 5 years ago • 5 comments

Do not free snapshot memory image, map it in a separate address space, run full GC there.

See #129

Possibly should scan through kernel DS address space to check for links from kernel to obj mem? Scan allocated physmem and vaddr pages too?

dzavalishin avatar Sep 17 '19 08:09 dzavalishin

hal_page_control( add_space_id (pool id?), ... )

  • addr_space_obj_off
  • addr_space_obj_on
  • addr_space_obj_gc - prev generation of objects for GC
  • ADDR_SPACE_ALL - change in all maps, but only out of obj space

dzavalishin avatar Sep 27 '19 21:09 dzavalishin

Use snap verification infrastructure for it Need some kind of cache - use pool for pages and hash tab for map of addr to pool item

dzavalishin avatar Oct 22 '19 22:10 dzavalishin

It is unclear how to prevent situation:

  • obj a used

  • snap

  • big GC runs on snap and finds a to be free

  • obj a freed by refcount

  • new obj created @ addr of a

  • big GC finishes and kills a

  • generations? per snap?

dzavalishin avatar Oct 22 '19 22:10 dzavalishin

TODO: Need refcnt GC to be run before snapshot - just a good occasion and, possibly, less mem to pageout.

NB! need some way to request disk io barrier from here

dzavalishin avatar Oct 23 '19 02:10 dzavalishin

Keep state in persistent memory! Map address to object info

dzavalishin avatar Oct 23 '19 12:10 dzavalishin