From patchwork Thu May 12 17:06:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pankaj Gupta X-Patchwork-Id: 111075 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru 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 4CD0AA00C3; Thu, 12 May 2022 19:07:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0417D42838; Thu, 12 May 2022 19:07:10 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2068.outbound.protection.outlook.com [40.107.220.68]) by mails.dpdk.org (Postfix) with ESMTP id 92692410EF for ; Thu, 12 May 2022 19:07:07 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Spr27XsLmO2pYKmJovZXqi93ltlvaCU+MpICMYOiyroLl0MET6GRSdLu6kVvj6TDT5fKZXB5Is9SmQaLf/q/pEHYroECODHxmMkEfiypDkiIc2y8sGlpuReDGg4lk7d2hC4hbBvfnOzV2MNAEdXYySm/LVeeNOV5t43TtvUio/FTT16eh7QZKvxR7szdOCaa8T6XMRfWthma3gh2ZvoVxuS3tFU6gmtx2hefc0eg5AB1VL3H3B/ANVfBciZ84oamxbX+owDcxxQoWVh204d+r/9o10ulpYsY0/tmtbpZ5PL+EGNBoLkbzlfr9x9vOc1t/1LNyJcKmwE9RUBbExH5MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OFo7RvKtzMSOcTBxiISBJdTJLOGit9IHqwL0q73F69c=; b=I0xcTG+2u8ZOWPzZhCOXr6MUGIwhSrZc3Js452ucFfMbzD7R9oCYUQAxyiY7Yg69qtdvXYA19sQTNkfQj4B2BN7dZF1/iBEt1LDsi64gCUqxThIBmbfrCzAi6h8A/XT2JItewPSef77Xbc9xxBRQfgRUgqa8/OHXIKcGC02odhAgTl3NGzQJmTDQo3KhBDdSkTlsvkocFVYAfzg0euUIhFSbY5wPXQ8OYk6aYDxoT6HxG07DR111kfTHTYiRW5A6dqg/7WrJ+Mn7NUUMimbpEjaUL122tYJAjybZYSwWSB+ZKyMv9rlgroWd1JQVCovtOUGLXembfBeMNavhrTgmxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OFo7RvKtzMSOcTBxiISBJdTJLOGit9IHqwL0q73F69c=; b=HAI8w8+zNEEHTwSSY8w/zk+/iZGPbk4CQve5pvZo8HP3F8uZbFOmwX51GHwRa0V9P3tRjw8/lcOIeBDUYQbpk8lsOd3fbXPIX4IIca/Gvxwl+8ySbmjWYivh3WquUZUunoUjKxxtHN2LvuGE/XhawLC6T/kaPutB43HRF+TWOh4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vmware.com; Received: from BYAPR05MB5624.namprd05.prod.outlook.com (2603:10b6:a03:1d::13) by BL0PR05MB4721.namprd05.prod.outlook.com (2603:10b6:208:28::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.12; Thu, 12 May 2022 17:07:03 +0000 Received: from BYAPR05MB5624.namprd05.prod.outlook.com ([fe80::49ad:2ac7:16c0:51c8]) by BYAPR05MB5624.namprd05.prod.outlook.com ([fe80::49ad:2ac7:16c0:51c8%6]) with mapi id 15.20.5273.004; Thu, 12 May 2022 17:07:03 +0000 From: Pankaj Gupta To: jbehrens@vmware.com Cc: dev@dpdk.org, pagupta@vmware.com Subject: [PATCH v5 3/8] net/vmxnet3: add Rx queue usage count utility Date: Thu, 12 May 2022 13:06:37 -0400 Message-Id: <20220512170642.28930-4-pagupta@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220512170642.28930-1-pagupta@vmware.com> References: <20220512170642.28930-1-pagupta@vmware.com> X-ClientProxiedBy: BYAPR02CA0014.namprd02.prod.outlook.com (2603:10b6:a02:ee::27) To BYAPR05MB5624.namprd05.prod.outlook.com (2603:10b6:a03:1d::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: da151524-44f3-47e5-9099-08da3439d566 X-MS-TrafficTypeDiagnostic: BL0PR05MB4721:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qtJRrDHDC197unwM8kwuw8z+sns3pAoCjji85Uclpj4ytWFTUIz7mnDSNnq/FU6pb+WojjXXoRn3mV2p3cHF6KlNQwaeEzEYzYpuTcqdYEeKM4xqFClriPTMsAkEztzceEq3DmIrYje3bWmSeK69JlrKz9eRJt2U9/uOJ3dBxaPyqm9/SuTQdfeD4yZhmsok/vwMXclyXNooR7I3rgFJf4PeldgzFMzmBqRftDjn7XBdgw99znuYCRsZDs5S0GiKWOY6+Dr0LspwSceFruA9IJ9ys9Qt9cczDS93P7RF7yXP3Qk7vloaJ+WuWH2KGLzryiPh+B8uSKFkocno1ZOkRYhyMfAKB/3LOyZXArVJuhXxqSjVUDRlovbxd46KFGh48WoL9cej23YvMCt98J5z3haSVa46TgKblssJnb101H6BmYT3bZVL3DuvT9EeHfrgCGbUo4/uyaiMLsZIRW1So4fyy7S7pEZRkbp+56WyJ9T2W/wHmVQ70cxZhEAJaEbU3cDY7ZJjSDJNfxMQDEK7SohZfnCKq1hP7ajmmhYo4DAnla3iNHR4aEOZ3i4NEiPzDuvv5VaZD+BVTmKknBCp+o/+TPacmnAhFj24six0LtRX5F7PX1cD5lQqei8WEjRQvN8CzlPas2NNVlAlnX8AuQCb/O2UkfaCwsIUwYV91QVTkqrcZPIyZFO5RUl4kk2kJuVwt+CoGzEnrbmjuUp0hg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR05MB5624.namprd05.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(38350700002)(66476007)(66556008)(86362001)(6666004)(66946007)(8676002)(34206002)(4326008)(38100700002)(6486002)(508600001)(6636002)(37006003)(316002)(1076003)(186003)(107886003)(19627235002)(6506007)(52116002)(2616005)(5660300002)(26005)(6512007)(8936002)(2906002)(36756003)(83380400001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tYXGOPJ6er7QU61E/b3/QaR1cz5mDFSd17xAld/Qpqm4S1WWQMexR295rJtHxBGChoKR2duJ5SnCzCB10S2fuljPtvHJXSzeICPvW2lou9BL0DsFFbdESXBei93BzA1JhKNjr+mEs0fJmUqMeGn71Bt9A/HxAR03xiboK8r6yza9wIn7yXGwVTgpv2sEzYXFjkS2Ocnmy4ecWVdoHw7IEL6Pm1zSVyhggoaG6wDM7aTTVNQZ/D+3P4TKB6ApEZW3ilw4qccYz3yIRflAQXblRCGOD5xHgcu2wPKNkj6U6pC6P91+A3N/53lh1sRBUDKzuXPSO9f8ogVbzAvmTjECgVwih/kOM4OAFUTQJOVbNNuv+BP+Rjl4p1RIuBCV8VsKQQk1BD98fUocrVAnqGWgweDLzTgkNHNxPfmXnVSzQF0bEO1QgBl0/lobGjNPCAnMwyGiLJ/kPz6zKnKg0ZLJdqr6vRBDCHKmvMAdi4qA5Ax87Z2eLDNxHlZgbRjruUVcZOQQOjN8uAmDrgDk4jioa3OcGOXt826s1vFPLxM5i9ZPzdxtPfqxdUKF6l4V3Uixj8tckoLLDGgaoaQOtBSgBWCZakLPmccBdAEgvQJnb3ZLoY6UkeCabd4rnd360yV+M1yB468p11zkMq7RUT39TmWl9ds2h4o68x5+4mvan3MNJbDO0onEYODMD4C0VPGHfVgnuDPwvZI+U9spyK1/bC1ijig5oEip7qrYfjFM7fPyOWhhVC8vrEkPPHKTixKGrMJLCVSnu0wk8UVGZA62RWYu83snGUS5+7sVnwPaePUNVXSR8xjSwq8L1GD1vP3dnYzNfySqE84rT4UGUCI4tIgFp6erHgLvf/UcPmv6A83E7QVm6aa/M4ydTrPlXbBB9uAwA+6s9kgb77P6SixOPDO6drAdK1lRoSII/QKtoaUzE/bHWttKdSWjQE5mVpC2zO2W26T5bTNTObhism2IUdx9U1K4oBAwAJ+bJXtlu4Eimf+w5aS2Swvmb9F+HVMUYlEc6WsSYMhI5aLi/uQo8VxabJpTZshFrsR8WkyQzUbWG/1ZsLwWUl4HeczF7E4VfSUxT3XjWsdVrGw288YhURB8mKz0T9V/uOUiIKp4czTleUfXCQxdHTqGYPEC23zpwDADz/iraPgl+aJ11+0vMgfCds7hksNLoXZlAkjP79f0WkRMB1r9EGtwSdGFYwF6MBZluPPVbpVoEFtkUqF1CZ0/Dmt24xaqIrgdtRbsrS8YoJyOW5/yuYnDdv1+eyHzVwhJfLES4KmzPiG+8IF3hYNCFo9IShwdhZ8k0CL91ybC70TwgPe9+oGLg/44JVK90XkMSCOL5mAmhCLP9gNPbt6VQ0yqXKE42ocOHz1p9Abgy3z+0XETnXEUoPW9n0EUnfUwEySpBAQqtLJjByM+41Pt778iR077EGR8zHphHj2zvH0Reg4gOflsU4ujAh5mp5eNtxfaP0HfVsJ0HgRP9XrXTKNbueA6vxyzv/e61xkRlHLGN1WQ0494zEGR7vE+5xdzYnLJ4xd3E57dM+s/FDFmTEZf7tzA1ZJusf95L/6TXuD4Waq/jZysDohugTPmnCDhE0+UTXrCzyb+S0kYY5s2JIvwDO66yFzqQlf4F9sQlFbeaOoJuRmkdaHL1gBRgXJsMES/pGi24B8X++w//2Kd+Wosb8IlKd42f4F2Fw4Txq5BtFDKJOs+/HuHcP8XZEp4+QcjJtJRnlEO4NAsnQ== X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: da151524-44f3-47e5-9099-08da3439d566 X-MS-Exchange-CrossTenant-AuthSource: BYAPR05MB5624.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2022 17:07:02.7207 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QMHP5LfCHhoRrNw3ifts6o1ApFrAqAtcrNu6zZMpi1INesuYafCxDmMqj0bauPvoGGYbDF+YI+ONQVDDD0TSFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR05MB4721 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 Count the number of entries in the Rx queue for debugging. Tested, using testpmd, for different hardware version on ESXi 7.0 Update 2 Signed-off-by: Pankaj Gupta Reviewed-by: Jochen Behrens --- drivers/net/vmxnet3/vmxnet3_ethdev.c | 1 + drivers/net/vmxnet3/vmxnet3_ethdev.h | 3 +++ drivers/net/vmxnet3/vmxnet3_rxtx.c | 30 ++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index d5f9903946..cd32c1b4ee 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -294,6 +294,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev) eth_dev->rx_pkt_burst = &vmxnet3_recv_pkts; eth_dev->tx_pkt_burst = &vmxnet3_xmit_pkts; eth_dev->tx_pkt_prepare = vmxnet3_prep_pkts; + eth_dev->rx_queue_count = vmxnet3_dev_rx_queue_count; pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev); /* extra mbuf field is required to guess MSS */ diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.h b/drivers/net/vmxnet3/vmxnet3_ethdev.h index 7ec3b2e1f0..ceaeb66392 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.h +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.h @@ -193,6 +193,9 @@ int vmxnet3_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id, uint16_t nb_rx_desc, unsigned int socket_id, const struct rte_eth_rxconf *rx_conf, struct rte_mempool *mb_pool); + +uint32_t vmxnet3_dev_rx_queue_count(void *rx_queue); + int vmxnet3_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id, uint16_t nb_tx_desc, unsigned int socket_id, const struct rte_eth_txconf *tx_conf); diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c index d745064bc4..e15b377d8c 100644 --- a/drivers/net/vmxnet3/vmxnet3_rxtx.c +++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c @@ -1019,6 +1019,36 @@ vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) return nb_rx; } +uint32_t +vmxnet3_dev_rx_queue_count(void *rx_queue) +{ + const vmxnet3_rx_queue_t *rxq; + const Vmxnet3_RxCompDesc *rcd; + uint32_t idx, nb_rxd = 0; + uint8_t gen; + + rxq = rx_queue; + if (unlikely(rxq->stopped)) { + PMD_RX_LOG(DEBUG, "Rx queue is stopped."); + return 0; + } + + gen = rxq->comp_ring.gen; + idx = rxq->comp_ring.next2proc; + rcd = &rxq->comp_ring.base[idx].rcd; + while (rcd->gen == gen) { + if (rcd->eop) + ++nb_rxd; + if (++idx == rxq->comp_ring.size) { + idx = 0; + gen ^= 1; + } + rcd = &rxq->comp_ring.base[idx].rcd; + } + + return nb_rxd; +} + int vmxnet3_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,