From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3F5A5A09E4; Fri, 29 Jan 2021 18:01:13 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BA17B40696; Fri, 29 Jan 2021 18:01:12 +0100 (CET) Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) by mails.dpdk.org (Postfix) with ESMTP id 499E440395 for ; Fri, 29 Jan 2021 17:39:27 +0100 (CET) Received: by mail-pg1-f171.google.com with SMTP id s23so5779859pgh.11 for ; Fri, 29 Jan 2021 08:39:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=lxrOnotwLj3Dc8d/K1KBATZ8KrSdid9NBw6A4KTg5KU=; b=oWFtE7WdIjGDahLg9ZoCxDOoRlr9Dz9yyQufH+FcL4FzQFOWVRJWiHk2S41WUDynMu FPd/tanPO/j4IN2+pvF55f9RUG3tDp7w/YKN1n+xeZUdWdyWVhlAlko/DXVePMc2F6tH 4KZd6Pjy+6xlyDlNf+htfHqvVMS5RDUe4fSKivYzm+lPaylseyqxuSbindhObjYsYz9q x++q/eirSh4ebCdslqdzeLm40ub41gyuxGTIPrVQ2LQFdB4htUOWeTUXNZKbn42DkyC8 58zTmv92hl0LN0QGGgxpuT1t+C2rG0+oK+JlRXYLHEbipO4le02z5phr9UFbGZ2DL7Om TQxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=lxrOnotwLj3Dc8d/K1KBATZ8KrSdid9NBw6A4KTg5KU=; b=VIiz+zfQpGaiDzj1h+pvd2PK1uXqX8XlegA5l/bbhPtS5PJcLP6bMi5X2CIroYmyJV D4ZIkuqpBag8m6hkltkPIIfslwos6n2iWGsxG9NQr1jtF5nKkqRY0wNHQLSGumUH5eAb bPbol+V5iQBHVXcVZShC3bVD36AjdFyvOqEExWL/Br9Y5Tn3x+bNwxiNgXI2QT5pxLz8 4BHo366VLWHiPqbBSEfOywRa3hnSyy2BEIDqjlVRNu99Y89ic8HSnRr4Ee1B/etD4BAe zsinE4sk3N+T8RS92k3P9Y9qOYImtaKA9QiuvWsLL2Lzk3gXgT/Y8RaQC6yoRRagQKCi Rflg== X-Gm-Message-State: AOAM532/522JDGP5CZrhVOPJMSRnAOwVK1gv2KnzNH9nqYGX/RO5BlNa nSdkHVUXt4b+2spwnSzH6AmqoA== X-Google-Smtp-Source: ABdhPJxb9xAX79fYk5/4odbsSpz2Jr5RfCXLj8rdyHJ7qNWV7BjD6FFwUbyj2lqDRmnt4lXYiO+C0Q== X-Received: by 2002:a62:8c0e:0:b029:1b6:a234:3ef2 with SMTP id m14-20020a628c0e0000b02901b6a2343ef2mr5107539pfd.37.1611938367052; Fri, 29 Jan 2021 08:39:27 -0800 (PST) Received: from C02Z10J4LVCK.lan ([139.177.225.245]) by smtp.gmail.com with ESMTPSA id l1sm2946049pgt.26.2021.01.29.08.39.24 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Jan 2021 08:39:26 -0800 (PST) From: Wan Junjie To: maxime.coquelin@redhat.com, chenbo.xia@intel.com Cc: dev@dpdk.org, Wan Junjie , Peng He , Zhihong Wang Date: Sat, 30 Jan 2021 00:39:09 +0800 Message-Id: <20210129163909.35970-1-wanjunjie@bytedance.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Fri, 29 Jan 2021 18:01:11 +0100 Subject: [dpdk-dev] [PATCH] vhost: avoid iotlb mempool allocation while IOMMU disabled X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" If vhost device's IOMMU feature is disabled, iotlb mempool allocation is unnecessary. Reported-by: Peng He Signed-off-by: Wan Junjie Reviewed-by: Zhihong Wang --- lib/librte_vhost/vhost.c | 6 ++++-- lib/librte_vhost/vhost_user.c | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c index efb136edd..00c5040e2 100644 --- a/lib/librte_vhost/vhost.c +++ b/lib/librte_vhost/vhost.c @@ -352,7 +352,8 @@ free_vq(struct virtio_net *dev, struct vhost_virtqueue *vq) vhost_free_async_mem(vq); } rte_free(vq->batch_copy_elems); - rte_mempool_free(vq->iotlb_pool); + if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM)) + rte_mempool_free(vq->iotlb_pool); rte_free(vq); } @@ -556,7 +557,8 @@ init_vring_queue(struct virtio_net *dev, uint32_t vring_idx) vq->callfd = VIRTIO_UNINITIALIZED_EVENTFD; vq->notif_enable = VIRTIO_UNINITIALIZED_NOTIF; - vhost_user_iotlb_init(dev, vring_idx); + if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM)) + vhost_user_iotlb_init(dev, vring_idx); /* Backends are set to -1 indicating an inactive device. */ vq->backend = -1; } diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c index a60bb945a..d415607d7 100644 --- a/lib/librte_vhost/vhost_user.c +++ b/lib/librte_vhost/vhost_user.c @@ -575,7 +575,7 @@ numa_realloc(struct virtio_net *dev, int index) dev->virtqueue[index] = vq; vhost_devices[dev->vid] = dev; - if (old_vq != vq) + if (old_vq != vq && (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))) vhost_user_iotlb_init(dev, index); return dev; -- 2.29.2