From patchwork Wed Aug 21 14:58:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Roger_Pau_Monn=C3=A9?= X-Patchwork-Id: 11107265 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 17B0213A4 for ; Wed, 21 Aug 2019 15:01:07 +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 E7C5D22DD3 for ; Wed, 21 Aug 2019 15:01:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="Q1ybVGwg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E7C5D22DD3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.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 1i0S5N-00007h-KE; Wed, 21 Aug 2019 14:59:41 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i0S5M-00007W-JO for xen-devel@lists.xenproject.org; Wed, 21 Aug 2019 14:59:40 +0000 X-Inumbo-ID: 499bd289-c424-11e9-adc7-12813bfff9fa Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 499bd289-c424-11e9-adc7-12813bfff9fa; Wed, 21 Aug 2019 14:59:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1566399574; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=uEQSlx2svMIzgTVgPbHTmmnYMgFonWZGwKFXaPfsVBc=; b=Q1ybVGwgcyvudgaDgxC2t4AgvFJk2uTSg0v3QP6Q2S8Bg/QQUjezXukZ i9FnHNblOTSW1Kb0xOvxopNp+TobSPFvAWNNkS2r1rjEYnKKnaX8jjuUb 1QkczR1gfqLf5XcPxUOH+B9rmuvDYdyxBEI89g2gMh48qRuIPWKEyv7XN s=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa4.hc3370-68.iphmx.com: domain of roger.pau@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: Pamu2Zx+IvydNbSNY+ZQ73QVCAUQpzizTweWC1dKpyu+GFf2tXjCpazTHhTvUw38ZjuGjyqe2d WCd9DZKxFvF/1q+q9DhH2h+7jzLlLNgFMq1XHfwv/CqepRwlBfWAxIfmpTPEqmv6j8p8LM9/1f BtMY87LE1I7KogY+2lVcQvO/J5eWuZzSskP/ytRQVJbes61UGl9gkRJRrejytBu3sZ1xhGLqNa KUNrC9R+hoRaltWBK4jSQqW6isQ6flo4yV02z+Mi5ckpEx0OT4ZJNxnln6NUt4gsauVtNQcs4J jGo= X-SBRS: 2.7 X-MesageID: 4782698 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,412,1559534400"; d="scan'208";a="4782698" From: Roger Pau Monne To: Date: Wed, 21 Aug 2019 16:58:56 +0200 Message-ID: <20190821145903.45934-1-roger.pau@citrix.com> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 0/7] ioreq: add support for internal servers 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: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich , Roger Pau Monne Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Such internal servers are implemented by a single function that handles ioreqs inside the hypervisor. The motivation behind this change is to switch vPCI to become an internal ioreq server, so that accesses to the PCI config space can be multiplexed between devices handled by vPCI and devices handled by other ioreq servers. The implementation is fairly simple and limited to what's needed by vPCI, but can be expanded in the future if other more complex users appear. The series can also be found at: git://xenbits.xen.org/people/royger/xen.git ioreq_vpci_v1 Thanks, Roger. Roger Pau Monne (7): ioreq: add fields to allow internal ioreq servers ioreq: add internal ioreq initialization support ioreq: allow dispatching ioreqs to internal servers ioreq: allow registering internal ioreq server handler ioreq: allow decoding accesses to MMCFG regions vpci: register as an internal ioreq server ioreq: provide support for long-running operations... xen/arch/x86/hvm/dm.c | 9 +- xen/arch/x86/hvm/dom0_build.c | 9 +- xen/arch/x86/hvm/hvm.c | 7 +- xen/arch/x86/hvm/io.c | 288 +---------------------- xen/arch/x86/hvm/ioreq.c | 349 +++++++++++++++++++++++----- xen/arch/x86/physdev.c | 7 +- xen/drivers/passthrough/x86/iommu.c | 2 +- xen/drivers/vpci/vpci.c | 57 +++++ xen/include/asm-x86/hvm/domain.h | 31 ++- xen/include/asm-x86/hvm/io.h | 14 +- xen/include/asm-x86/hvm/ioreq.h | 19 +- xen/include/xen/vpci.h | 3 + 12 files changed, 415 insertions(+), 380 deletions(-)