1. 02 Nov, 2008 2 commits
    • Alok Kataria's avatar
      x86: Hypervisor detection and get tsc_freq from hypervisor · 88b094fb
      Alok Kataria authored
      Impact: Changes timebase calibration on Vmware.
      
      v3->v2 : Abstract the hypervisor detection and feature (tsc_freq) request
      	 behind a hypervisor.c file
      v2->v1 : Add a x86_hyper_vendor field to the cpuinfo_x86 structure.
      	 This avoids multiple calls to the hypervisor detection function.
      
      This patch adds function to detect if we are running under VMware.
      The current way to check if we are on VMware is following,
      #  check if "hypervisor present bit" is set, if so read the 0x40000000
         cpuid leaf and check for "VMwareVMware" signature.
      #  if the above fails, check the DMI vendors name for "VMware" string
         if we find one we query the VMware hypervisor port to check if we are
         under VMware.
      
      The DMI + "VMware hypervisor port check" is needed for older VMware products,
      which don't implement the hypervisor signature cpuid leaf.
      Also note that since we are checking for the DMI signature the hypervisor
      port should never be accessed on native hardware.
      
      This patch also adds a hypervisor_get_tsc_freq function, instead of
      calibrating the frequency which can be error prone in virtualized
      environment, we ask the hypervisor for it. We get the frequency from
      the hypervisor by accessing the hypervisor port if we are running on VMware.
      Other hypervisors too can add code to the generic routine to get frequency on
      their platform.
      Signed-off-by: default avatarAlok N Kataria <akataria@vmware.com>
      Signed-off-by: default avatarDan Hecht <dhecht@vmware.com>
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      88b094fb
    • Alok Kataria's avatar
      x86: add X86_FEATURE_HYPERVISOR feature bit · 49ab56ac
      Alok Kataria authored
      Impact: Number declaration only.
      
      Add X86_FEATURE_HYPERVISOR bit (CPUID level 1, ECX, bit 31).
      Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
      49ab56ac
  2. 31 Oct, 2008 12 commits
  3. 30 Oct, 2008 26 commits