From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-we0-f180.google.com (mail-we0-f180.google.com [74.125.82.180]) by dpdk.org (Postfix) with ESMTP id DB85D5A76 for ; Mon, 9 Mar 2015 20:07:21 +0100 (CET) Received: by wevl61 with SMTP id l61so12668530wev.6 for ; Mon, 09 Mar 2015 12:07:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=OScmUvvnIxIuCCQepoFfxFR4nR9Kr6/3yh3NfVVNDCc=; b=VvmMhMO2TKFjpUzgYV0cZ+sULF0mCAym+8LVFxJyJAeJQT6bmo1IzcoulGA9n49Hch CfEXW9KylJXta3P4DRbN752E/guMG+vM5K57zfOmART6JTA40m1nFVabB0pWA5mWTAzR Tq46Nlly3ixjnNQ/C0CUf/GLdIz9kT7GCQzOjG4J9ULbnIH4kFA+3eS7cKYSgNc1Prvl Un9lZpfjWUEkP2/CWDbdrZ0c0tSqGyvoZc4PPv5/uXwChQ6wqJGZDyqQSprkYS2Y1ynM QZEEaDsH+gAj+ee8vHdEk452eLBKPt35qe4t+YxUqwN7bQr6Y0wAUb8ZhVSDZJ30vCed JMWA== X-Gm-Message-State: ALoCoQkF7hns+Q0HKIKKUD3dj0OvYvru5Gj2rzZgu57OFHU0VvO7c6ZUEpQFOPufiPU1QSME0M3P X-Received: by 10.194.241.202 with SMTP id wk10mr35501496wjc.145.1425928041676; Mon, 09 Mar 2015 12:07:21 -0700 (PDT) Received: from vladz-laptop.localdomain (bzq-109-65-117-109.red.bezeqint.net. [109.65.117.109]) by mx.google.com with ESMTPSA id ha5sm16733330wib.1.2015.03.09.12.07.20 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Mar 2015 12:07:21 -0700 (PDT) From: Vlad Zolotarov To: dev@dpdk.org Date: Mon, 9 Mar 2015 21:07:14 +0200 Message-Id: <1425928037-28732-1-git-send-email-vladz@cloudius-systems.com> X-Mailer: git-send-email 2.1.0 Subject: [dpdk-dev] [PATCH v6 0/3]: Add LRO support to ixgbe PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Mar 2015 19:07:22 -0000 This series adds the missing flow for enabling the LRO in the ethdev and adds a support for this feature in the ixgbe PMD. There is a big hope that this initiative is going to be picked up by some Intel developer that would add the LRO support to other Intel PMDs. The series starts with some cleanup work in the code the final patch (the actual adding of the LRO support) is going to touch/use/change. There are still quite a few issues in the ixgbe PMD code left but they have to be a matter of a different series and I've left a few "TODO" remarks in the code. The LRO ("RSC" in Intel's context) PMD completion handling code follows the same design as the corresponding Linux and FreeBSD implementation: pass the aggregation's cluster HEAD buffer to the NEXTP entry of the software ring till EOP is met. HW configuration follows the corresponding specs: this feature is supported only by x540 and 82599 PF devices. The feature has been tested with seastar TCP stack with the following configuration on Tx side: - MTU: 400B - 100 concurrent TCP connections. The results were: - Without LRO: total throughput: 0.12Gbps, coefficient of variance: 1.41% - With LRO: total throughput: 8.21Gbps, coefficient of variance: 0.59% This is an almost factor 80 improvement. New in v6: - Fix of the typo in the "bug fixes" series that broke the compilation caused a minor change in this follow-up series. New in v5: - Split the series into "bug fixes" and "all the rest" so that the former could be integrated into a 2.0 release. - Put the RTE_ETHDEV_HAS_LRO_SUPPORT definition at the beginning of rte_ethdev.h. - Removed the "TODO: Remove me" comment near RTE_ETHDEV_HAS_LRO_SUPPORT. New in v4: - Remove CONFIG_RTE_ETHDEV_LRO_SUPPORT from config/common_linuxapp. - Define RTE_ETHDEV_HAS_LRO_SUPPORT in rte_ethdev.h. - As a result of "ixgbe: check rxd number to avoid mbuf leak" (352078e8e) Vector Rx had to get the same treatment as Rx Bulk Alloc (see PATCH4 for more details). New in v3: - ixgbe_rx_alloc_bufs(): Always reset refcnt of the buffers to 1. Otherwise rte_pktmbuf_free() won't free them. New in v2: - Removed rte_eth_dev_data.lro_bulk_alloc and added ixgbe_hw.rx_bulk_alloc_allowed instead. - Unified the rx_pkt_bulk callback setting (a separate new patch). - Fixed a few styling and spelling issues. Vlad Zolotarov (3): ixgbe: Cleanups ixgbe: Code refactoring ixgbe: Add LRO support lib/librte_ether/rte_ethdev.h | 9 +- lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 6 + lib/librte_pmd_ixgbe/ixgbe_ethdev.h | 5 + lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 705 ++++++++++++++++++++++++++++++++---- lib/librte_pmd_ixgbe/ixgbe_rxtx.h | 6 + 5 files changed, 663 insertions(+), 68 deletions(-) -- 2.1.0