RFR: 8224974: Implement JEP 352
shade at redhat.com
Wed Jul 31 15:46:18 UTC 2019
On 7/31/19 4:46 PM, Andrew Dinn wrote:
> Well, the failure happened during the build process so I didn't
> (couldn't) debug it. I disabled the assert in supports_cpuflush() in
> order to allow the build to complete and then ran up the resulting JVM
> inside gdb to check what was going on. The problem is that with my patch
> supports_cpuflush() is called from Assembler::clflush() and the latter
> is called from icache_x86.cpp very early during bootstrap (I think this
> is neded to flush the flush routine used to flush the code cache).
> Anyway, the call happens so early that it precedes the call to
> VM_Version::get_processor_features which sets up the _features mask
> tested by the assert.
I believe you can untie this bootstrapping circularity by relaxing the assert with
Universe::is_fully_unitialized(). It still gives us window to fail with SIGILL if the stub is called
early during bootstrap, but that would be something to fix *if* we ever find ourselves there.
More information about the core-libs-dev