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 809EFA0C41; Wed, 15 Sep 2021 18:50:59 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 694054068F; Wed, 15 Sep 2021 18:50:59 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id D854B4014F for ; Wed, 15 Sep 2021 18:50:57 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10108"; a="307926375" X-IronPort-AV: E=Sophos;i="5.85,295,1624345200"; d="scan'208";a="307926375" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Sep 2021 09:50:57 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,295,1624345200"; d="scan'208";a="508876118" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by fmsmga008.fm.intel.com with ESMTP; 15 Sep 2021 09:50:57 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Wed, 15 Sep 2021 09:50:56 -0700 Received: from fmsmsx606.amr.corp.intel.com (10.18.126.86) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Wed, 15 Sep 2021 09:50:56 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Wed, 15 Sep 2021 09:50:56 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.174) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Wed, 15 Sep 2021 09:50:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GBEFvOPIZIfKpWt7bf+q9hIWsbEaWKXXTkG8TcQ4DkBSjjHfqOUAto0o7AUtC5ucbag9/gcxPREvnF+c91eveYpAHbgI3/aI//RK/VHO2Wc38F9J2ePa0lY8ent4aEbXbLE+/Q2i6VmBoaRuJ89g1Kyb40frldHdIUXjtHb9P2rF+eNf7MBXHg9EIRpJ8raJdKHBgyymt4NJvC1ABwooujjpwScAT0+3bgQT5K/WlquvQH6GQBGJs+U1WHclfXAkOfobV6en/gydSdMazIRMeBnhUNuBqcr5wX+dnJKofW795Q/JSTJ85iEfoafufWKFsulsKyMoUk9P7WiZuwsa3Q== 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; bh=u/vgcY9e3wiJgRm1oCRks8d6vmLyUp/UnYYu/6lbm90=; b=M7Vk0fS1D4g038U0TSoVu4tWawTY68x4ClBzQcWwESObSVKefv/5Z/G47dN8X7tllnAWXw90MEG0xR8+pmsM1hsjyTDZyDwtUIKz3xK6IXnrPdECkrPvurSbh1wFUTmAdqqdMi60MNS+fVULC3hpwsGkx9S7ZfROmWHOXv7y5nOdznK+MRAM11L7nzkTmioSAYUC6h5KSQxQMC0BT6KqgYjK9+uCn8WHiW3XhaCeHZlfBgOV7FcJWFNYnaR9F5nrp9cUWCfNEzFomMEZcDo7JTA9NoLex3Uw31WRzGykyA4GhF5tdOdcboW7jUSMKMqUiZ7HKo5bSZlntYd+DpMl2w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u/vgcY9e3wiJgRm1oCRks8d6vmLyUp/UnYYu/6lbm90=; b=jCXxOy3brG1r8HkuPjpGzs9te/DWAY/ETi5buPzbsgrWd9izJ+IEhJlif8i/5Pv9llDOV1PfkT1sYS7fS2Asx6eyw92qT3DLXx/iZW/u6ANn9LINkp/tZO2GpSnA3QZ17UUJQ4tUUFjfS7nsDDviFoXntc0txU5LCFf6C1/COD4= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=intel.com; Received: from PH0PR11MB5000.namprd11.prod.outlook.com (2603:10b6:510:41::19) by PH0PR11MB5096.namprd11.prod.outlook.com (2603:10b6:510:3c::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14; Wed, 15 Sep 2021 16:50:54 +0000 Received: from PH0PR11MB5000.namprd11.prod.outlook.com ([fe80::747b:3a08:d1ec:31fc]) by PH0PR11MB5000.namprd11.prod.outlook.com ([fe80::747b:3a08:d1ec:31fc%5]) with mapi id 15.20.4500.019; Wed, 15 Sep 2021 16:50:54 +0000 To: Jiawen Wu References: <20210908083758.312055-1-jiawenwu@trustnetic.com> <20210908083758.312055-9-jiawenwu@trustnetic.com> From: Ferruh Yigit CC: X-User: ferruhy Message-ID: <6f9b2986-eb44-0729-b98a-9972abaa35fc@intel.com> Date: Wed, 15 Sep 2021 17:50:49 +0100 In-Reply-To: <20210908083758.312055-9-jiawenwu@trustnetic.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DB9PR05CA0023.eurprd05.prod.outlook.com (2603:10a6:10:1da::28) To PH0PR11MB5000.namprd11.prod.outlook.com (2603:10b6:510:41::19) MIME-Version: 1.0 Received: from [192.168.0.206] (37.228.236.146) by DB9PR05CA0023.eurprd05.prod.outlook.com (2603:10a6:10:1da::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.14 via Frontend Transport; Wed, 15 Sep 2021 16:50:54 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 78937d54-d58b-4d70-0d1a-08d97868fbd2 X-MS-TrafficTypeDiagnostic: PH0PR11MB5096: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XpSLZPpct6cjdJmQWQ14S7AK2OZ8HUZbQEOAiUat3LWXil5w5pN618VcD0vKFQvkhyAGeIwaWr8inCfr5Pgmn17/npvMsy8HOikKXrisBbbN3pM5+Z4KMsGnlhZ8DW3SRXK5GybjuB/hdzRFxMFVi/dKfccee8poExgWmATq6jB6IBQqQiCHukgiGhiwEemOuXI/KF8vb/+66Ye+2zDwCHK2s7qyLqHrS00IDR12eMTO3esaMJlwlVbMrRhQXW+w66cftqfSjrKX92htXjSxcl9PveiRuW91dag0uugSbj3W2PqTRd7htbToCebQMB68u7mxMfSbr5eQmoUh+QrL/ARqrL/BTAKbT4Qz93Zt+mfVzTaXAe3R9aVzS2/cC8RaLMDbXN6a3Wu3b/CALbK4zsWZnf7a1Kz7sYvbX952xWpBj9vExcit/dfXqlPxRZF3SxHc/iUv5Mpjplgk5WhtR6ZyjoYvc5IDRpvMM8DTTGDlIfPsWD9aF6wv1doZUt/oZ0ERkevBRD6pvFEmmFIFGLTzCsW/BlfE3qmduNgskYHdWcNTXGVRiJMXlBdEn9HiWsiIV53z7AR4pNbcIVRw6QxzlsJlI3n+wx36yvO8UJqtQVLfd1fti8y5dzuAYXpY/35nvu5CEiO+V9JiMSZbRRfRV2+uQRxv9vs08c7JupuO7FN8rk7I0iJP+3XRmEmf8129QJiE3UThwzGRg/uVnQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5000.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(36756003)(186003)(26005)(5660300002)(83380400001)(6486002)(53546011)(44832011)(6916009)(86362001)(508600001)(4326008)(66476007)(316002)(16576012)(66946007)(66556008)(31686004)(8936002)(2906002)(31696002)(956004)(2616005)(8676002)(6666004)(38100700002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cFhIT2M3VHM3M2VzSkNwRXFnNmI4UTROeG4vZWdIcWZKNVhOV3dxeGM3Y3hq?= =?utf-8?B?N2lkK3lwdCt4amJQcVQwWnRxcmUrS05ZYUZxRzdGbmFma2lYT1h5dnVRV1cy?= =?utf-8?B?V2dac2tsRy9lZFVwT3ErM0FQcTNRbHhocStsRzdYV09DY1lUQmtIK05FVUt3?= =?utf-8?B?K2MySVF1b0t4akg4UnJndU1DT3pTNUFKa2FHZnEyUldwdmk2Tm1ZaWFDZEpP?= =?utf-8?B?VlZJRC84SHJNUGUvL3hlaFdqR1VrQU5WK2MzR1BWdTRKeWREcW5KOE8rOVIx?= =?utf-8?B?RlpLUmZXQ09MRTJpR0RwenFINVN5Z2czQTlEdTVYcm1EK2tUdlV3amlJaE9a?= =?utf-8?B?NFFndHQvclF3V0h3eHF3UVA0NkJPL0QvOEd0RDNKRmMyRDhmYU5sOUpsRUJs?= =?utf-8?B?dVM1elQ1S01TbFMrOEhhRlNDWTdlS0QzRThxVEVUc1A0eVl1VGcrSnVXT0xo?= =?utf-8?B?UnhrNnYwaXZBL0xiclB0SFdvY1ZGdWJYenR4T2ZZdEc4ODF5bXJHV3FVZzJh?= =?utf-8?B?UVM3TzFGT3FhZFd0b1pvVlFnZXpUMnVBcG0yVkthaFlVREExVlJIUUhYbHJK?= =?utf-8?B?eW16NUdlM2VuQkgwM2U2MFpQbzZIdWNvMUFGSzBKUHNwaGMyaC9lZ083OSsz?= =?utf-8?B?empRUVVSSWw5SmdFNGY2eUJ6a3JzMndKVkpBeklPZGViMnJxTW53L3RZK1FJ?= =?utf-8?B?bG1OMmc3QytLSjlEZzV4WFRqaysyUVdoeDcwUUxmOWEySVplMklsM2RQL3VF?= =?utf-8?B?TnFhSFJmTytQWVYyNUR5ZkxtcEdpUXEyN3FvajFIVytYMXViOWRjMGEvK29s?= =?utf-8?B?TTBXNTNIUEt2Nlp1bUhnMC9iUHpGRlVSS1hVek9NUEJ5TnBiVEovdGErRVRi?= =?utf-8?B?SHIvOFBUenJFNjRPVlBPUFQ1ek5yb25HRHNQVmxzcE1pQk0ya3ZQS05aaWdI?= =?utf-8?B?Yi9oTXczZWN2dGs4bWVHMHZWdlBSQ2hwVVNnL1VPWWtOdkZvNW5aYlJtZTdU?= =?utf-8?B?c2FlSXR4Vnl4V25BRk4vTHBjb0J4WWJVRHkzRzgrbHAxVDZMQ1M2M0pyU3BN?= =?utf-8?B?V0RrZkRxdTRBZWx4SzBaVTFDZXFiU2VrMnRER2ZWdkFaOXVTQWhGVE9ZNUtm?= =?utf-8?B?dmdZMjEvdmZtbitwTDBiRGZUUnMxQnpHS3V6QXZBU0VDNG1aN0pRM0xHNjdR?= =?utf-8?B?V28zZmhPRElUK1ZiN1J0czBKUURxV1RRajRqSmR1NTBJZG9IbVU5Y2hFN2N4?= =?utf-8?B?VytRQkpHci9qdVZnaXNSK3ZyVXJSZ2RtcGZ1WGJJNUYwTUxuTHpJSlpJNy9x?= =?utf-8?B?bTBWZVh1RXUwR1I0dUpxV3NDbGRjRVc2UzhuRDdjdnZDNE5IK3h4SWorcnRr?= =?utf-8?B?WlNBQnFYVWlCdmlsVk1jaVpDQmYyZUYybFUyNDVVejVTNWQ4YnorVi9ydjh6?= =?utf-8?B?ZitickhYd09ac1JEaWZxOTZlQU83VGE0M0hCK3pMc3k1VGhia0VBK1JPR1di?= =?utf-8?B?cjRLa3pXdk5ZY0hvWGlGV3lWYXpjTUpJNnFoWkp0SFAzQkxlSllDcVFaYVRM?= =?utf-8?B?UGg2SVdvWkEyckZTVDh5K2UwZnlLME0rcUVsZDJEN2c5UngwL2VCMlJjbThI?= =?utf-8?B?RzA3dHVTeTN2ZTBkYmJPRXVSMUJiR0JiZ3M3ajN1NnhjaCtmOFYzOW56S3Qw?= =?utf-8?B?bHdDOExOeFhkaUlCQ0VkalVibXh3TVhKdXRYeExoMDBLNENMVHBJZEd2NjY1?= =?utf-8?Q?4QdjKsiOlBdFRVTQH6xLiGskzBtYExkk+lE5Cgm?= X-MS-Exchange-CrossTenant-Network-Message-Id: 78937d54-d58b-4d70-0d1a-08d97868fbd2 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5000.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2021 16:50:54.7768 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: e9RZRdOFPJN2vG0bXohkgr1ZMgSv5n0mnXv/owPswXuOoRAp6OgVhqo9zvDGwynKz77u0PGuKfDUSOyh4greiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5096 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 08/32] net/ngbe: support basic statistics 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 Sender: "dev" On 9/8/2021 9:37 AM, Jiawen Wu wrote: > Support to read and clear basic statistics, and configure per-queue > stats counter mapping. > > Signed-off-by: Jiawen Wu > --- > doc/guides/nics/features/ngbe.ini | 2 + > doc/guides/nics/ngbe.rst | 1 + > drivers/net/ngbe/base/ngbe_dummy.h | 5 + > drivers/net/ngbe/base/ngbe_hw.c | 101 ++++++++++ > drivers/net/ngbe/base/ngbe_hw.h | 1 + > drivers/net/ngbe/base/ngbe_type.h | 134 +++++++++++++ > drivers/net/ngbe/ngbe_ethdev.c | 300 +++++++++++++++++++++++++++++ > drivers/net/ngbe/ngbe_ethdev.h | 19 ++ > 8 files changed, 563 insertions(+) > <...> > +static int > +ngbe_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats) > +{ > + struct ngbe_hw *hw = ngbe_dev_hw(dev); > + struct ngbe_hw_stats *hw_stats = NGBE_DEV_STATS(dev); > + struct ngbe_stat_mappings *stat_mappings = > + NGBE_DEV_STAT_MAPPINGS(dev); > + uint32_t i, j; > + > + ngbe_read_stats_registers(hw, hw_stats); > + > + if (stats == NULL) > + return -EINVAL; > + > + /* Fill out the rte_eth_stats statistics structure */ > + stats->ipackets = hw_stats->rx_packets; > + stats->ibytes = hw_stats->rx_bytes; > + stats->opackets = hw_stats->tx_packets; > + stats->obytes = hw_stats->tx_bytes; > + > + memset(&stats->q_ipackets, 0, sizeof(stats->q_ipackets)); > + memset(&stats->q_opackets, 0, sizeof(stats->q_opackets)); > + memset(&stats->q_ibytes, 0, sizeof(stats->q_ibytes)); > + memset(&stats->q_obytes, 0, sizeof(stats->q_obytes)); > + memset(&stats->q_errors, 0, sizeof(stats->q_errors)); > + for (i = 0; i < NGBE_MAX_QP; i++) { > + uint32_t n = i / NB_QMAP_FIELDS_PER_QSM_REG; > + uint32_t offset = (i % NB_QMAP_FIELDS_PER_QSM_REG) * 8; > + uint32_t q_map; > + > + q_map = (stat_mappings->rqsm[n] >> offset) > + & QMAP_FIELD_RESERVED_BITS_MASK; > + j = (q_map < RTE_ETHDEV_QUEUE_STAT_CNTRS > + ? q_map : q_map % RTE_ETHDEV_QUEUE_STAT_CNTRS); > + stats->q_ipackets[j] += hw_stats->qp[i].rx_qp_packets; > + stats->q_ibytes[j] += hw_stats->qp[i].rx_qp_bytes; > + > + q_map = (stat_mappings->tqsm[n] >> offset) > + & QMAP_FIELD_RESERVED_BITS_MASK; > + j = (q_map < RTE_ETHDEV_QUEUE_STAT_CNTRS > + ? q_map : q_map % RTE_ETHDEV_QUEUE_STAT_CNTRS); > + stats->q_opackets[j] += hw_stats->qp[i].tx_qp_packets; > + stats->q_obytes[j] += hw_stats->qp[i].tx_qp_bytes; > + } > + > + /* Rx Errors */ > + stats->imissed = hw_stats->rx_total_missed_packets + > + hw_stats->rx_dma_drop; > + stats->ierrors = hw_stats->rx_crc_errors + > + hw_stats->rx_mac_short_packet_dropped + > + hw_stats->rx_length_errors + > + hw_stats->rx_undersize_errors + > + hw_stats->rx_oversize_errors + > + hw_stats->rx_illegal_byte_errors + > + hw_stats->rx_error_bytes + > + hw_stats->rx_fragment_errors; > + > + /* Tx Errors */ > + stats->oerrors = 0; > + return 0; You can consider keeping 'stats->rx_nombuf' stats too, this needs to be calculated by driver. <...> > + > static int > ngbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) > { > @@ -1462,6 +1759,9 @@ static const struct eth_dev_ops ngbe_eth_dev_ops = { > .dev_close = ngbe_dev_close, > .dev_reset = ngbe_dev_reset, > .link_update = ngbe_dev_link_update, > + .stats_get = ngbe_dev_stats_get, > + .stats_reset = ngbe_dev_stats_reset, > + .queue_stats_mapping_set = ngbe_dev_queue_stats_mapping_set, 'queue_stats_mapping_set' is only needed when number of stats registers are less than number of queues. If this is not the case for you please drop this support. And we are switching to qstats on extending stat, please see 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS'. This is mainly done to remove the compile time 'RTE_ETHDEV_QUEUE_STAT_CNTRS' limitation. Btw, 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' seems missing, you should have it in the driver.