[rvm-research] Concurrent Semispace-related questions.

Claire Murphy <[email protected]>
Newsgroups gmane.comp.java.jikes.rvm.devel
Message-ID <CAJG7W=-QT=+Ejp1OD4pfB-nC=52m0R6wc94jdF5UvcEcVtu-=g@mail.gmail.com>
Hello,

My name is Claire, and I am part of a team of students at Harvey Mudd
College. We are trying to build a concurrent semispace collector using
Jikes RVM. We have some questions that we hope you can clear up for us.

1) We have printed the address ranges for our two semispaces as well as the
Large Object Space, and they appear to be the same ranges. Is this due to
some feature of Jikes we don't understand, or is there some place we need
to specify the address ranges to avoid this? We believe that this is
causing us issues; our collector fails inside the Large Object Space, while
accessing an object that is not large enough to be allocated there. (We set
our allocator to be ALLOC_DEFAULT, as in the provided SS collector.)

2) We would like to use an atomic compare-and-swap to insert a forwarding
pointer and forwarding bit into an object. We tried to use this code to do
that:

VM.objectModel.attemptAvailableBits(object, forwardingWord,

forwardingWord.or(Word.fromIntZeroExtend(ForwardingWord.FORWARDED)));

However, it didn't seem like it worked like we thought. Is it possible to
CAS a pointer+header into an object this way? how?

3) What exactly happens in the mutator flush phase? We see that objects are
traced/forwarded, then enqueued in a remembered set which is pushed to the
GC. We would like to separate tracing from copying, so that only the GC
ever needs to copy objects. What is necessary in order for this to happen?
Will the GC already copy all objects in the remembered set if they are not
copied? (assuming that copying and forwarding is done in our copySpace's
traceObject function)

4) In RVMThread.java, there is a boolean, "activeMutatorContext"  with the
comment /** Is this a "registered mutator?" */ We assumed that this meant
that checking this boolean checks whether a thread is a mutator (as opposed
to a collector) but the check returns true even in what we believe are
collector threads(as indicated when we checked  isCollectorThread). What
does this actually do?

Thank you very much,
Claire & the Harvey Mudd Clinic team

------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform

_______________________________________________
Jikesrvm-researchers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.