Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754268AbcJZPSe (ORCPT ); Wed, 26 Oct 2016 11:18:34 -0400 Received: from smtp.eu.citrix.com ([185.25.65.24]:43963 "EHLO SMTP.EU.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753753AbcJZPSd (ORCPT ); Wed, 26 Oct 2016 11:18:33 -0400 X-IronPort-AV: E=Sophos;i="5.31,551,1473120000"; d="scan'208";a="33772095" Date: Wed, 26 Oct 2016 17:18:25 +0200 From: Roger Pau =?iso-8859-1?Q?Monn=E9?= To: Boris Ostrovsky CC: , , , Subject: Re: [PATCH 5/8] xen/pvh: Prevent PVH guests from using PIC, RTC and IOAPIC Message-ID: <20161026151825.zqt4fpirqurllsii@mac> References: <1476468318-24422-1-git-send-email-boris.ostrovsky@oracle.com> <1476468318-24422-6-git-send-email-boris.ostrovsky@oracle.com> <20161026104205.vjemyddm6bus3kem@mac> <16d3a435-25c2-33b6-27a8-713dd9e54b7e@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <16d3a435-25c2-33b6-27a8-713dd9e54b7e@oracle.com> User-Agent: NeoMutt/20161003 (1.7.0) X-ClientProxiedBy: AMSPEX02CAS02.citrite.net (10.69.22.113) To AMSPEX02CL02.citrite.net (10.69.22.126) X-DLP: AMS1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2256 Lines: 54 On Wed, Oct 26, 2016 at 10:50:21AM -0400, Boris Ostrovsky wrote: > On 10/26/2016 06:42 AM, Roger Pau Monn? wrote: > > On Fri, Oct 14, 2016 at 02:05:15PM -0400, Boris Ostrovsky wrote: > >> Make sure they don't use these devices since they are not emulated > >> for unprivileged PVH guest. > >> > >> Also don't initialize hypercall page for them in init_hvm_pv_info() > >> since this has already been done. > >> > >> Signed-off-by: Boris Ostrovsky > >> --- > >> arch/x86/xen/enlighten.c | 24 +++++++++++++++++------- > >> 1 file changed, 17 insertions(+), 7 deletions(-) > >> > >> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c > >> index d38d568..6c1a330 100644 > >> --- a/arch/x86/xen/enlighten.c > >> +++ b/arch/x86/xen/enlighten.c > >> @@ -1803,10 +1803,21 @@ static void __init init_hvm_pv_info(void) > >> minor = eax & 0xffff; > >> printk(KERN_INFO "Xen version %d.%d.\n", major, minor); > >> > >> - cpuid(base + 2, &pages, &msr, &ecx, &edx); > >> + xen_domain_type = XEN_HVM_DOMAIN; > >> > >> - pfn = __pa(hypercall_page); > >> - wrmsr_safe(msr, (u32)pfn, (u32)(pfn >> 32)); > >> + /* PVH set up hypercall page earlier in xen_prepare_pvh() */ > >> + if (xen_pvh_domain()) { > >> + pv_info.name = "Xen PVH"; > >> +#ifdef CONFIG_ACPI > >> + /* No PIC or IOAPIC */ > > Shouldn't this be fetched from the MADT ACPI table if ACPI is available > > (rsdp_paddr != 0 in start_info)? > > > At this point we haven't parsed ACPI yet (with or without rsdp_paddr, > which we don't set anyway for domU) so we don't know whether we have PIC > or IOAPIC. I guess I'm missing something, but if we are providing ACPI tables to a PVH DomU rsdp_paddr should be set, or else we are failing to comply with our own start info specification. > Having said that, I will probably remove this ("acpi_irq_model = > ACPI_IRQ_MODEL_PLATFORM", together with the comment) since I am working > on adding SCI support via an event channel and ACPI_IRQ_MODEL_PIC model, > which is default, seems to work OK. Hm, right, that might be an option. Do you know how hardware-reduced ACPI implementations (which IIRC also don't have a SCI interrupt) deliver events to the OS? Or it's simply not possible in that case? Roger.