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 A44AEA052A; Tue, 2 Feb 2021 09:24:53 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BA7F42402BD; Tue, 2 Feb 2021 09:24:52 +0100 (CET) Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by mails.dpdk.org (Postfix) with ESMTP id EDDF52402AA for ; Tue, 2 Feb 2021 09:15:31 +0100 (CET) Received: by mail-pf1-f170.google.com with SMTP id j12so13808580pfj.12 for ; Tue, 02 Feb 2021 00:15:31 -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=EcO/JaA6Fwm9Qk6Ym2QdRzX6PMKGI2NBmXyYusRXQIg=; b=beaP/+7aPKSnFhyecEU9nBgvw7HyvelmOTVV0B1btdEa1w+R+KaIvXbCi5Ks+3yGkC ohFzGAq5yIGigCdpz4sfiX6jpF0/T7WvTGtjEqicJ+xbWAc+HrNr8U6m3szAT5mV+78e QngNaN+QdnoRRP3nK/dT4QoXwZplrjsS9Qg2567eUZHY+M5c1+v/nlf4/Qm5dpvv8bjC zp2dqK6nWq5KI2mKTm40JT8l23PuyEGbsjYvdbG6TIe1N0h/8WgtJV1UlAUjNRjJ0csZ qy9biEU2NGZbRm7Sy380yA2CeHNj/D1Sg56YxQUFjF59y2Unp8JyKHRbssrJIx+Vzcml Nh5Q== 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=EcO/JaA6Fwm9Qk6Ym2QdRzX6PMKGI2NBmXyYusRXQIg=; b=UqlhMjmj/cKZMKe5T6PpnoDcmlrz7G1NSZqtVSgY97Ocaya0fKq5sxT74RZKhwSFem BMjLHNxeqE6COldPJKtOU2xYQa9kg5K6k+rEsusvl4IX2MwjgjaFepFIeLVK38yl1ELb PLnX71ZqsFGTt69h0IZnVgQqiak3p1NJtTgfnOukqttHa3gu18gaJC8zcF7aiuZhyWmt lyiNCDG+zRMJLV39H51FwUHJKuzxlwuGJzoc6WMTHpnu/VlYUAFNd9XCAsEa60tQ8Q4f Hdd60LmrhmTtluYmWIEeLaGPJot0hwmMu8eaExbfVvRY0PiB5Ipy7RK+Q26lTq0TR2qW krnA== X-Gm-Message-State: AOAM533AA5+rHrQ9P3ZmRyBuVcDL0+2IhyMprLsSSErzplXhtnKlM1w7 t4u0wsvEJL3ISZbbdA157IBweQ== X-Google-Smtp-Source: ABdhPJzk38kKP5l6XrnFtLrynMn0kpeRBGc4TZ1ndFWXMMSjWehX01/h85wA6w+U+m5BGTVmmI/G2w== X-Received: by 2002:a05:6a00:238b:b029:1b4:af1d:d3ff with SMTP id f11-20020a056a00238bb02901b4af1dd3ffmr19807212pfc.66.1612253731085; Tue, 02 Feb 2021 00:15:31 -0800 (PST) Received: from C02Z10J4LVCK.bytedance.net ([139.177.225.233]) by smtp.gmail.com with ESMTPSA id e3sm20287157pgs.60.2021.02.02.00.15.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Feb 2021 00:15:30 -0800 (PST) From: Wan Junjie To: Chenbo Xia , Maxime Coquelin Cc: dev@dpdk.org, Wan Junjie , Peng He , Zhihong Wang Date: Tue, 2 Feb 2021 16:14:46 +0800 Message-Id: <20210202081446.79331-1-wanjunjie@bytedance.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Tue, 02 Feb 2021 09:24:51 +0100 Subject: [dpdk-dev] [PATCH v2] 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 | 4 ++-- lib/librte_vhost/vhost_user.c | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c index b83cf639e..e5341ab98 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 (vq->iotlb_pool) + rte_mempool_free(vq->iotlb_pool); rte_free(vq); } @@ -556,7 +557,6 @@ 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); /* 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 45c8ac09d..81cbb9797 100644 --- a/lib/librte_vhost/vhost_user.c +++ b/lib/librte_vhost/vhost_user.c @@ -470,6 +470,10 @@ vhost_user_set_vring_num(struct virtio_net **pdev, return RTE_VHOST_MSG_RESULT_ERR; } + if (dev->features & (1ULL << VIRTIO_F_IOMMU_PLATFORM)) { + if (vhost_user_iotlb_init(dev, msg->payload.state.index)) + return RTE_VHOST_MSG_RESULT_ERR; + } return RTE_VHOST_MSG_RESULT_OK; } @@ -575,7 +579,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.11.0