RFR: 8295282: Use Zicboz/cbo.zero to zero-out memory on RISC-V [v2]

Ludovic Henry luhenry at openjdk.org
Tue Oct 18 08:22:22 UTC 2022


On Sun, 16 Oct 2022 08:44:01 GMT, Vladimir Kempik <vkempik at openjdk.org> wrote:

>> Ludovic Henry has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>> 
>>  - Fix comment
>>  - Fix alignement
>>  - Merge branch 'master' of github.com:openjdk/jdk into dev/ludovic/upstream-zicboz
>>  - 8295282: Use Zicboz/cbo.zero to zero-out memory on RISC-V
>>    
>>    Similarly to AArch64 DC.ZVA, the RISC-V Zicboz [1] extension provides the cbo.zero [2] instruction that allows to zero out memory a cache-line at a time. This should be faster than storing zeroes 64bits at a time.
>>    
>>    [1] https://github.com/riscv/riscv-CMOs
>>    [2] https://github.com/riscv/riscv-CMOs/blob/master/cmobase/Zicboz.adoc#insns-cbo_zero
>
> src/hotspot/os_cpu/linux_riscv/vm_version_linux_riscv.cpp line 117:
> 
>> 115:   }
>> 116: 
>> 117:   _cache_line_size = 64;
> 
> Cache line size can be different on various cpus. Hardcoding it isn't nice. if it can't be reliably retrieved at runtime, maybe allow specifying it via some XX option ?

Agreed. I don't think there is an existing API on RISC-V to get the current cache line size. I'll add a `-XX:` flag instead.

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

PR: https://git.openjdk.org/jdk/pull/10718


More information about the hotspot-dev mailing list