RFR 8215047: Task terminators do not complete termination in consistent state

Thomas Schatzl thomas.schatzl at oracle.com
Wed Jan 23 13:48:20 UTC 2019


Hi,

On Thu, 2019-01-17 at 09:30 -0500, Zhengyu Gu wrote:
> Ping!
> 
> In addition to hotspot_gc tests (+/- UseOWSTTaskTerminator) on Linux
> 64, also ran vmTestbase_vm_gc (+/- UseOWSTTaskterminator) and submit
> tests.

 currently running it through our test suite.

> 
> Thanks,
> 
> -Zhengyu
> 
> On 1/3/19 10:49 AM, zgu at redhat.com wrote:
> > Threads that enter termination protocol, should always see the same
> > termination result, terminated or aborted. And terminator should
> > always complete in one of two following states:
> > 
> > Terminated: _offered_termination == _n_threads (all threads arrived
> > and terminated) 
> > Aborted:   _offered_termination = 0 (none of threads completed)
> > 
> > Current implementation does not guarantee that, so that, it can
> > leave terminator in inconsistent states. The inconsistent states
> > can trigger assertion failure when reset the terminator for reuse
> > (vs. reset_for_reuse() method)

Nice catch. Thanks.

> >   
> > 
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8215047
> > Webrev: 
> > http://cr.openjdk.java.net/~zgu/JDK-8215047/webrev.00/index.htm
> > l

initial comments:

- taskqueue.hpp: I recommend adding an empty virtual destructor in any
case.

- owstTaskTerminator.cpp:69: s/returnning/returning/

I will think a bit more about the change while waiting for the test
results.

Thanks,
  Thomas




More information about the hotspot-gc-dev mailing list