From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from proxy.6wind.com (host.76.145.23.62.rev.coltfrance.com [62.23.145.76]) by dpdk.org (Postfix) with ESMTP id 00A052BDF for ; Wed, 1 Mar 2017 18:20:02 +0100 (CET) Received: from glumotte.dev.6wind.com (unknown [10.16.0.195]) by proxy.6wind.com (Postfix) with ESMTP id F20C224F93; Wed, 1 Mar 2017 18:19:57 +0100 (CET) From: Olivier Matz To: dev@dpdk.org, thomas.monjalon@6wind.com, konstantin.ananyev@intel.com, wenzhuo.lu@intel.com, helin.zhang@intel.com, jingjing.wu@intel.com, adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com Cc: ferruh.yigit@intel.com, bruce.richardson@intel.com Date: Wed, 1 Mar 2017 18:19:06 +0100 Message-Id: <1488388752-1819-1-git-send-email-olivier.matz@6wind.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1479981261-19512-1-git-send-email-olivier.matz@6wind.com> References: <1479981261-19512-1-git-send-email-olivier.matz@6wind.com> Subject: [dpdk-dev] [PATCH 0/6] get status of Rx and Tx descriptors 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: , X-List-Received-Date: Wed, 01 Mar 2017 17:20:03 -0000 This patchset introduces a new ethdev API: - rte_eth_rx_descriptor_status() - rte_eth_tx_descriptor_status() The Rx API is aims to replace rte_eth_rx_descriptor_done() which does almost the same, but does not differentiate the case of a descriptor used by the driver (not returned to the hw). The usage of these functions can be: - on Rx, anticipate that the cpu is not fast enough to process all incoming packets, and take dispositions to solve the problem (add more cpus, drop specific packets, ...) - on Tx, detect that the link is overloaded, and take dispositions to solve the problem (notify flow control, drop specific packets) The patchset updates ixgbe, i40e, e1000, mlx5. The other drivers that implement the descriptor_done() API are fm10k, sfc, virtio. They are not updated. If the new API is accepted, the descriptor_done() can be deprecated, and examples/l3fwd-power will be updated to. RFC->v1: - instead of optimizing an API that returns the number of used descriptors like rx_queue_count(), use a more simple API that returns the status of a descriptor, like rx_descriptor_done(). - remove ethdev api rework (first 2 patches), they have been sent separately Olivier Matz (6): ethdev: add descriptor status API net/ixgbe: implement descriptor status API net/e1000: implement descriptor status API (igb) net/e1000: implement descriptor status API (em) net/mlx5: implement descriptor status API net/i40e: implement descriptor status API drivers/net/e1000/e1000_ethdev.h | 10 +++++ drivers/net/e1000/em_ethdev.c | 2 + drivers/net/e1000/em_rxtx.c | 49 ++++++++++++++++++++++ drivers/net/e1000/igb_ethdev.c | 2 + drivers/net/e1000/igb_rxtx.c | 46 +++++++++++++++++++++ drivers/net/i40e/i40e_ethdev.c | 2 + drivers/net/i40e/i40e_ethdev_vf.c | 2 + drivers/net/i40e/i40e_rxtx.c | 56 +++++++++++++++++++++++++ drivers/net/i40e/i40e_rxtx.h | 4 ++ drivers/net/ixgbe/ixgbe_ethdev.c | 4 ++ drivers/net/ixgbe/ixgbe_ethdev.h | 5 +++ drivers/net/ixgbe/ixgbe_rxtx.c | 55 +++++++++++++++++++++++++ drivers/net/mlx5/mlx5.c | 2 + drivers/net/mlx5/mlx5_rxtx.c | 83 +++++++++++++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_rxtx.h | 2 + lib/librte_ether/rte_ethdev.h | 86 +++++++++++++++++++++++++++++++++++++++ 16 files changed, 410 insertions(+) -- 2.8.1