Re: [rvm-research] Question regarding the sanity checker

Eliot Moss <[email protected]> Mon, 27 Mar 2017 15:23:59 -0400
Newsgroups gmane.comp.java.jikes.rvm.devel
Message-ID <[email protected]>
On 3/27/2017 2:23 PM, Shoaib Akram wrote:
> Thank you Robin for your answer. I went through the code again and I fully understand the point (b) below. Sanity checker does a full-heap trace after collection and builds a table of all reachable objects. And then inquires the current collection plan the expected RC, making sure the plan’s view matches with it’s own. But I am still confused how it ensures (a). It discards the table built during the Pre-GC phase, and builds a new table in the Post-GC. What it could ensure is the number of live objects before and after collection is the same. But how does it ensure every object reachable before collection is still reachable after collection?

It's only a sanity checker.  If it finds something wrong,
then your GC is broken, but if it does not find anything
wrong, that does not mean your GC 100% ok.  Among other
things, it does not test that the new graph is isomorphic
to the original graph of reachable objects, that each root
points to the "same" object it did before, etc.

But it is still useful.

Regards - Eliot Moss

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Jikesrvm-researchers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers