From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [PATCH 2/3] [PATCH] kvmclock - the host part. Date: Fri, 11 Jan 2008 09:47:22 -0600 Message-ID: <47878F8A.4010506@codemonkey.ws> References: <12000570563874-git-send-email-gcosta@redhat.com> <12000570732755-git-send-email-gcosta@redhat.com> <12000570802212-git-send-email-gcosta@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, jeremy-TSDbQ3PG+2Y@public.gmane.org, avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org To: Glauber de Oliveira Costa Return-path: In-Reply-To: <12000570802212-git-send-email-gcosta-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Glauber de Oliveira Costa wrote: > This is the host part of kvm clocksource implementation. As it does > not include clockevents, it is a fairly simple implementation. We > only have to register a per-vcpu area, and start writting to it periodically. > > The area is binary compatible with xen, as we use the same shadow_info structure. > > diff --git a/include/asm-x86/kvm_para.h b/include/asm-x86/kvm_para.h > index c6f3fd8..abe412a 100644 > --- a/include/asm-x86/kvm_para.h > +++ b/include/asm-x86/kvm_para.h > @@ -1,5 +1,6 @@ > #ifndef __X86_KVM_PARA_H > #define __X86_KVM_PARA_H > +#include Can we abstract that out into a neutral header instead of including the Xen headers directly in KVM. Please rename the structure too to something neutral. Including something as generic as xen/interface/xen.h when CONFIG_XEN may not be set is not a good thing, I believe. Regards, Anthony Liguori > > /* This CPUID returns the signature 'KVMKVMKVM' in ebx, ecx, and edx. It > * should be used to determine that a VM is running under KVM. > @@ -10,9 +11,13 @@ > * paravirtualization, the appropriate feature bit should be checked. > */ > #define KVM_CPUID_FEATURES 0x40000001 > +#define KVM_FEATURE_CLOCKSOURCE 0 > > +#define MSR_PARAVIRT_CLOCK 0x11 > #ifdef __KERNEL__ > #include > +extern void kvmclock_init(void); > + > > /* This instruction is vmcall. On non-VT architectures, it will generate a > * trap that we will then rewrite to the appropriate instruction. > diff --git a/include/linux/kvm.h b/include/linux/kvm.h > index 4de4fd2..78ce53f 100644 > --- a/include/linux/kvm.h > +++ b/include/linux/kvm.h > @@ -232,6 +232,7 @@ struct kvm_vapic_addr { > #define KVM_CAP_SET_TSS_ADDR 4 > #define KVM_CAP_EXT_CPUID 5 > #define KVM_CAP_VAPIC 6 > +#define KVM_CAP_CLOCKSOURCE 7 > > /* > * ioctls for VM fds > ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace