From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: x2APIC emulation for HVM guest Date: Thu, 02 Dec 2010 07:44:05 +0100 Message-ID: <4CF74035.5020909@redhat.com> References: <201012021009.36497.sheng.yang@intel.com> <201012021343.49014.sheng.yang@intel.com> <4CF7331F.7080207@redhat.com> <201012021423.16866.sheng.yang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <201012021423.16866.sheng.yang@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Yang, Sheng" Cc: "xen-devel@lists.xensource.com" , Keir Fraser List-Id: xen-devel@lists.xenproject.org On 12/02/2010 07:23 AM, Yang, Sheng wrote: > On Thursday 02 December 2010 13:48:15 Paolo Bonzini wrote: >> On 12/02/2010 06:43 AM, Yang, Sheng wrote: >>> I think we can do it step by step. This patch is big enough. >> >> Yes, I agree it can go in as a separate patch. >> >>> I'd like to work the direct EOI patch out, but I am thinking about how to >>> test it... >> >> Maybe you can run Xen inside an HVM guest, forcing x2apic mode to be >> enabled? You do not need nested VMX if you only run PV guests in the >> guest hypervisor. > > I don't know how much work need to be done for this, and if it's worth to do for > something was not be used in practice(if it would be used in practice, then it > would be easy for us to test)... Maybe it's as easy as this: diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c --- a/xen/arch/x86/genapic/x2apic.c +++ b/xen/arch/x86/genapic/x2apic.c @@ -41,13 +41,13 @@ int x2apic_cmdline_disable(void) static int probe_x2apic_phys(void) { return x2apic && x2apic_phys && x2apic_is_available() && - iommu_supports_eim(); + 1; } static int probe_x2apic_cluster(void) { return x2apic && !x2apic_phys && x2apic_is_available() && - iommu_supports_eim(); + 1; } const struct genapic apic_x2apic_phys = { The original Xen x2apic code was not conditional on iommu_supports_eim(). Paolo