From patchwork Thu May 5 01:08:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pankaj Gupta X-Patchwork-Id: 110629 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 AC448A00BE; Thu, 5 May 2022 03:09:23 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 09B6642830; Thu, 5 May 2022 03:09:07 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2076.outbound.protection.outlook.com [40.107.94.76]) by mails.dpdk.org (Postfix) with ESMTP id A68F140C35 for ; Thu, 5 May 2022 03:09:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FxbYeEfmZst3gh3kttSNrT3EXif29cbbHLV1duLqQeSXh9eLKvc3Orw+jrjwbvY1Ycl79WfT6LHm7Gqkfl4dlf2IjR1baWmXQAC3vwot+gZ65KNesa/Qv8lRxhzUYrQaRDM8XDWa3TZRtww+WGn8dLP0PaZv1GN0q9fTMokYAwYty5CKuYowXfGnNohdvkY3iw4CtvWGjGdx2D28IQLav602VUACtTi4CgY8Lm6+pe92lnsAL0EP1LakZveDrAawj3hAIsSi4HMq98QM+ROsXb04ORvY42wqzE4GrRRn83RV9g+jmrzTgoIPja8B2mLD/9DIyNzldCzii4UsuyV0nQ== 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=86+d9LxjvWF/UtkZzrs5gKsGYDVAW2SYJ7lMoQ4q0N0=; b=gwX9eVZ2mTFPvss2sPg5AouEkv0W8nkySEOuCY6Ydxzp2/ESkLWEllIOBC2TiYjBK8xP2LfvA6wU6d6E6YpVUdsWMmjc2yCt8uaQpjfKnf9NQ3sDxBnQ2vjdUtbrgZGgSFkhly61IrHmfOUJTf5VaXFEjzOZOwBVe4NB1OP6+S5MCzq4mAa/VNB5owhwEhyOEsr/e5YT+bnrxExUe+dv0aNWoZ3xftilqUNncXLgqEFzBNprMmH2Tp+SfGI+BCqL4psPtOHtAY4m+w/VfyCawv/O73i5un54oDNgj/ci4vXLHuIMTqGHy5Qh7+F+ozs4bysPD/0QKpXDTirmW9g4IQ== 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=86+d9LxjvWF/UtkZzrs5gKsGYDVAW2SYJ7lMoQ4q0N0=; b=Iif8aCr+V93Ki3hnSgUmh+4L9pU725GAcE8XOTfAWaJcZ+9lE45XwBiOq1lZ7SK+vRfkDSpzZdiSIBXMmzqEvQEhW6c6K34K0ztpJW9irrhyVtOLvThwkDQjR5EizvAaLCnm/ZxP9OgUHxWM2J9kQGCHVS49Drg1dsvcFx2WRRc= 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 BN6PR05MB3489.namprd05.prod.outlook.com (2603:10b6:405:40::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.14; Thu, 5 May 2022 01:09:01 +0000 Received: from BYAPR05MB5624.namprd05.prod.outlook.com ([fe80::5161:a7c5:8c7d:f3b2]) by BYAPR05MB5624.namprd05.prod.outlook.com ([fe80::5161:a7c5:8c7d:f3b2%7]) with mapi id 15.20.5206.024; Thu, 5 May 2022 01:09:01 +0000 From: Pankaj Gupta To: jbehrens@vmware.com, yongwang@vmware.com Cc: dev@dpdk.org, pagupta@vmware.com Subject: [PATCH v3 3/8] net/vmxnet3: add Rx queue usage count utility Date: Wed, 4 May 2022 21:08:41 -0400 Message-Id: <20220505010846.25788-4-pagupta@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220505010846.25788-1-pagupta@vmware.com> References: <20220505010846.25788-1-pagupta@vmware.com> X-ClientProxiedBy: SJ0P220CA0011.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:41b::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: a40b1b98-9220-4ffe-8b29-08da2e33d551 X-MS-TrafficTypeDiagnostic: BN6PR05MB3489: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: jZ6GevvAjODtVDp5/3cNtOESt0ycPIBYXrHKRNYnqYp9rGCxiBGjuEH0Llscg3UoH8U0RA6Vl7f5Ow/A+Q07mFRkYUuaiL8qnrbjUS/NZ5gcE7JKdP4yMrUXq2HhYaHasScUbSvWZBAhbIhSPHlctAu4qUmij13VgBMNB2xOBMhg6OrwNGOWwN2Tc5TYyH4R3vHeTerwJELk8+rzANIMo/0/wSoUK8EsMQo7Fbo0gr5lqbW+BzXoYSv/kIxBmZtB/tZzjRoFUiSixIA87i1WxbIuAwtpdTflnpXV6cDy9UXDY00BuMdtSxlMXXiax21cTu5ED7VzzVvK0y8GMFo6lIUDITAKxT1HeKBaBpoZMCYBeXRebHPGC7nwSQkRizrN24WJeAnD1gyUkzZy5KEIXspI14MlN/6OsLExzaOLikwio1iBjoWhKEfXTyaiLYcXKyK9JhAr01Zr521M1GGUDF9t3cgGeDp8O4CDDqKwy0KtY3w99htutXZgtxAwJ4z4rsOb2DiPR3Orv0IQDR1EdfABmiHmwFddjPtnTLI+nWiCRxnGw+B6edKl7zjHH8I2rpwUfR5SihkSy4SYbC4wXMfaJ6QrG4nVV550tu+66NrDPUcKLNPtbm+EysvKzE17RTdmzOnYaFAdOHkkUYAmpmt1jGUxwvR1E86IA7wnrLZpEsSQoyfC4MHHcQUY3FLam3l4FCfwHS7jdmQfGQEkg1YOPLbI89apcOfuXXtyhAeTI5Or/KQt3lekRgIVOm9/ 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)(26005)(6512007)(316002)(38100700002)(38350700002)(86362001)(6486002)(508600001)(6506007)(66946007)(66556008)(4326008)(8676002)(66476007)(6666004)(52116002)(186003)(6636002)(5660300002)(83380400001)(2906002)(1076003)(107886003)(8936002)(2616005)(19627235002)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4/GRWBDA/KS6dfef0xUn9JHjmb6gOY5IW+ezdV4fjD8fDglGy00L2ojoQXhW95ItXqnxurxqreKu1hFAlBYTFfQUvY7CzeW7xqPXOrGgz7OCSiw2dQfDgKByE2P7g2bFhFG7DD7DOF99/EAq4yBWjlDRYxxUlQFPpyfsvPJ1DZL8OHFRhlLfSe7XHqo+9cLEGRwn3442jX5h7qeymnPcdoCDbKEdTHrqx0wWYc8Zqr4XgTc7ikmXrpXvoljULk2CBni9qyl75kX0xKRvOmVPjW4OdIlvQdtoKcmCGwWEUGZoaTKRa+PSsYHhLJL2IHuXoIPWMgxpbAEu8Jc4lo7yQkapZeDqqnA1xFUHr/rexE0zY+02CjvedzMYwo7q0nfxTqkC375FYOLPrsIikE+GSN41jdCqS3lB8sW4Nnmj5gshKh5HlY5JMP0D6WCWIbQD4o9vN7rbtkcN2ndi1LXntWkAD2ypj8xURRKoEYOy67k1xAIvybMeBsHLhXFhZMxUkaOpJtQtib5W8FiDNDGkmToBzlqFMG1xKeicidNFAWs5bqcyFJWLn63liB4cJO7/NrRvnyBqc9MOYfpgOZwJeIogONLmHMq0bcAYnmhcNzM4fn3CW3ixk5ENCsEIRLqiLMh7MZ0VANZDb/H0wg+FDDd1g3SGZkbSbF73fTQt0CpsIMSp8j1YGR4q06nhv+jkDS+8aXdEDwO4w+Eu7wkmFfd/xbBHCfAlUEWsEUQ3tkT3+nQ5XCPcDaA2LaOgCeslVAOA7KryINIKtg2zsrYsaJVdovk7aCq0e5eScLdfD5rniVEAvnQ24qVkcj7BX+MLa7Fqe2qDdU3madimO4jBC0o8CBFX/jUlqSuC1lgwRR/fqWsh5irBNI19ubvwMWPzq+k0arrTYs0VhvKYRDmJCQdYhGPgul4FY3CfM6L/1Fto2VsS3eI85QW2AXxxBnOUdispkETuS/QpsJ1IPgExgXaKYEbM6rw+9cJ6wE90vbMkNCZ/8U4xdbjo7rw1u3gQVKTbUjSRZ8AFiEQtG9PJaTcM8FbQMDKWYTN9GDk4SUL4VBIR5EdyAJ9AMRB5W5cL0AnaqJNW7j1M+5AO2TDO0XxbBFZb/G37xyM/o19Pg2eCYdi5UFVzbeYWshckyx0yv5QstKNmbT7OsWpWub+Bt9qTE53nDqxc9t0JEedbOoKE3yn2YKMhv2wbmIM+RCscvVcHTJluQltgwKa0ZudwUSEKmXujynxxgEBRLG1A6P5LrZz3OjajQFT8usWEa+edjshv6rvAAg48Mgpf/7nQpe0JWDhamkVIjanQ/5uH5JNVjflxaRraaF26jB3zFOpiUE4f1H5iJpex79MjE7hcshY8Jp3c1njSn7YG2U3jB8CeCK6zH+fsgFD5IxPCSdEOq21TX5isVmAMXogOCADQ0c0lyyzBO4Q7LIfiEX+rNFBECHB/c0JSGdE6mNgHybFeRanYFK3ZdwfDw6cJzOSEGjXbvNMNaK+1u/TpBmI8ZN9whWeBdqcmJTFOfGB6g6ybsMdlicDErDnq/SEyDrGLpie5uT8rQkGZdpnJaaW9y2SGsICAku/uGs54Lpn5kUnRuzrdbsgcxoVhNdxKIi3bYQrS8H2vFDq9ceVjrvdRygkGIiAMpX2eJre+m7rXUx8Iq+Nhk/xjLEt92CWCNHCazW5LoCP/GX4ZKVCpDRmJzXgFN7fjE2BXaqQ1l6RPZsPzeDJ3NwqqHDCGqFl+p0NMqA== X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-Network-Message-Id: a40b1b98-9220-4ffe-8b29-08da2e33d551 X-MS-Exchange-CrossTenant-AuthSource: BYAPR05MB5624.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2022 01:08:58.4541 (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: xti0QX3/lARtUcSLkpVcCEeoWrjUBp7P/Jeem7Dm4jEIi+mvjXFEAjn7VoSjaTaieb3o9w3dFtkyJ1BOIyWbBg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR05MB3489 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..2725e49ae9 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,