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 }