[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-smalltalk] GC/grey pages question
From: |
Holger Hans Peter Freyther |
Subject: |
[Help-smalltalk] GC/grey pages question |
Date: |
Sat, 27 Sep 2014 18:01:33 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
Dear Paolo,
I was trying to understand the garbage collection better (e.g. to
determine if adding a write-barrier is a pain, if direct pointers
will be feasible at some point).
I thought the concept was:
* We mprotect READ_ONLY the old space
* When an object from old space starts to point to the new space
it will be modified and the modification will trigger a SIGSEGV
* The SIGSEGV handling will add the page to the greylist.
* At some point the GC will scan the grey list, mark the objects
and move them to the old space too.
* The entry from the greylist will be removed and the page will
be marked as read-only again.
The reality seems to be a bit different.
* We don't seem to mprotect the oldspace but the OOP table? Is
this correct or am I misguided?
* We slowly/never remove entries from the greylist? E.g. even
after doing ObjectMemory compact the greylist is not empty? Is
this a bug?
kind regards
holger
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Help-smalltalk] GC/grey pages question,
Holger Hans Peter Freyther <=