Re: [rvm-research] Pre-Tenuring
Shoaib Akram <[email protected]> Fri, 10 Aug 2018 23:45:45 +0200
| Newsgroups | gmane.comp.java.jikes.rvm.devel |
|---|---|
| Message-ID | <[email protected]> |
I have 1 GC thread and 1 mutator thread. I have one immix space and 2 immix allocators. One allocator for the mutator context and one for the GC context. My understanding of MMTk is that each space gets a 4 MB chunk from a global free list. Then, each allocator gets a 32 KB block from the space. Based on this understanding, communicating information b/w the mutator and the GC allocator should not be a concern. I guess that’s a fundamental tenet of MMTk design. > On Aug 10, 2018, at 10:36 PM, Eliot Moss <[email protected]> wrote: > > On 8/10/2018 3:58 PM, Shoaib Akram wrote: >> Thanks for clarifications. Objects in LOS are only collected during a full-heap GC in my case so I took the liberty of calling them pre-tenured. You are right that one can have logical generations in a non-moving heap region, and pre-tenuring would mean something else. >> About copying *which* objects, I meant that while the mutator is pre-tenuring objects of type T in the immix mature space, all other (small) object that survive a minor GC are copied to the same immix space (where mutator is allocated type T objects). And based on the failure logs, it seems the fault happens during the copying of a nursery survivor to the immix mature space. >> I could try to create a 2nd immix space to allocate all object of type T. But in theory, mutator and GC can allocate (and promote) objects to the same space. I have an allocator per GC and Mutator. It should (and must) work out of the box ;) >> Yes, an object of type T can be large. But in Jikes, the mutator performs a size-check at runtime, and during this check, if the object is larger than a threshold, the allocator picked during compile-time is overruled, and replaced with the large object allocator. > > Ok, I understand about your use of LOS now, and it should not be a problem. > > I gather that the rest of the configuration is: > > nursery: a bump-pointer space for fresh allocation (of small objects) > mature: an immix-policy space for survivors / mature objects (all small objects) > > So, yes, nursery survivors should be promoted. > > I can only guess, but my guess is that some information about immix allocation > pointers or available space is being cached somewhere, and meanwhile your direct > allocation into immix space changes the actual state of affairs. > > You say you have an allocator per GC and Mutator. Maybe the configuration assumes > that nursery allocation is always by the Mutator and immix allocation is by the GC? > This leads me to wonder how your Mutator code gains access to the GC's immix > allocator information. This is a possible place whether changes between GCs may > not be being propagated. If the Mutator and GC *both* have different allocators > into same space, then when collection is triggered, the Mutator information needs > to be propagated to the GC (and when GC ends, it needs to be propagated back). > If not, the GC's allocator would over-write Mutator immix allocation. I would have > thought they would share the immix allocator to prevent this kind of thing -- though > I am assuming stop-the-world collection (at any given time only Mutators are running > or only GCs). > > Assuming there are M mutators and G GCs - for simplicity, let's say N of each - > then are there N immix spaces / allocators, or 2N? Etc. > > Best - EM > > ------------------------------------------------------------------------------ > 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 ------------------------------------------------------------------------------ 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