RFR: 8062036: ConcurrentMarkThread::slt may be invoked before ConcurrentMarkThread::makeSurrogateLockerThread causing intermittent crashes

Kim Barrett kim.barrett at oracle.com
Tue Nov 4 21:18:31 UTC 2014


On Nov 3, 2014, at 4:31 PM, Jon Masamitsu <jon.masamitsu at oracle.com> wrote:
> 
> Some suggestions.
> 
> http://cr.openjdk.java.net/~kbarrett/8062036/webrev/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp.frames.html
> 
>> 216   if (SurrogateLockerThread* slt = ConcurrentMarkThread::slt()) {
>> 217     slt->manipulatePLL(SurrogateLockerThread::acquirePLL);
>> 218   } else {
>> 219     SurrogateLockerThread::report_missing_slt();
>> 220   }
> 
> I have a preference for
> 
> SurrogateLockerThread* slt = ConcurrentMarkThread::slt();
> if (slt != NULL) {
>  slt->manipulatePLL(SurrogateLockerThread::acquirePLL);
> } else {
>  SurrogateLockerThread::report_missing_slt();
> }
> 

Done

> http://cr.openjdk.java.net/~kbarrett/8062036/webrev/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp.frames.html
> 
> 96   // Terminate VM with error message that SLT needed but not yet created.
> 
> I think it would read better as
> 
> "SLT needed but not yet created." => "SLT is needed but has not yet been created."

Done

Bug:
https://bugs.openjdk.java.net/browse/JDK-8062036

Updated webrev:
http://cr.openjdk.java.net/~kbarrett/8062036/webrev01/

Incremental webrev:
http://cr.openjdk.java.net/~kbarrett/8062036/webrev01-inc/



More information about the hotspot-gc-dev mailing list