From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 54AA9A0545; Wed, 25 May 2022 02:40:58 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0F30D4113D; Wed, 25 May 2022 02:40:54 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2046.outbound.protection.outlook.com [40.107.93.46]) by mails.dpdk.org (Postfix) with ESMTP id 9BE10400EF for ; Wed, 25 May 2022 02:40:52 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GAiMTMxYLyNorwSgSuGeZ1Bu5mO2XorOZnvrImQ2uCJRNhUO4JoaJ0fJTMuHEp+WCJbondMTHc21fGSsYeJJL+2X8qrNmBzsJIehJU6kn4Zd0uVE/49Lhf8Q+W6fa6Ri53Go2QRHv7jnIffh3OYLxbxeiPbWBY6ZXqmZ1/GDrF9eTBTx7fNwrttoDW8rRN1ITTHYTbdRSli//y0+L8jMCV87SNnrt5U8TJuMVlpe8BSvupeJEd3J1Ft4IZ9Y+8RHDc44AW+d2skqwHCWWkHIwbRX6cLSGxXm4Xg0dsw+09z1XjHma2MpvG2qyAVKlVmuPvzOOBDphyL4GpkStZn1cQ== 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=d7FRTvoANiacjCoDvBXjbr4lWin8NkGwQ9yCiRDap/4=; b=QBSRke+8XOJdlSgoE+pYayLWNunQpNQ90ZbSevZ1eid8+UxXrdUbA9+G4+CX/SRut2daVGQSdjA711OVp9dqtP9peifMwnD37L8rMcKDmiYqICdIG4nB8H2yZTnn/TTGVjjrECQvR/oqtd/9N5oyh+IZ2EKwQnTtOZ4UK5aKIvDoamnFht1Jki+t0SpLoPraIABCjFJBfksIbKTbHS5n/q+5vNuPZba7m/InjbD/bDf12ZdribdAYnJi22M2yfVecTEVbzncaeRoVKbWl9AzDhz+HbAlst9XQAkkqDonv26payHEgsOde/UZh6KVcWm4/P4HUIfzydZH+xYoRdPHGg== 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=d7FRTvoANiacjCoDvBXjbr4lWin8NkGwQ9yCiRDap/4=; b=yl+I64Nb8DCjiHcw6DK1cJlj7Ibk6/bDgJz9wYANpvk3cwvQbXmx1LYrlhSv4gUIRdynrlHytg9qZc80nq2Wii4G4VvpkMJM5nx9E4ZcErZQ18x+VGWiaSDpfV0L20oC92PirQwEtkYhIVhCFSWFZrvSUe7AXnC4WosRElPnSEM= 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 MWHPR0501MB3753.namprd05.prod.outlook.com (2603:10b6:301:79::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Wed, 25 May 2022 00:40:49 +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.5293.013; Wed, 25 May 2022 00:40:49 +0000 From: Pankaj Gupta To: jbehrens@vmware.com Cc: dev@dpdk.org, pagupta@vmware.com Subject: [PATCH v6 3/9] net/vmxnet3: add Rx queue usage count utility Date: Tue, 24 May 2022 17:40:22 -0700 Message-Id: <20220525004028.24938-4-pagupta@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220525004028.24938-1-pagupta@vmware.com> References: <20220525004028.24938-1-pagupta@vmware.com> Content-Type: text/plain X-ClientProxiedBy: SJ0PR05CA0056.namprd05.prod.outlook.com (2603:10b6:a03:33f::31) 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: 0510e2b2-0698-4e71-9dee-08da3de73646 X-MS-TrafficTypeDiagnostic: MWHPR0501MB3753: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: Z9axPJkJbBWZN2EXbv8S8aQxwm227zneFDA0QKeZ70LFKOtxjFZAHOPbLD8lZo57s8w2CWq3vAi7OK/FCNScXrbrh22Cb9p+60dvPyWiwsik2mEIYhn7KV+qacnzbZB0/ZrUebpwZNNncTScMYSVRdGgWs3D49cyBskgY0HKVbXEcUroL0r7d/yz3VkA8z4hp72lzia3+2vjLp0ZwFpxfw5IdYKo22KIu1IkqZzJQIjndOG4D6fMwl61BNhAeGuZejSRaG5QSodNA4cB13PxZ4IfUP8E0vvB0h2flL2jUch+aRL0/XQP6siji3aKOgLXLEUpi8ogP6g/CL07nrqKufAd7bo2RRTTfWMLHVA+lpku4cXTrGYNU4ocrBC4jOQgDtx9upNxJ3t+Cr56l1xY+xR6PX0JFnONbfUmCjheIEOfrgEjf+74SgEtqZP6fFecv+KIpphrYvBrAwRBz9yyiG+GEfh5IA/7Qj+o495XKMmPSeBHSKhBd0Q49f3O8EvuVj6/kzLEDUWLjYEhzEjgx6dcGq0ZQ2iQfWY8t5OsOJbrKU84DJj87pA/fXiaH51c1ykHpEcGVsbRrt5bCkHxzz3xGEcLgKCz8BRfGgvJqWRdcIUouBFZaRdh/mYLdNLpz8i+H2cihiv574DEhCI2UB3m3dnJO3ZQxqXd5edC8dNcREAOiDB7ayUxXECsyy1GB3F9+Qe7NF3ta7pwft01pQ== 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)(186003)(52116002)(1076003)(2616005)(6666004)(8676002)(6506007)(316002)(66476007)(66556008)(66946007)(38100700002)(6512007)(34206002)(4326008)(107886003)(508600001)(6486002)(6636002)(37006003)(36756003)(26005)(38350700002)(2906002)(19627235002)(5660300002)(83380400001)(86362001)(8936002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RcmIc9v52Xsg1Dua34M9R10YqaOjxzqcZ4J0qwI7LJwjm8zSdvkVMWb4CT7h?= =?us-ascii?Q?lxD0Viv9Gn3MRf5kEQlU0/fcgypXD2HPVcEM2JK67N7dkUQYQvumWU8zjMo7?= =?us-ascii?Q?uZO2q4WrW+zZCgPPPpzdvIypHEvV6erMdmp20YM5x/RO7y/c9Ogx+6IgbIPC?= =?us-ascii?Q?0sR17lbbiXlDtpb0exadi0ZVKj4oh23g1GYYicQSOebU6hUbi/UGHvZlnzUK?= =?us-ascii?Q?6LwubB13cKgf8zcnowc5yqFQVG/l0lDMBF8pCRVK1n+uAvZ0w4X7lPnx51N3?= =?us-ascii?Q?r+fG5k85ouosSHmYd/BDNsoY5fwCdsiLQKJvvw+n8+cT/EFxpT/W095O0akh?= =?us-ascii?Q?DQJyMxoByQUFWp5gbcWZZzd3jKEF1NUA6E97/DeA1o4+FP5VqabIk5Zdf518?= =?us-ascii?Q?LtU4BD8G+BlmiigVVBbrEn7EI1gRHyloYE3S/cd/KmpG46LoOZLUc40mbaO7?= =?us-ascii?Q?YDM26A1gk0rArdmtf/rSaSzF4IFtI/FsxojZ6Xufkf4ymP4Q3mJQbOI88ZWh?= =?us-ascii?Q?CwTHD9zOs6YZ6N3MVX8fGz7GB2SVXi3H2Q0eVGqMCKXhY/FDew+zwO5h9B6F?= =?us-ascii?Q?Py+e4URqcVYQIEN6OUhqevKycFnRQC5i2Nlb/80jQ2hKCSrcBh4JilSwYqGe?= =?us-ascii?Q?943pjfD3gNi/u54RJpVk2FavhdKEMZam4A6PmBsaIusoQdOKjtm4ROdV4GFa?= =?us-ascii?Q?Bdfg3F5HKxWNZl/EzBworqj47B60slU17GBWnOJd4vQK+TpwcHfO61M9wec2?= =?us-ascii?Q?WygFIXkXogR97RzD11AU3D2cmoaoKU7fOjqlH6CzTCn/3TnvUhLU2r1VGXfk?= =?us-ascii?Q?GmYyyv2AbEaUKkvIYR2wAobkimaN2kDUw7ug2+jURTGi92YoAPAtGIPNVFfA?= =?us-ascii?Q?sbHP9SBIB0pFnluh2qI5e+pTP2sJXf2GpM6oI29OlZ8IXtuI2Dx8tnPkPNdX?= =?us-ascii?Q?BTsqyGoudp21JVbD4IV3sko9hYTcmrqED855YE+/6Jxobiby0PxGkJ9p3OT9?= =?us-ascii?Q?mwtgKf+KDNTwnHf1bzqywCorQDpAPYxRyHISak3aba244mJVXp0C2Z8DyB9G?= =?us-ascii?Q?jd3Laydr7thSddqgKujaPanhcsW0haKTSHKc9RpBDkbri+8zoe/hJytt3qXB?= =?us-ascii?Q?1lWUl+wVRzTVKLh/39yGZ/OSWI4YGv3hwWGtNpYoKa5TuJ+YHhIIEf4QamiD?= =?us-ascii?Q?lZ48BlGcxj1iluXq6TU/Q8sd3buMJ0R8Hxwcz2sbv6Uwgd8elz8nh1HE5gGD?= =?us-ascii?Q?vJ2m/nImBW/ejlnBrdE6dS3gzaSvbVUzaBdMuKltLT2crBN9ke+qbYe6GAan?= =?us-ascii?Q?B4u3jRF8rQ0FubmjnlC6YQAKZpXOAz12I3an8zode75QwYb8lw+3A0Q32fpx?= =?us-ascii?Q?36fx3FdCxoWHKUAu8ZQVARfeploXqeEzwrAC4u5GaY881ehaMYVDVDgyHgnO?= =?us-ascii?Q?vZ9GKrQfMxIJJPeoKi/wVfIzCudmVA0EaWlPmmmS9EQOeiMU1GMdys3Sp1o3?= =?us-ascii?Q?sNt4/6EFvWhK0YheDssUBZ1EpSW7CSNsUhtbcNXkF3PiS7raCeQbtmpWZRcW?= =?us-ascii?Q?jVvXqjkP5AsBi+X+aTXrOR7ZZWDoOSRVVmptqzyb5+BcZptceDVb/YJ2H6yN?= =?us-ascii?Q?TE8CrHMprAWh/RrNHmU+GyRM3JIQIUH0DxFuKsBa7zbHjWTVLRGgX8aOfLsv?= =?us-ascii?Q?Ni2fURZBa2YkD7KJKCMxuEhDCW/d4FzFBEqf8ICl0WHCp2NbZMyvtkpiHVGN?= =?us-ascii?Q?OeTQvLmyoQ=3D=3D?= X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0510e2b2-0698-4e71-9dee-08da3de73646 X-MS-Exchange-CrossTenant-AuthSource: BYAPR05MB5624.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2022 00:40:48.5089 (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: LI9gEn9AB17z3IvhYlNyNQkGNQ/S2YTwxEgcuEt26pDMaDsBKEp7GoPAPp7ymEjoub4z1YgAPbzH12/4Ypo3WQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR0501MB3753 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 versions 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, -- 2.17.1