From patchwork Fri Apr 28 07:10:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ronak Doshi X-Patchwork-Id: 126608 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7DEEA42A12; Fri, 28 Apr 2023 09:27:10 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9370742DB5; Fri, 28 Apr 2023 09:26:55 +0200 (CEST) Received: from EX-PRD-EDGE01.vmware.com (EX-PRD-EDGE01.vmware.com [208.91.3.33]) by mails.dpdk.org (Postfix) with ESMTP id 6BBBD42D9E for ; Fri, 28 Apr 2023 09:11:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=s1024; d=vmware.com; h=from:to:cc:subject:date:message-id:mime-version:content-type; bh=d+fjM/iMERhnlu+HqDNqQO9J2UdBdZFVEP5v9UdJtxI=; b=IHVR7Hoeae6/Ou7TaiV4tYF8b/ii2PY452bBF5kOKHlQ9vyqKJdFdf5HBEzLnw F+SBVBGi7+LqPl03uduTeO9qigduZcCc+Nb/ima4kR8excw3+xbxF3/XG2Dgzf TUpZfwDyHWz8np7xRNfjhNyBDTym9xGYkOWuWbO8x58UHe8= Received: from sc9-mailhost1.vmware.com (10.113.161.71) by EX-PRD-EDGE01.vmware.com (10.188.245.6) with Microsoft SMTP Server id 15.1.2375.34; Fri, 28 Apr 2023 00:10:55 -0700 Received: from htb-1n-eng-dhcp122.eng.vmware.com (unknown [10.20.114.216]) by sc9-mailhost1.vmware.com (Postfix) with ESMTP id 32F5420384; Fri, 28 Apr 2023 00:10:58 -0700 (PDT) Received: by htb-1n-eng-dhcp122.eng.vmware.com (Postfix, from userid 0) id 276F9A83B6; Fri, 28 Apr 2023 00:10:58 -0700 (PDT) From: Ronak Doshi To: CC: , Ronak Doshi Subject: [PATCH v3 next 0/7] net/vmxnet3: upgrade to version 7 Date: Fri, 28 Apr 2023 00:10:47 -0700 Message-ID: <20230428071055.362-1-doshir@vmware.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Received-SPF: None (EX-PRD-EDGE01.vmware.com: doshir@vmware.com does not designate permitted sender hosts) X-Mailman-Approved-At: Fri, 28 Apr 2023 09:26:51 +0200 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 vmxnet3 emulation has recently added several new features including support for uniform passthrough(UPT). To make UPT work vmxnet3 has to be enhanced as per the new specification. This patch series extends the vmxnet3 driver to leverage these new features. Compatibility is maintained using existing vmxnet3 versioning mechanism as follows: - new features added to vmxnet3 emulation are associated with new vmxnet3 version viz. vmxnet3 version 7. - emulation advertises all the versions it supports to the driver. - during initialization, vmxnet3 driver picks the highest version number supported by both the emulation and the driver and configures emulation to run at that version. In particular, following changes are introduced: Patch 1: This patch introduces utility macros for vmxnet3 version 7 comparison and updates Copyright information. Patch 2: This patch adds new capability registers to fine control enablement of individual features based on emulation and passthrough. Patch 3: This patch adds support for large passthrough BAR register. Patch 4: This patch introduces new command to set ring buffer sizes to pass this information to the hardware. Patch 5: For better performance, hardware has a requirement to limit number of TSO descriptors. This patch adds that support. Patch 6: Avoid updating rxprod register when in UPT for performance reasons. Patch 7: With all vmxnet3 version 7 changes incorporated in the vmxnet3 driver, with this patch, the driver can configure emulation to run at vmxnet3 version 7. Changes v2->v3: - removed reference to old performance document Changes in v2: - modified the title to include "net/" - addressed checkpatch complaints and some typo in patch commits - removed RTE_ETH_DEV_CAPA_PASS_THRU as it was specific to vmxnet3 - added new features information in release notes - updated feature related information in vmxnet3 driver documentation Ronak Doshi (7): net/vmxnet3: prepare for version 7 changes net/vmxnet3: add support for capability registers net/vmxnet3: add support for large passthrough BAR register net/vmxnet3: add command to set ring buffer sizes net/vmxnet3: limit number of TXDs used for TSO packet net/vmxnet3: avoid updating rxprod register frequently net/vmxnet3: update to version 7 doc/guides/nics/vmxnet3.rst | 30 +++++++++-- doc/guides/rel_notes/release_23_07.rst | 6 +++ drivers/net/vmxnet3/base/vmxnet3_defs.h | 74 ++++++++++++++++++++++--- drivers/net/vmxnet3/vmxnet3_ethdev.c | 95 ++++++++++++++++++++++++++++++++- drivers/net/vmxnet3/vmxnet3_ethdev.h | 16 ++++++ drivers/net/vmxnet3/vmxnet3_ring.h | 2 +- drivers/net/vmxnet3/vmxnet3_rxtx.c | 48 ++++++++++++----- 7 files changed, 245 insertions(+), 26 deletions(-)