RFR: 8212107: VMThread issues and cleanup [v3]

Aleksey Shipilev shade at openjdk.java.net
Wed Sep 23 15:29:49 UTC 2020


On Wed, 23 Sep 2020 08:45:00 GMT, Robbin Ehn <rehn at openjdk.org> wrote:

>> We simplify the vmThread by removing the queue and refactor the the main loop.
>> This solves the issues listed:
>> - It can create an extra safepoint directly after a safepoint.
>> - It's not safe for a non-JavaThread to add safepoint to queue while GC do oops do.
>> - The exposure of the vm operation is dangerous if it's a handshake.
>> - The code is a hornets nest with the repetition of checks and branches
>> 
>> Passes t1-8, and a benchmark run.
>> 
>> If you want a smaller diff the commits contains the incremental progress and each commit passed t1.
>
> Robbin Ehn has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update after Coleen and David

Looks good!

src/hotspot/share/runtime/vmThread.cpp line 382:

> 380:
> 381:   VM_Operation* prev_vm_operation = NULL;
> 382:   if (_cur_vm_operation!= NULL) {

Whitespace before `!=`?

src/hotspot/share/runtime/vmThread.hpp line 109:

> 107:   static VM_Operation::VMOp_Type vm_op_type()     {
> 108:     VM_Operation* op = vm_operation();
> 109:     assert (op != NULL, "sanity");

Should be no whitespace after `assert`?

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

Marked as reviewed by shade (Reviewer).

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


More information about the hotspot-dev mailing list