RFR: 8253064: monitor list simplifications and getting rid of TSM [v4]

Daniel D.Daugherty dcubed at openjdk.java.net
Tue Nov 10 21:30:05 UTC 2020


On Tue, 10 Nov 2020 17:32:56 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> Daniel D. Daugherty has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   dholmes-ora - convert inner while loop to do-while loop in unlink_deflated().
>
> src/hotspot/share/runtime/objectMonitor.cpp line 551:
> 
>> 549:       if (try_set_owner_from(DEFLATER_MARKER, NULL) != DEFLATER_MARKER) {
>> 550:         // Deferred decrement for the JT EnterI() that cancelled the async deflation.
>> 551:         add_to_contentions(-1);
> 
> contentions is essentially a refcount, isn't it.  Can you fix the comment to include this at line 360 since that's not the only purpose of this count.
> 
>   // Keep track of contention for JVM/TI and M&M queries.
>   add_to_contentions(1);

No it is not a ref_count. We got rid of the accurate ref_count field
because maintaining it was too slow.

contentions just tells you how many threads have blocked on the
slow-path trying to enter the monitor. The fast-paths never touch
contentions. The comment on line 360 is accurate.

> src/hotspot/share/runtime/synchronizer.hpp line 61:
> 
>> 59:   bool has_next() const { return _current != NULL; }
>> 60:   ObjectMonitor* next();
>> 61: };
> 
> Can MonitorList be defined in the .cpp file?  I don't see anything outside of synchronizer.cpp that refers to it.

I can see if that will work.

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

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


More information about the serviceability-dev mailing list