From patchwork Fri Sep 27 18:14:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrian Moreno X-Patchwork-Id: 60052 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B134D1B94A; Fri, 27 Sep 2019 20:15:20 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id C5F152C39; Fri, 27 Sep 2019 20:15:18 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 13C7718CB8E9; Fri, 27 Sep 2019 18:15:18 +0000 (UTC) Received: from amorenoz.users.ipa.redhat.com (ovpn-116-96.ams2.redhat.com [10.36.116.96]) by smtp.corp.redhat.com (Postfix) with ESMTP id D28D05C21A; Fri, 27 Sep 2019 18:15:08 +0000 (UTC) From: Adrian Moreno To: dev@dpdk.org Cc: tiwei.bie@intel.com, zhihong.wang@intel.com, maxime.coquelin@redhat.com, Adrian Moreno , stable@dpdk.org Date: Fri, 27 Sep 2019 20:14:43 +0200 Message-Id: <20190927181446.14336-1-amorenoz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.6.2 (mx1.redhat.com [10.5.110.63]); Fri, 27 Sep 2019 18:15:18 +0000 (UTC) Subject: [dpdk-dev] [PATCH v2 0/3] vhost: add support for IOVA_VA mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Currently, IOVAs are assumed to be GPA when the dirty page logging is performed. Add support for guest IOVA_VA mode by translatingi adresses to GPA before doing the dirty page logging. Also, the page tables used for zero_copy mode also assume will not work either if IOVA VA is enabled. In fact, enabling dequeue_zero_copy and IOMMU is dangerous altogether because IOTLB invalidation of guest pages can happen while the buffers are being used. So, ensure this cannot happen by preventing both features to be activated simultaneously. Further information: https://bugs.dpdk.org/show_bug.cgi?id=337 Fixes: 69c90e98f483 ("vhost: enable IOMMU support") Cc: maxime.coquelin@redhat.com Cc: stable@dpdk.org ---- v2 changes: Also translate buffer addresses ---- Adrian Moreno (3): vhost: translate incoming log address to gpa vhost: convert buffer addresses to GPA for logging vhost: prevent zero copy mode if iommu is on lib/librte_vhost/rte_vhost.h | 2 +- lib/librte_vhost/socket.c | 8 +++++++ lib/librte_vhost/vdpa.c | 4 +++- lib/librte_vhost/vhost.c | 22 +++++++++++++++++ lib/librte_vhost/vhost.h | 36 ++++++++++++++++++++++++++++ lib/librte_vhost/vhost_user.c | 45 ++++++++++++++++++++++++++++++++++- lib/librte_vhost/virtio_net.c | 9 +++---- 7 files changed, 119 insertions(+), 7 deletions(-)