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? -Aleksey