RFR: 8339771: RISC-V: Reduce icache flushes [v2]

Robbin Ehn rehn at openjdk.org
Thu Sep 19 06:40:38 UTC 2024


On Thu, 19 Sep 2024 06:35:46 GMT, Robbin Ehn <rehn at openjdk.org> wrote:

>> src/hotspot/cpu/riscv/relocInfo_riscv.cpp line 61:
>> 
>>> 59:   if (!UseCtxFencei) {
>>> 60:     ICache::invalidate_range(addr(), bytes);
>>> 61:   }
>> 
>> One more question: Do we need a full fence (`OrderAccess::fence()`) here with `UseCtxFencei` after the patching? Like you do in `ZBarrierSetAssembler::patch_barrier_relocation()`:
>> 
>>   if (!UseCtxFencei) {
>>     // A full fence is generated before icache_flush by default in invalidate_word
>>     ICache::invalidate_range(addr, bytes);
>>   } else {
>>     OrderAccess::fence();
>>   }
>
> I actually didn't look at that.
> As the old case did a full fence when calling ICache::invalidate_range(addr, bytes); and with that comment,
> I assumed there was a reason for pointing it out, so I just kept the old behavior.
> I'll see If I can figure out if/why/what.

Sorry, now I realize what you are asking.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20913#discussion_r1766241194


More information about the hotspot-dev mailing list