From patchwork Fri Nov 15 20:01:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stewart Hildebrand X-Patchwork-Id: 11247067 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0F9A5159A for ; Fri, 15 Nov 2019 20:02:48 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EA4C72073A for ; Fri, 15 Nov 2019 20:02:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EA4C72073A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=dornerworks.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iVhmV-0005XG-5x; Fri, 15 Nov 2019 20:01:23 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iVhmU-0005XB-Bv for xen-devel@lists.xenproject.org; Fri, 15 Nov 2019 20:01:22 +0000 X-Inumbo-ID: b14e5bb0-07e2-11ea-adbe-bc764e2007e4 Received: from webmail.dornerworks.com (unknown [12.207.209.150]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id b14e5bb0-07e2-11ea-adbe-bc764e2007e4; Fri, 15 Nov 2019 20:01:21 +0000 (UTC) From: Stewart Hildebrand To: Date: Fri, 15 Nov 2019 15:01:04 -0500 Message-ID: <20191115200115.44890-1-stewart.hildebrand@dornerworks.com> X-Mailer: git-send-email 2.24.0 MIME-Version: 1.0 X-Originating-IP: [172.27.14.58] X-ClientProxiedBy: Mcbain.dw.local (172.27.1.45) To Mcbain.dw.local (172.27.1.45) X-spam-status: No, score=-2.9 required=3.5 tests=ALL_TRUSTED, BAYES_00, MAILSHELL_SCORE_10_69 X-Spam-Flag: NO Subject: [Xen-devel] [XEN PATCH v3 00/11] xen: arm: context switch vtimer PPI state X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Volodymyr Babchuk , Jarvis Roach , Stefano Stabellini , Julien Grall , Andre Przywara Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" This is an update to Ian Campbell's work to route timer PPIs to guests [1]. I attempted to address most of the feedback on v2 of the series. There are a couple of comments I was unsure about - instances of this are noted in the individual patches. Highlights in v3: * Rebase * Tested on QEMU with GICv3 * Tested on Xilinx Zynq UltraScale+ with GICv2 While I build-tested with CONFIG_NEW_VGIC=y, I only did a quick runtime test with the new vGIC and I encountered an ASSERT failure: Assertion 'irq->hwintid >= VGIC_NR_PRIVATE_IRQS' failed at vgic-mmio.c:96 Because of this, and because there is still some feedback outstanding from v2, portions of this series may be considered RFC-ish (especially the last patch "context switch vtimer PPI state"). [1] https://lists.xenproject.org/archives/html/xen-devel/2015-11/msg00921.html Ian Campbell (7): xen: arm: fix indentation of struct vtimer xen: arm: fix typo in the description of struct pending_irq->desc xen: arm: Refactor route_irq_to_guest xen: arm: add interfaces to save/restore the state of a PPI. xen: arm: gic: supporting routing a PPI to the current vcpu. xen: arm: context switch vtimer PPI state. HACK: Force virt timer to PPI0 (IRQ16) Stewart Hildebrand (4): xen: arm: remove is_assignable_irq Add NR_SGIS and NR_PPIS definitions to irq.h xen: arm: vgic: allow delivery of PPIs to guests xen: arm: vgic: don't fail if IRQ is already connected xen/arch/arm/gic-v2.c | 69 +++++++++++ xen/arch/arm/gic-v3.c | 69 +++++++++++ xen/arch/arm/gic-vgic.c | 33 +++-- xen/arch/arm/gic.c | 79 ++++++++++++ xen/arch/arm/irq.c | 202 ++++++++++++++++++++++--------- xen/arch/arm/time.c | 26 +--- xen/arch/arm/vgic.c | 6 +- xen/arch/arm/vgic/vgic.c | 4 + xen/arch/arm/vtimer.c | 45 ++++++- xen/include/asm-arm/domain.h | 22 +++- xen/include/asm-arm/gic.h | 24 ++++ xen/include/asm-arm/irq.h | 9 +- xen/include/asm-arm/perfc_defn.h | 1 - xen/include/asm-arm/vgic.h | 2 +- xen/include/public/arch-arm.h | 2 +- 15 files changed, 483 insertions(+), 110 deletions(-)