Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp4806807ybi; Mon, 15 Jul 2019 15:17:47 -0700 (PDT) X-Google-Smtp-Source: APXvYqxLpefJ0CT5RE9+gAXUf169Fapt22VYGuu/ukU9Mzr0kHem3YmOHZJzdKmVb/CFnFSvJaJV X-Received: by 2002:a65:4cc4:: with SMTP id n4mr30368203pgt.307.1563229067777; Mon, 15 Jul 2019 15:17:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563229067; cv=none; d=google.com; s=arc-20160816; b=eZXPtf6kr9eNj31vLlsew7Zd2ofvPudA7leV6dVSg+r8qOOWewBpx4encw04HzZ8uP 4f6OPwrgl1Ohq3Bun9ewuXkehAhptYxN4uDwnj4dDmGMz6WfhjZSO79/kVjcFeN0UxYK oocTND3kGykpfYTFKmDxyIu1hirAyPiF1wm9pR1cVGfI+W9QqTJpAgJn4hJ8c4ojz6xp pHVXJBR4Xdi4Z+Lp+vxXyELA8kRCTcOlM58qzcWGihtcYmGbsrIN40Tdzmb1sYoOEaAY 8uP4Ya9B7Vm0J/5fdvF7pJmohhuyfIraS5Ppw14o7+iQkrECIpRCxwDWuX7Ho0OU3GpJ aoUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=BEC7BQ1d3/5h1R6NzzHIQevsZvuXz/ra6qIIs7EmaMo=; b=MIUOKKsmISKcWoyCtTMkWhi6PhlMyFMLkoTuFjsNH/WpXkOvr77xzJhpIQ/fg4AaZ4 AJ7lml46Hxcw6B4seOLAC+5vGhlkAwjEhVP8O9RbkO1dSGrjNBuNKP6zV5YA7DyV4xax tp968RTvLlFMbr0x/qsBj4WIFH7K4ibebQnug1vQsB36DVkhNMH4JBLaeqQ8+Qe33W6t I/EQBRXtMAvV4lpaGh7ZplyRyEktTZRxI4Fq0BuUCmcfDieMM/LGirgN+M6agK11iy0X nI9v5I7Kv42wBq8XKHQoaPSuJa/QGCGmudzltEEnxIi1ukOY1ALDjyd/e96PlnAzZ2wH 7NUQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f2si16676956plt.386.2019.07.15.15.17.30; Mon, 15 Jul 2019 15:17:47 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732868AbfGOWQV (ORCPT + 99 others); Mon, 15 Jul 2019 18:16:21 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57850 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727862AbfGOWQV (ORCPT ); Mon, 15 Jul 2019 18:16:21 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B9D85C0495A6; Mon, 15 Jul 2019 22:16:20 +0000 (UTC) Received: from redhat.com (ovpn-125-108.rdu2.redhat.com [10.10.125.108]) by smtp.corp.redhat.com (Postfix) with SMTP id AB0995D71B; Mon, 15 Jul 2019 22:16:15 +0000 (UTC) Date: Mon, 15 Jul 2019 18:16:14 -0400 From: "Michael S. Tsirkin" To: Thiago Jung Bauermann Cc: virtualization@lists.linux-foundation.org, linuxppc-dev@lists.ozlabs.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Jason Wang , Christoph Hellwig , David Gibson , Alexey Kardashevskiy , Paul Mackerras , Benjamin Herrenschmidt , Ram Pai , Jean-Philippe Brucker , Michael Roth , Mike Anderson Subject: Re: [RFC PATCH] virtio_ring: Use DMA API if guest memory is encrypted Message-ID: <20190715181449-mutt-send-email-mst@kernel.org> References: <20190520090939-mutt-send-email-mst@kernel.org> <877ea26tk8.fsf@morokweng.localdomain> <20190603211528-mutt-send-email-mst@kernel.org> <877e96qxm7.fsf@morokweng.localdomain> <20190701092212-mutt-send-email-mst@kernel.org> <87d0id9nah.fsf@morokweng.localdomain> <20190715103411-mutt-send-email-mst@kernel.org> <874l3nnist.fsf@morokweng.localdomain> <20190715163453-mutt-send-email-mst@kernel.org> <8736j7neg8.fsf@morokweng.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8736j7neg8.fsf@morokweng.localdomain> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Mon, 15 Jul 2019 22:16:20 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 15, 2019 at 07:03:03PM -0300, Thiago Jung Bauermann wrote: > > Michael S. Tsirkin writes: > > > On Mon, Jul 15, 2019 at 05:29:06PM -0300, Thiago Jung Bauermann wrote: > >> > >> Michael S. Tsirkin writes: > >> > >> > On Sun, Jul 14, 2019 at 02:51:18AM -0300, Thiago Jung Bauermann wrote: > >> >> > >> >> > >> >> Michael S. Tsirkin writes: > >> >> > >> >> > So this is what I would call this option: > >> >> > > >> >> > VIRTIO_F_ACCESS_PLATFORM_IDENTITY_ADDRESS > >> >> > > >> >> > and the explanation should state that all device > >> >> > addresses are translated by the platform to identical > >> >> > addresses. > >> >> > > >> >> > In fact this option then becomes more, not less restrictive > >> >> > than VIRTIO_F_ACCESS_PLATFORM - it's a promise > >> >> > by guest to only create identity mappings, > >> >> > and only before driver_ok is set. > >> >> > This option then would always be negotiated together with > >> >> > VIRTIO_F_ACCESS_PLATFORM. > >> >> > > >> >> > Host then must verify that > >> >> > 1. full 1:1 mappings are created before driver_ok > >> >> > or can we make sure this happens before features_ok? > >> >> > that would be ideal as we could require that features_ok fails > >> >> > 2. mappings are not modified between driver_ok and reset > >> >> > i guess attempts to change them will fail - > >> >> > possibly by causing a guest crash > >> >> > or some other kind of platform-specific error > >> >> > >> >> I think VIRTIO_F_ACCESS_PLATFORM_IDENTITY_ADDRESS is good, but requiring > >> >> it to be accompanied by ACCESS_PLATFORM can be a problem. One reason is > >> >> SLOF as I mentioned above, another is that we would be requiring all > >> >> guests running on the machine (secure guests or not, since we would use > >> >> the same configuration for all guests) to support it. But > >> >> ACCESS_PLATFORM is relatively recent so it's a bit early for that. For > >> >> instance, Ubuntu 16.04 LTS (which is still supported) doesn't know about > >> >> it and wouldn't be able to use the device. > >> > > >> > OK and your target is to enable use with kernel drivers within > >> > guests, right? > >> > >> Right. > >> > >> > My question is, we are defining a new flag here, I guess old guests > >> > then do not set it. How does it help old guests? Or maybe it's > >> > not designed to ... > >> > >> Indeed. The idea is that QEMU can offer the flag, old guests can reject > >> it (or even new guests can reject it, if they decide not to convert into > >> secure VMs) and the feature negotiation will succeed with the flag > >> unset. > > > > OK. And then what does QEMU do? Assume guest is not encrypted I guess? > > There's nothing different that QEMU needs to do, with or without the > flag. the perspective of the host, a secure guest and a regular guest > work the same way with respect to virtio. OK. So now let's get back to implementation. What will Linux guest driver do? It can't activate DMA API blindly since that will assume translation also works, right? Or do we somehow limit it to just a specific platform? > -- > Thiago Jung Bauermann > IBM Linux Technology Center