< prev index next >

src/hotspot/cpu/x86/vm_version_x86.cpp

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -1571,69 +1571,10 @@
     }
   }
 #endif // !PRODUCT
 }
 
-void VM_Version::print_platform_virtualization_info(outputStream* st) {
-  VirtualizationType vrt = VM_Version::get_detected_virtualization();
-  if (vrt == XenHVM) {
-    st->print_cr("Xen hardware-assisted virtualization detected");
-  } else if (vrt == KVM) {
-    st->print_cr("KVM virtualization detected");
-  } else if (vrt == VMWare) {
-    st->print_cr("VMWare virtualization detected");
-  } else if (vrt == HyperV) {
-    st->print_cr("HyperV virtualization detected");
-  }
-}
-
-void VM_Version::check_virt_cpuid(uint32_t idx, uint32_t *regs) {
-// TODO support 32 bit
-#if defined(_LP64)
-#if defined(_MSC_VER)
-  // Allocate space for the code
-  const int code_size = 100;
-  ResourceMark rm;
-  CodeBuffer cb("detect_virt", code_size, 0);
-  MacroAssembler* a = new MacroAssembler(&cb);
-  address code = a->pc();
-  void (*test)(uint32_t idx, uint32_t *regs) = (void(*)(uint32_t idx, uint32_t *regs))code;
-
-  a->movq(r9, rbx); // save nonvolatile register
-
-  // next line would not work on 32-bit
-  a->movq(rax, c_rarg0 /* rcx */);
-  a->movq(r8, c_rarg1 /* rdx */);
-  a->cpuid();
-  a->movl(Address(r8,  0), rax);
-  a->movl(Address(r8,  4), rbx);
-  a->movl(Address(r8,  8), rcx);
-  a->movl(Address(r8, 12), rdx);
-
-  a->movq(rbx, r9); // restore nonvolatile register
-  a->ret(0);
-
-  uint32_t *code_end = (uint32_t *)a->pc();
-  a->flush();
-
-  // execute code
-  (*test)(idx, regs);
-#elif defined(__GNUC__)
-  __asm__ volatile (
-     "        cpuid;"
-     "        mov %%eax,(%1);"
-     "        mov %%ebx,4(%1);"
-     "        mov %%ecx,8(%1);"
-     "        mov %%edx,12(%1);"
-     : "+a" (idx)
-     : "S" (regs)
-     : "ebx", "ecx", "edx", "memory" );
-#endif
-#endif
-}
-
-
 bool VM_Version::use_biased_locking() {
 #if INCLUDE_RTM_OPT
   // RTM locking is most useful when there is high lock contention and
   // low data contention.  With high lock contention the lock is usually
   // inflated and biased locking is not suitable for that case.

@@ -1651,58 +1592,10 @@
   }
 #endif
   return UseBiasedLocking;
 }
 
-// On Xen, the cpuid instruction returns
-//  eax / registers[0]: Version of Xen
-//  ebx / registers[1]: chars 'XenV'
-//  ecx / registers[2]: chars 'MMXe'
-//  edx / registers[3]: chars 'nVMM'
-//
-// On KVM / VMWare / MS Hyper-V, the cpuid instruction returns
-//  ebx / registers[1]: chars 'KVMK' / 'VMwa' / 'Micr'
-//  ecx / registers[2]: chars 'VMKV' / 'reVM' / 'osof'
-//  edx / registers[3]: chars 'M'    / 'ware' / 't Hv'
-//
-// more information :
-// https://kb.vmware.com/s/article/1009458
-//
-void VM_Version::check_virtualizations() {
-#if defined(_LP64)
-  uint32_t registers[4];
-  char signature[13];
-  uint32_t base;
-  signature[12] = '\0';
-  memset((void*)registers, 0, 4*sizeof(uint32_t));
-
-  for (base = 0x40000000; base < 0x40010000; base += 0x100) {
-    check_virt_cpuid(base, registers);
-
-    *(uint32_t *)(signature + 0) = registers[1];
-    *(uint32_t *)(signature + 4) = registers[2];
-    *(uint32_t *)(signature + 8) = registers[3];
-
-    if (strncmp("VMwareVMware", signature, 12) == 0) {
-      Abstract_VM_Version::_detected_virtualization = VMWare;
-    }
-
-    if (strncmp("Microsoft Hv", signature, 12) == 0) {
-      Abstract_VM_Version::_detected_virtualization = HyperV;
-    }
-
-    if (strncmp("KVMKVMKVM", signature, 9) == 0) {
-      Abstract_VM_Version::_detected_virtualization = KVM;
-    }
-
-    if (strncmp("XenVMMXenVMM", signature, 12) == 0) {
-      Abstract_VM_Version::_detected_virtualization = XenHVM;
-    }
-  }
-#endif
-}
-
 void VM_Version::initialize() {
   ResourceMark rm;
   // Making this stub must be FIRST use of assembler
 
   stub_blob = BufferBlob::create("get_cpu_info_stub", stub_size);

@@ -1713,9 +1606,6 @@
   VM_Version_StubGenerator g(&c);
   get_cpu_info_stub = CAST_TO_FN_PTR(get_cpu_info_stub_t,
                                      g.generate_get_cpu_info());
 
   get_processor_features();
-  if (cpu_family() > 4) { // it supports CPUID
-    check_virtualizations();
-  }
 }
< prev index next >