RFR: 8365926: RISC-V: Performance regression in renaissance (chi-square) [v2]
Hamlin Li
mli at openjdk.org
Tue Sep 2 12:50:46 UTC 2025
On Mon, 1 Sep 2025 14:35:38 GMT, Robbin Ehn <rehn at openjdk.org> wrote:
>> src/hotspot/cpu/riscv/nativeInst_riscv.cpp line 110:
>>
>>> 108: // We changed instruction stream
>>> 109: if (mt_safe) {
>>> 110: OrderAccess::release();
>>
>> If we have relese here, do we still need the release in `set_stub_address_destination_at`?
>
> From JBS entry, the point is to do it in a sane order:
>
> The release in make_jal_opt so to make sure the store to instruction stream happens before I-cache flush.
>
> 1: store destination to stub
> 2: release
> 3: store destination to instruction stream
> 4: release
> 5: i-cache flush
I don't see a detailed discussion about why there needs to be 2 `release`.
Seems the `2: release` is redundant? does a single release (step 4) after step 3 work as well?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26944#discussion_r2315984966
More information about the hotspot-compiler-dev
mailing list