Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2246057imm; Thu, 2 Aug 2018 08:27:35 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfBGe6x06zWGlN+nrf7HU9g9+huU4d7tQx3wsVCAJLI396Ik3jWpZJu1IkC/Wxo2XwGpU5Z X-Received: by 2002:a62:a05:: with SMTP id s5-v6mr3482731pfi.147.1533223655189; Thu, 02 Aug 2018 08:27:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533223655; cv=none; d=google.com; s=arc-20160816; b=M10ANDHrW3s4eBvPr4kA9XN4eQ1C9ACeKmwOHppka6sNuLFqgTHsalBxGIQsR1y/SB y1DmEuej/EuShHMIjw8MaclDiOO+QTPsrBRXULCNcp1Wi8K+6cJTYQ04w1MY0tS+nnBU 3k6lcp1EQYI11S8kNTlxtPq4bYVS4Jb0OkyyFTsF3vgX00C6S5eTQqd39kVHFDucu9HT SQwJ1Ud55DBj64qTlRPTQ14JkXG7EWP2FgCnR/XtwEahqzsZCIeACUP4HgEmeh4lW9uz lMl7ifg3WgcUDqx+pIeLmp+k1r1rhLvi+K89LpicpnnKf2K+ECmDy1H1u/yHwoqcgNQ9 YMMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :arc-authentication-results; bh=SnOq5b7zIaTisuQVACn7D4u36V+ZA1jvUkLaVagv+Ao=; b=ZnFfCHlOGhZFmWxbCrbchA/DSI0sz38d4GAgukVNGva8+QavzaDgTz73ETMFvd9c7C 2L/Uo2BgYrYSBbOdF3wz7/mkGLOUpRozwApekj+cMkAVuHANbLOpmRbnCHS7RgyXt99b ya/ju7gC3OKBuZzuQFosu3nRgS1qFWSiSJZRReD75ZWgoq5eqCTgGzh1hbZOGlSwqVww r19bpHl3zsg62aYxhurx4tGSWT3SBYIpxkKblJn/cNM65lJujdlLJzj5Yped87dG/PyD Dqer66QXVWCGSPjvAWWvgM15pWxgGL0nKpimpk4/yyvJlq9ytfuzXOrSy+XaVr/F3F/K 86fw== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j62-v6si2483582pfb.348.2018.08.02.08.27.19; Thu, 02 Aug 2018 08:27:35 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732616AbeHBRSH (ORCPT + 99 others); Thu, 2 Aug 2018 13:18:07 -0400 Received: from gate.crashing.org ([63.228.1.57]:53437 "EHLO gate.crashing.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732559AbeHBRSG (ORCPT ); Thu, 2 Aug 2018 13:18:06 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id w72FOw9j014511; Thu, 2 Aug 2018 10:24:58 -0500 Message-ID: <26c1d3d50d8e081eed44fe9940fbefed34598cbd.camel@kernel.crashing.org> Subject: Re: [RFC 0/4] Virtio uses DMA API for all devices From: Benjamin Herrenschmidt To: Christoph Hellwig , Will Deacon Cc: "Michael S. Tsirkin" , Anshuman Khandual , virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, aik@ozlabs.ru, robh@kernel.org, joe@perches.com, elfring@users.sourceforge.net, david@gibson.dropbear.id.au, jasowang@redhat.com, mpe@ellerman.id.au, linuxram@us.ibm.com, haren@linux.vnet.ibm.com, paulus@samba.org, srikar@linux.vnet.ibm.com, robin.murphy@arm.com, jean-philippe.brucker@arm.com, marc.zyngier@arm.com Date: Thu, 02 Aug 2018 10:24:57 -0500 In-Reply-To: <20180801083639.GF26378@infradead.org> References: <20180720035941.6844-1-khandual@linux.vnet.ibm.com> <20180727095804.GA25592@arm.com> <20180730093414.GD26245@infradead.org> <20180730125100-mutt-send-email-mst@kernel.org> <20180730111802.GA9830@infradead.org> <20180730155633-mutt-send-email-mst@kernel.org> <20180731173052.GA17153@infradead.org> <3d6e81511571260de1c8047aaffa8ac4df093d2e.camel@kernel.crashing.org> <20180801081637.GA14438@arm.com> <20180801083639.GF26378@infradead.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.4 (3.28.4-1.fc28) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2018-08-01 at 01:36 -0700, Christoph Hellwig wrote: > We just need to figure out how to deal with devices that deviate > from the default. One things is that VIRTIO_F_IOMMU_PLATFORM really > should become VIRTIO_F_PLATFORM_DMA to cover the cases of non-iommu > dma tweaks (offsets, cache flushing), which seems well in spirit of > the original design. I don't completely agree: 1 - VIRTIO_F_IOMMU_PLATFORM is a property of the "other side", ie qemu for example. It indicates that the peer bypasses the normal platform iommu. The platform code in the guest has no real way to know that this is the case, this is a specific "feature" of the qemu implementation. 2 - VIRTIO_F_PLATFORM_DMA (or whatever you want to call it), is a property of the guest platform itself (not qemu), there's no way the "peer" can advertize it via the virtio negociated flags. At least for us. I don't know for sure whether that would be workable for the ARM case. In our case, qemu has no idea at VM creation time that the VM will turn itself into a secure VM and thus will require bounce buffering for IOs (including virtio). So unless we have another hook for the arch code to set VIRTIO_F_PLATFORM_DMA on selected (or all) virtio devices from the guest itself, I don't see that as a way to deal with it. > The other issue is VIRTIO_F_IO_BARRIER > which is very vaguely defined, and which needs a better definition. > And last but not least we'll need some text explaining the challenges > of hardware devices - I think VIRTIO_F_PLATFORM_DMA + VIRTIO_F_IO_BARRIER > is what would basically cover them, but a good description including > an explanation of why these matter. Ben.