RFR: 8271931: Make AbortVMOnVMOperationTimeout more resilient to OS scheduling [v4]
    David Holmes 
    dholmes at openjdk.java.net
       
    Mon Aug  9 05:29:34 UTC 2021
    
    
  
On Sat, 7 Aug 2021 10:12:55 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:
>> Perform VM-op timeout also on the VM thread. If a VM-op is stuck, the existing watcher-thread based machinery will kick in and detect it.
>> 
>> Test: tier1
>
> Albert Mingkun Yang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   disarm
Hi Albert,
I preferred earlier versions that didn't shove all this extra logic into the timeout task, but it isn't worth arguing over.
Thanks,
David
src/hotspot/share/runtime/vmThread.cpp line 84:
> 82:   // The two stores to `_armed` are counted in VM-op, but they should be
> 83:   // insignificant compared to the actual VM-op duration.
> 84:   jlong vm_op_duration = nanos_to_millis(os::javaTimeNanos() - _arm_time);
You could move this ahead of the store. And then you only need a small comment in arm().
src/hotspot/share/runtime/vmThread.cpp line 89:
> 87:   // VMOperationTimeoutTask might miss the arm-disarm window depending on
> 88:   // the scheduling.
> 89:   assert(Thread::current()->is_VM_thread(), "Check timeout on VM thread");
Seems unnecessary to assert this.
src/hotspot/share/runtime/vmThread.cpp line 94:
> 92:           _vm_op_name, vm_op_duration, AbortVMOnVMOperationTimeoutDelay);
> 93:   }
> 94:   _vm_op_name = nullptr;
Yes clearing this is good hygiene - no dangling pointers.
-------------
Marked as reviewed by dholmes (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/5016
    
    
More information about the hotspot-runtime-dev
mailing list