RFR: 8047821: G1 Does not use the save_marks functionality as intended

Stefan Karlsson stefan.karlsson at oracle.com
Tue Jun 24 11:06:46 UTC 2014


On 2014-06-24 12:25, Stefan Karlsson wrote:
>
> On 2014-06-23 16:26, Mikael Gerdin wrote:
>> Hi!
>>
>> As part of a larger effort to detach G1's HeapRegion from 
>> ContiguousSpace[1]
>> and as a general cleanup we should rename the save_marks and 
>> set_saved_marks
>> methods on HeapRegion. They are not used with 
>> oops_since_saved_marks_iterate
>> and cause more confusion than anything.
>>
>> This change is part of a set of 4 changes: 8047818, 8047819, 8047820, 
>> 8047821
>> which are needed to refactor the HeapRegion class and its superclasses
>> in order to simplify the G1 class unloading change which is coming.
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8047821
>> Webrev:
>> http://cr.openjdk.java.net/~mgerdin/8047821/webrev/
>
> Looks good, but it would be nice if you could remove these as well:
>
> http://cr.openjdk.java.net/~mgerdin/8047821/webrev/src/share/vm/gc_implementation/g1/heapRegion.hpp.frames.html 
>

This should also be removed:

  572   // Allows logical separation between objects allocated before and after.
  573   void save_marks();

StefanK

>
>  583   // Apply "cl->do_oop" to (the addresses of) all reference 
> fields in objects
>  584   // allocated in the current region before the last call to 
> "save_mark".
>  585   void oop_before_save_marks_iterate(ExtendedOopClosure* cl);
>
> and
>
>  205   // Requires that the region "mr" be dense with objects, and 
> begin and end
>  206   // with an object.
>  207   void oops_in_mr_iterate(MemRegion mr, ExtendedOopClosure* cl);
>
> and
>
>  396 void HeapRegion::oops_in_mr_iterate(MemRegion mr, 
> ExtendedOopClosure* cl) {
>  397   HeapWord* p = mr.start();
>  398   HeapWord* e = mr.end();
>  399   oop obj;
>  400   while (p < e) {
>  401     obj = oop(p);
>  402     p += obj->oop_iterate(cl);
>  403   }
>  404   assert(p == e, "bad memregion: doesn't end on obj boundary");
>  405 }
>
>
> thanks,
> StefanK
>
>>
>> [1] https://bugs.openjdk.java.net/browse/JDK-8047818
>>
>> Thanks
>> /Mikael
>




More information about the hotspot-gc-dev mailing list