RFR: 8317466: Enable interpreter oopMapCache for concurrent GCs [v2]
    Zhengyu Gu 
    zgu at openjdk.org
       
    Mon Oct 23 19:30:30 UTC 2023
    
    
  
On Mon, 16 Oct 2023 19:56:52 GMT, Leela Mohan Venati <duke at openjdk.org> wrote:
>> Zhengyu Gu has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Cleanup old oop map cache entry after class redefinition
>
> src/hotspot/share/oops/method.cpp line 311:
> 
>> 309: void Method::mask_for(int bci, InterpreterOopMap* mask) {
>> 310:   methodHandle h_this(Thread::current(), this);
>> 311:   method_holder()->mask_for(h_this, bci, mask);
> 
> Removing this condition allows all the threads including java threads to use/mutate oopMapCache. 
> 
> For ex: Java threads calls [JVM_CallStackWalk](https://github.com/openjdk/jdk/blob/741ae06c55de65dcdfe38e328022bd8dde4fa007/src/hotspot/share/prims/jvm.cpp#L586) which walks the stack and calls locals() and expressions [here](https://github.com/openjdk/jdk/blob/741ae06c55de65dcdfe38e328022bd8dde4fa007/src/hotspot/share/prims/stackwalk.cpp#L345)  which access oopMapCache.
The `oopMapCache` now is fully concurrent, it can be used/modified by Java threads.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16074#discussion_r1369176823
    
    
More information about the hotspot-dev
mailing list