Mercurial > hg > truffle
comparison src/cpu/x86/vm/vm_version_x86.cpp @ 20374:999824269b71
8055069: TSX and RTM should be deprecated more strongly until hardware is corrected
Summary: Require to specify UnlockExperimentalVMOptions flag together with UseRTMLocking flag on un-patched systems where CPUID allows it but is unsupported otherwise.
Reviewed-by: iveresov, fzhinkin
author | kvn |
---|---|
date | Fri, 22 Aug 2014 12:03:49 -0700 |
parents | b20a35eae442 |
children | 166d744df0de |
comparison
equal
deleted
inserted
replaced
20373:c67b85c32d9a | 20374:999824269b71 |
---|---|
610 vm_exit_during_initialization("RTM instructions are not available on this CPU"); | 610 vm_exit_during_initialization("RTM instructions are not available on this CPU"); |
611 } | 611 } |
612 | 612 |
613 #if INCLUDE_RTM_OPT | 613 #if INCLUDE_RTM_OPT |
614 if (UseRTMLocking) { | 614 if (UseRTMLocking) { |
615 if (is_intel_family_core()) { | |
616 if ((_model == CPU_MODEL_HASWELL_E3) || | |
617 (_model == CPU_MODEL_HASWELL_E7 && _stepping < 3) || | |
618 (_model == CPU_MODEL_BROADWELL && _stepping < 4)) { | |
619 if (!UnlockExperimentalVMOptions) { | |
620 vm_exit_during_initialization("UseRTMLocking is only available as experimental option on this platform. It must be enabled via -XX:+UnlockExperimentalVMOptions flag."); | |
621 } else { | |
622 warning("UseRTMLocking is only available as experimental option on this platform."); | |
623 } | |
624 } | |
625 } | |
615 if (!FLAG_IS_CMDLINE(UseRTMLocking)) { | 626 if (!FLAG_IS_CMDLINE(UseRTMLocking)) { |
616 // RTM locking should be used only for applications with | 627 // RTM locking should be used only for applications with |
617 // high lock contention. For now we do not use it by default. | 628 // high lock contention. For now we do not use it by default. |
618 vm_exit_during_initialization("UseRTMLocking flag should be only set on command line"); | 629 vm_exit_during_initialization("UseRTMLocking flag should be only set on command line"); |
619 } | 630 } |