lkml.org 
[lkml]   [2008]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/3] x86: Get TSC frequency from VMware hypervisor.
Alok Kataria wrote:
> x86: Get TSC frequency from VMware hypervisor.
>
> From: Alok N Kataria <akataria@vmware.com>
>
> This patch adds functions 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 backdoor port to check if we are
> under VMware.
>
> The DMI + Backdoor 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 backdoor
> port would 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 backdoor port if we are running on VMware.
> Other hypervisors too can add code to get frequency on their platform
> to this routine.
>

I would like to see, instead of calling vmware_platform() directly in
places like tsc.c, a hypervisor field in the CPU structure that is set
with the rest of the CPU identification stuff. That way we avoid ending
up with garbage like:

if (vmware_platform() || xen_platform() || kvm_platform() ...)

-hpa


\
 
 \ /
  Last update: 2008-10-21 03:55    [W:2.843 / U:1.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site