From patchwork Fri Aug 5 22:00:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cristian Dumitrescu X-Patchwork-Id: 114684 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 E7138A00C4; Sat, 6 Aug 2022 00:01:10 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C979242C59; Sat, 6 Aug 2022 00:00:42 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 3C58A42905 for ; Sat, 6 Aug 2022 00:00:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1659736837; x=1691272837; h=from:to:subject:date:message-id:mime-version: content-transfer-encoding; bh=zfGSWP6KEYZhOslgls/e2mG5hRXpmakDprtJl/ohw2Y=; b=S/Z1p3OYniA1vAfMfDok6ozT/MMjW1R7Qkz8KQoIj5QYiWg389gZa2Km ZsQZYqBbAc3GWHsfu5ATZ8W1+3MViQESItRq8/kYDVL+0YwTBmD59qI51 eGRVOdvi7qu7gnFC5ASadHY23rfivDXc97JB3co3TXAyOOLVb7DWRVFdM UGz6nCJxDA+maqDSdbhlZnIiBpXfIJGuLnuo2OyEWbTtboXLpv9y5zf9a dgNL2n5t4MpYwUIDvq22VEQJfcUiEo9bm99z/egR20wxL3ukhWHnN6GAx jqYxiX/WDW5iDP1oqk4aemnCL0KpqiL9K63bNyExtAfOP/diwOcuAEJ2v g==; X-IronPort-AV: E=McAfee;i="6400,9594,10430"; a="273348505" X-IronPort-AV: E=Sophos;i="5.93,217,1654585200"; d="scan'208";a="273348505" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Aug 2022 15:00:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,217,1654585200"; d="scan'208";a="693137531" Received: from silpixa00400573.ir.intel.com (HELO silpixa00400573.ger.corp.intel.com.) ([10.237.223.157]) by FMSMGA003.fm.intel.com with ESMTP; 05 Aug 2022 15:00:30 -0700 From: Cristian Dumitrescu To: dev@dpdk.org Subject: [PATCH 00/10] port: implement output port non-blocking behavior Date: Fri, 5 Aug 2022 22:00:19 +0000 Message-Id: <20220805220029.1096212-1-cristian.dumitrescu@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 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 In case of blocking behavior, the output port retries sending the packets that could not be sent successfully. The retry can take place potentially forever in case the Ethernet device or the ring consumer are down, which leads to deadlock. In case of the non-blocking behavior introduced by this series, the packets that could not be sent successfully are dropped and the associated drop statistics counters are incremented. Depends-on: series-24205 ("net/softnic: replace the legacy pipeline with SWX pipeline") Cristian Dumitrescu (10): port: add output port packet drop statistics couters port: adjust the sink port counters port: rework the Ethernet device output port behavior to non-blocking port: free buffered packets on Ethernet device output port free port: prevent unnecessary flush for the Ethernet device output port port: rework the ring output port behavior to non-blocking port: free buffered packets on ring output port free port: prevent unnecessary flush for the ring output port examples/pipeline: print the output port packet drop counters net/softnic: print the output port packet drop counters drivers/net/softnic/rte_eth_softnic_cli.c | 4 + examples/pipeline/cli.c | 4 + lib/port/rte_swx_port.h | 10 +- lib/port/rte_swx_port_ethdev.c | 117 +++++++++++++++------- lib/port/rte_swx_port_ring.c | 113 ++++++++++++++------- lib/port/rte_swx_port_source_sink.c | 8 +- 6 files changed, 177 insertions(+), 79 deletions(-)