RFR: 8224974: Implement JEP 352

Aleksey Shipilev shade at redhat.com
Wed Jul 31 11:40:06 UTC 2019

On 7/31/19 1:29 PM, Andrew Dinn wrote:
> I have an update regarding the change to the computation of the
> CPU_FLUSH flag. After posting the new webrev I built a debug version
> with the change that tests the clflush bit on x86_64. It crashed when
> the assert is reached in VM_Version::supports_cpuflush:
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error (src/hotspot/cpu/x86/vm_version_x86.hpp:978),
> pid=29597, tid=29602
> #  assert((_features & ((uint64_t)(0x20000000000ULL))) != 0) failed:
> clflush should be available
> So, it seems the clflush bit is not set on my x86_64 box even though I
> am able to execute clflush quite happily.
>   "Toto, it looks like we are no longer in Antarctica."
> So, I will revert this change (in the next webrev).

But wait, that might mean the clflush is indeed not available, by either hardware or software
switch? I believe some security mitigations disable clflush. Linux kernel, for example, has
"noclflush" option to do this. Ignoring the cpu bit and emitting clflush anyway might circumvent
that mitigation then?


More information about the core-libs-dev mailing list