On Wed, 21 Oct 2020 16:54:48 GMT, Daniel D. Daugherty <dcu...@openjdk.org> 
wrote:

>> Robbin Ehn has updated the pull request with a new target base due to a 
>> merge or a rebase. The pull request now contains seven commits:
>> 
>>  - Fixed merge miss
>>  - Merge branch 'master' into 
>> 8223312-Utilize-handshakes-instead-of-is_thread_fully_suspended
>>  - Merge fix from Richard
>>  - Merge branch 'master' into 
>> 8223312-Utilize-handshakes-instead-of-is_thread_fully_suspended
>>  - Removed TraceSuspendDebugBits
>>  - Removed unused method is_ext_suspend_completed_with_lock
>>  - Utilize handshakes instead of is_thread_fully_suspended
>
> src/hotspot/share/prims/jvmtiEnv.cpp line 1718:
> 
>> 1716:   MutexLocker mu(JvmtiThreadState_lock);
>> 1717:   if (java_thread == JavaThread::current()) {
>> 1718:     op.doit(java_thread, true);
> 
> Please add a comment after the `true` parameter to
> indicate the name of the doit() function's parameter,
> e.g., `true /* self */`.

Fixed

> src/hotspot/share/prims/jvmtiEnvBase.cpp line 56:
> 
>> 54: #include "runtime/threadSMR.hpp"
>> 55: #include "runtime/vframe.hpp"
>> 56: #include "runtime/vframe.inline.hpp"
> 
> When you add `foo.inline.hpp` you delete `foo.hpp` because
> the `foo.inline.hpp` file always includes the `foo.hpp` file.

Fixed

> src/hotspot/share/prims/jvmtiEnvBase.cpp line 1311:
> 
>> 1309: // It is to keep a ret_ob_h handle alive after return to the caller.
>> 1310: jvmtiError
>> 1311: JvmtiEnvBase::check_top_frame(Thread* current_thread, JavaThread* 
>> java_thread,
> 
> Again, it is not clear why these changes to `check_top_frame` are here since 
> they
> appear to be related to @reinrich's work.

Long story:
Before async handshakes was integrate I had a patch which does the same as this.
This change was accidentally slipped into async handshakes change-set and was 
integrated.
Richard notice this, I told him he could revert it in his change-set for EB, so 
he did.
But now we need this change, so here it comes once more!

VM thread is allowed to execute these handshakes, thus when calling 
check_top_frame() from SetForceEarlyReturn::doit() it's just a Thread*.

> src/hotspot/share/prims/jvmtiEnvBase.cpp line 1398:
> 
>> 1396:   SetForceEarlyReturn op(state, value, tos);
>> 1397:   if (java_thread == current_thread) {
>> 1398:     op.doit(java_thread, true);
> 
> Please add a comment after the true parameter to
> indicate the name of the doit() function's parameter,
> e.g., `true /* self */`.

Fixed

> src/hotspot/share/prims/jvmtiEnvBase.cpp line 1543:
> 
>> 1541:   HandleMark hm(current_thread);
>> 1542:   JavaThread* java_thread = target->as_Java_thread();
>> 1543: 
> 
> This would be useful here:
> 
> `assert(_state->get_thread() == java_thread, "Must be");`

Fixed.

> src/hotspot/share/prims/jvmtiEnvBase.cpp line 1570:
> 
>> 1568: 
>> 1569:   ResourceMark rm(current_thread);
>> 1570:   // Check if there are more than one Java frame in this thread, that 
>> the top two frames
> 
> typo: s/are more/is more/

Fixed

> src/hotspot/share/prims/jvmtiEnvBase.cpp line 1642:
> 
>> 1640: 
>> 1641:   if (!self) {
>> 1642:     if (!java_thread->is_external_suspend()) {
> 
> You could join these two if-statements with `&&` and have
> one less indenting level...

Fixed

> src/hotspot/share/prims/jvmtiEnvBase.hpp line 361:
> 
>> 359:      _tos(tos) {}
>> 360:   void do_thread(Thread *target) {
>> 361:     doit(target, false);
> 
> Please add a comment after the true parameter to
> indicate the name of the doit() function's parameter,
> e.g., `false /* self */`.

Fixed

> src/hotspot/share/prims/jvmtiEnvBase.hpp line 395:
> 
>> 393:       _depth(depth) {}
>> 394:   void do_thread(Thread *target) {
>> 395:     doit(target, false);
> 
> Please add a comment after the true parameter to
> indicate the name of the doit() function's parameter,
> e.g., `false /* self */`.

Fixed

> src/hotspot/share/runtime/deoptimization.cpp line 1755:
> 
>> 1753:          thread->is_handshake_safe_for(Thread::current()) ||
>> 1754:          SafepointSynchronize::is_at_safepoint(),
>> 1755:          "can only deoptimize other thread at a safepoint");
> 
> Should that now be: `safepoint/handshake`??

Fixed

> src/hotspot/share/runtime/thread.cpp line 698:
> 
>> 696:   RememberProcessedThread rpt(this);
>> 697:   oops_do_no_frames(f, cf);
>> 698:   oops_do_frames(f, cf);
> 
> In the comment above:
>       // ... If we were
>       // called by wait_for_ext_suspend_completion(), then it
>       // will be doing the retries so we don't have to.
> `wait_for_ext_suspend_completion()` has been deleted so the
> comment needs work.

I just delete the no longer relevant parts.

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

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

Reply via email to