From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:adf:ef42:0:0:0:0:0 with SMTP id c2csp3966001wrp; Tue, 24 Sep 2019 07:13:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqxuvrlcOsSXyiGxHUin8QvUjtQaDYDzOa94BrZmqfHfgXPLYMgsNw8quqe73c68Q7YlQYvX X-Received: by 2002:ac8:5543:: with SMTP id o3mr3022123qtr.129.1569334436886; Tue, 24 Sep 2019 07:13:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569334436; cv=none; d=google.com; s=arc-20160816; b=hPtvQdhgtb4PTxMoKYIIH/hTOerUmBn5WdoALd17N8jSi1Zj6IEcO3E3yDaSlxiXOo 0AloD4tFcQc29t3dGhxXuDbJ7JVEzB7Nlat0LJdoEikl22ousZeygTQYLQB+uhp3CFT8 Ws+Z8+/lNapVMFU4QbTnb2dE7yCpqafLVxeomEQ3jvl1C287nN/o2Ig3ohMvZcbnxfwQ pwD6VvWyfJuVuTLiqCxiLVkcPEQtukqCKGbx3khtOsWwtuy23S2EOJfdT++N5EN0l3I/ FQCjp1Xt7adYT0XiXwqcJNONEa0y+8u3W7CpXSE/EW+B4FtoywR8VITUpA1PuLHAtMRP Wu9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:to :from:date:dkim-signature; bh=6Vts3JasbA4zan63R3GCcXEkLT9gArRNFbwiG7GADfc=; b=1C3hcxup+2hfC1VFHEc02pCeA1jRqe7esmnzrRaDZ/zLwbStFln92zOBc3Nd5pta0v JGJuIgKJQ7xm9uNFHAYTn1mKO3KZ/NeQUa/2MuZMTydD2T2AJMRztBD6XJJ0boZzyXE6 4xqgtE9MKZoOAiZCDD0WnhduV89YKGYWgcmprUWnqQh90Y2jeA4G0nR2Ddg5XI7xMkVp 1MDKkzVW6lYRbOvcBFtJFCygHPU4+KkT6YBbeGMzD9FmE0BiMoJZNDap+qO50BgblAi0 V8O5cpN+oJO460rNTtyPNlHI9GHQgVDj6sTYqGlRfd8kNzchHzmXE2GaTuZOScnsor1V w5vg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gibson.dropbear.id.au header.s=201602 header.b="l41aT8/N"; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a69si1305147qkc.264.2019.09.24.07.13.56 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 24 Sep 2019 07:13:56 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@gibson.dropbear.id.au header.s=201602 header.b="l41aT8/N"; spf=pass (google.com: domain of qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org" Received: from localhost ([::1]:46186 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iClZj-0000Tr-N8 for alex.bennee@linaro.org; Tue, 24 Sep 2019 10:13:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58259) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iCkqW-00072V-QW for qemu-arm@nongnu.org; Tue, 24 Sep 2019 09:27:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iCkqV-0000tO-2A for qemu-arm@nongnu.org; Tue, 24 Sep 2019 09:27:12 -0400 Received: from ozlabs.org ([2401:3900:2:1::2]:36341) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iCkqT-0000sF-Qy; Tue, 24 Sep 2019 09:27:10 -0400 Received: by ozlabs.org (Postfix, from userid 1007) id 46d26K1yn5z9sDB; Tue, 24 Sep 2019 23:27:05 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gibson.dropbear.id.au; s=201602; t=1569331625; bh=N0ZDgsZkLGVcga+EKDbKms0VcmTN4w3BG0f0b8/5IYg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=l41aT8/N2snuTYIVwofEpt1O1LFMa1dPxP7Ns9wYfpiQVdSGzgmX8rG3Fzx2YzcgM CHaZ0FKs0uVugIeSJ4aupy3b/YwROW78oQIq4M4Jt5alUS4iNW4y0jZ6sFxIai9e1s 2RLDSUK9SySDoyXhAtwauIkbB8hPOmMl+Ar7dz+w= Date: Tue, 24 Sep 2019 23:26:58 +1000 From: David Gibson To: Eric Auger Subject: Re: [PATCH v4 0/2] Allow memory_region_register_iommu_notifier() to fail Message-ID: <20190924132658.GE17405@umbus> References: <20190924082517.13724-1-eric.auger@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="jKBxcB1XkHIR0Eqt" Content-Disposition: inline In-Reply-To: <20190924082517.13724-1-eric.auger@redhat.com> User-Agent: Mutt/1.12.1 (2019-06-15) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2401:3900:2:1::2 X-BeenThere: qemu-arm@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, aik@ozlabs.ru, qemu-devel@nongnu.org, peterx@redhat.com, alex.williamson@redhat.com, qemu-arm@nongnu.org, pbonzini@redhat.com, eric.auger.pro@gmail.com Errors-To: qemu-arm-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-arm" X-TUID: 0roWEzj8BWzy --jKBxcB1XkHIR0Eqt Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Sep 24, 2019 at 10:25:15AM +0200, Eric Auger wrote: > This series allows the memory_region_register_iommu_notifier() > to fail. As of now, when a MAP notifier is attempted to be > registered along with SMMUv3 or AMD IOMMU, we exit in the IOMMU > MR notify_flag_changed() callback. >=20 > In case of VFIO assigned device hotplug, this could be handled > more nicely directly within the VFIO code, simply rejecting > the hotplug without exiting. This is what the series achieves > by handling the memory_region_register_iommu_notifier() returned > value and Error object. >=20 > To propagate errors collected during vfio_listener_region_add() > we now store the error handle inside the VFIO container instead > of a returned value. >=20 > The message now is: > (QEMU) device_add id=3Dhot0 driver=3Dvfio-pci host=3D0000:89:00.0 bus=3Dp= cie.1 > {"error": {"class": "GenericError", "desc": "vfio 0000:89:00.0: failed > to setup container for group 2: memory listener initialization failed: > Region smmuv3-iommu-memory-region-0-6: device 01.00.0 requires iommu MAP > notifier which is not currently supported"}} >=20 > Best Regards For the series Reviewed-by: David Gibson and ppc parts Acked-by: David Gibson >=20 > Eric >=20 > This series can be found at: > https://github.com/eauger/qemu/tree/v4.1.0_register_iommu_notifier_fail_v4 >=20 > History: >=20 > v3 -> v4: > - added Peter's R-b on 2d patch > - 1st patch: restore hw_error, remove useless ret assignment, improve > DMA host window error message, remove local mr variable >=20 > v2 -> v3: > - also pass an Error handle (suggested by Peter) >=20 > v1 -> v2: > - Intel IOMMU now handles the problem differently with machine init done > notifier and machine hotplug allowed hook. > - use assert(!ret) > - message rewording in SMMUv3 >=20 > Follow-up of "VFIO/SMMUv3: Fail on VFIO/HW nested paging detection" > https://patchew.org/QEMU/20190829090141.21821-1-eric.auger@redhat.com/ >=20 >=20 > Eric Auger (2): > vfio: Turn the container error into an Error handle > memory: allow memory_region_register_iommu_notifier() to fail >=20 > exec.c | 10 +++++-- > hw/arm/smmuv3.c | 18 ++++++------ > hw/i386/amd_iommu.c | 17 +++++++----- > hw/i386/intel_iommu.c | 8 ++++-- > hw/ppc/spapr_iommu.c | 8 ++++-- > hw/vfio/common.c | 52 +++++++++++++++++++++++------------ > hw/vfio/spapr.c | 4 ++- > hw/virtio/vhost.c | 9 ++++-- > include/exec/memory.h | 21 ++++++++++---- > include/hw/vfio/vfio-common.h | 2 +- > memory.c | 31 +++++++++++++-------- > 11 files changed, 120 insertions(+), 60 deletions(-) >=20 --=20 David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson --jKBxcB1XkHIR0Eqt Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEdfRlhq5hpmzETofcbDjKyiDZs5IFAl2KGaIACgkQbDjKyiDZ s5IJsBAA4ByxzmapOytirWyvauRs/FjonxgHXmwuqJqsr/5MIaYmY0zJI1wU+zhb xnPgWFV82kFfb7MMkB6TDKGU86N9pGWhI/OfgF7nFru4Bpq14IoScIOiv7wNfURO i0PK94kGk8Xi6IgphlcN8SKnOBc5YhLsdqLrIdWOb6aLuaPm6OhWNcC6i8nB/c4W etIZQgO6Ynit3RN3u2C0f5pYRp/Un2frhjm8VDdzUzhcb57EJeH7Qmd7AsDl7Ch3 dc5Qjkkt/hDKBwg2W5VQBTe0qGDRFYoaE9HQ0XLLuA1zNP/tvQa+CSqwpMWyOxVR l9qXQINaiJ4qJXmcPMAOJDz+oWVk7y1MBavOaJKhJF3UoBamdNGExGrmfga8ZxQG t7F4Khwax9cyPnQ2tn3tNN8A1+HtA7LPAd21j380mkR9Kqw9+QEv+MDF6ClDJpH3 9ONN9dAzLjjciaqPAFd7ZFUHQ1fQcDBJ5Bncn7QIgCJq9igsDMup+pLSjQa9ePvC p2Mat9LxSzIwFjYy8ZPRDrRfqtVzKXwsvzcQrA22m1BAvSQVE2sCg+tcbobEsCHR D5C0gHQdX3m16UR261wHuGoOVMW3iCGXP4xLJhdMyks3KaiQVpYZVUASitv41dUO WC2DdELF/B+KQzwberkA4hvcJyghOckORmm60nQnNRrdpFmblUs= =wquf -----END PGP SIGNATURE----- --jKBxcB1XkHIR0Eqt--