From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.9 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0ABC0C38A2A for ; Thu, 7 May 2020 14:33:50 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 CE3BC20735 for ; Thu, 7 May 2020 14:33:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Se9k//S0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CE3BC20735 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:35650 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jWhau-0001xR-Ip for qemu-devel@archiver.kernel.org; Thu, 07 May 2020 10:33:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44230) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jWhZb-0000CA-HN for qemu-devel@nongnu.org; Thu, 07 May 2020 10:32:27 -0400 Received: from us-smtp-2.mimecast.com ([207.211.31.81]:21986 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1jWhZY-0006GF-Cv for qemu-devel@nongnu.org; Thu, 07 May 2020 10:32:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1588861943; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kJBIOjg1/vpKO3dXS6/GfKGaHw8J1OOw7+Moht2OEPE=; b=Se9k//S0utlNNGGUhqJB2SXce0yRNmZrF/jaReEaztWMMUgSXfOlkkc9OtR82vTMUwSGgy Q5AbfzC9yurX5YLd0CqukVXfb+43nmH6MvJ91UGz870UHal42uoy3E/Ssl6iDbiFj2isGD CSZjgmmBR1yJMKdsgL07wnvK11qTwCk= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-387-Lm2wdatrN8ey0lwBs9uTUQ-1; Thu, 07 May 2020 10:32:16 -0400 X-MC-Unique: Lm2wdatrN8ey0lwBs9uTUQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A98D6A0BD9; Thu, 7 May 2020 14:32:14 +0000 (UTC) Received: from laptop.redhat.com (ovpn-114-214.ams2.redhat.com [10.36.114.214]) by smtp.corp.redhat.com (Postfix) with ESMTP id 418B7707BA; Thu, 7 May 2020 14:32:04 +0000 (UTC) From: Eric Auger To: eric.auger.pro@gmail.com, eric.auger@redhat.com, qemu-devel@nongnu.org, qemu-arm@nongnu.org, peter.maydell@linaro.org, jean-philippe@linaro.org, bbhushan2@marvell.com, peterx@redhat.com, armbru@redhat.com Subject: [PATCH 0/5] VIRTIO-IOMMU probe request support and MSI bypass on ARM Date: Thu, 7 May 2020 16:31:56 +0200 Message-Id: <20200507143201.31080-1-eric.auger@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=207.211.31.81; envelope-from=eric.auger@redhat.com; helo=us-smtp-delivery-1.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/07 00:55:34 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mst@redhat.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" By default the virtio-iommu translates MSI transactions. This behavior is inherited from ARM SMMU. However the virt machine code knows where the MSI doorbells are so we can easily declare those regions as VIRTIO_IOMMU_RESV_MEM_T_MSI. With that setting the guest iommu subsystem will not need to map MSIs. This setup will simplify VFIO integration. In this series, the ITS doorbell is declared as an MSI region to be bypassed by the VIRTIO-IOMMU. This paves the way to the x86 integration where the MSI region [0xFEE00000,0xFEEFFFFF] will be exposed by q35 machine. However this is not part of this series. Best Regards Eric This series can be found at: https://github.com/eauger/qemu/tree/v5.0.0-virtio-iommu-msi-bypass-v1 History: - Most of those patches were respinned from [PATCH for-5.0 v11 00/20] VIRTIO-IOMMU device except the last one which is new Eric Auger (5): qdev: Introduce DEFINE_PROP_RESERVED_REGION virtio-iommu: Implement RESV_MEM probe request virtio-iommu: Handle reserved regions in the translation process virtio-iommu-pci: Add array of Interval properties hw/arm/virt: Let the virtio-iommu bypass MSIs include/exec/memory.h | 6 ++ include/hw/qdev-properties.h | 3 + include/hw/virtio/virtio-iommu.h | 2 + include/qemu/typedefs.h | 1 + hw/arm/virt.c | 5 ++ hw/core/qdev-properties.c | 89 +++++++++++++++++++++++++ hw/virtio/virtio-iommu-pci.c | 3 + hw/virtio/virtio-iommu.c | 109 ++++++++++++++++++++++++++++++- hw/virtio/trace-events | 1 + 9 files changed, 217 insertions(+), 2 deletions(-) --=20 2.20.1