RFR: 8252104: parallel heap inspection for ShenandoahHeap [v2]

Zhengyu Gu zgu at openjdk.java.net
Fri Sep 11 13:56:55 UTC 2020


On Fri, 11 Sep 2020 10:54:42 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> Hi @shipilev,
>>      I have update a PR that trying to reuse code in serial and parallel heap iteration.
>>      would you like to review again? Thanks
>> -Lin
>
> Thank you, we'll take a look next week.

Hi Lin,

1) The patch does not compile with assertion on
@@ -1490,7 +1490,7 @@ private:
       cl->do_object(obj);
       obj->oop_iterate(&oops);
     }
-    assert(q.is_empty(), "should be empty");
+    assert(q->is_empty(), "should be empty");

2) I don't like to export following methods as public. Instead, you can declare ShenandoahParallelObjectIterator as
friend class of ShenandoahHeap.
   void scan_roots_for_iteration(Stack<oop, mtGC>* oop_stack, ObjectIterateScanRootClosure* oops);
   bool prepare_aux_bitmap_for_iteration();
   void reclaim_aux_bitmap_for_iteration();

3) Please rename ObjectIterateParScanClosure to ShenandoahObjectIterateParScanClosure for code convention

4) There is no point to seed mark roots if prepare_aux_bitmap_for_iteration() failed in
ShenandoahParallelObjectIterator constructor.

-------------

PR: https://git.openjdk.java.net/jdk/pull/67


More information about the serviceability-dev mailing list