RFR: 8291714: Implement a Multi-Reader Single-Writer mutex for Hotspot
    Johan Sjölén 
    duke at openjdk.org
       
    Thu Aug 11 19:13:30 UTC 2022
    
    
  
On Thu, 11 Aug 2022 15:18:10 GMT, Johan Sjölén <duke at openjdk.org> wrote:
> May I please have a review for this PR which implements a `MRWMutex` class for Hotspot?
> 
> This PR does 3 things:
> 
> * Adds a port of ZGC's MRSW mutex (see [0]) to Hotspot
> * Adds some new utilities for writing multi-threaded tests.
> * Adds some tests for MRSW Mutex using these new utilities
> 
> The ticket has some comments which might be worth checking out: https://bugs.openjdk.org/browse/JDK-8291714
> 
> [0] Original source code here: https://github.com/openjdk/zgc/blob/zgc_generational/src/hotspot/share/gc/z/zJNICritical.cpp
src/hotspot/share/runtime/mrswMutex.hpp line 105:
> 103: 
> 104:         // Do requested transition before blocking
> 105:         WriterTransition tbivm(JavaThread::current());
This shouldn't compute the thread, instead `read_lock` and `write_lock` should be given the threads as arguments. This will fail if the current thread isn't a Java one.
src/hotspot/share/runtime/mrswMutex.hpp line 149:
> 147: 
> 148:         // Do requested transition before blocking
> 149:         ReaderTransition tbivm(JavaThread::current());
This shouldn't compute the thread, instead `read_lock` and `write_lock` should be given the threads as arguments. This will fail if the current thread isn't a Java one.
-------------
PR: https://git.openjdk.org/jdk/pull/9838
    
    
More information about the hotspot-dev
mailing list