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-runtime-dev mailing list