RFR(S) 8206467: Refactor G1ParallelCleaningTask into shared

Thomas Schatzl thomas.schatzl at oracle.com
Wed Aug 22 12:51:11 UTC 2018


Hi Zhengyu,

On Tue, 2018-08-21 at 16:16 -0400, Zhengyu Gu wrote:
> Thanks for reviewing, Kim!
> 
> I will fix styles/indents and file RFE accordingly.
> 
> -Zhengyu

  the change introduces a deadlock:

The new ResolvedMethodCleaningTask, when calling unlink tries to grab
the ResolvedMethodTable_lock, that may also be grabbed by the various
compiler methods when e.g. resolving methods. Now when that happens,
and a GC is in progress you already know what this leads to :)

We have a (closed) test that deadlocks 100% because of that.

I try to follow up with an RFR asap that removes that task, if that
takes too long I will revert the whole change.

And, please, in the future, when introducing code sharing changes,
please split refactoring changes (moving code around) and functionality
changes.

That would have made it a lot easier to spot this issue during review.

Also we really want to sit down about how to measure time in our code:
this change introduces *another* time base (us) using *another* base
type (jint) without adding support for existing collectors (i.e. G1;
*without* even filing an RFE to add this). This would also have been
spotted easily if the reviews for old/new functionality were separated.

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list