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 822B541C56; Fri, 10 Feb 2023 00:30:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 635F540EE3; Fri, 10 Feb 2023 00:30:22 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by mails.dpdk.org (Postfix) with ESMTP id 7A53840EDB for ; Fri, 10 Feb 2023 00:30:20 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b3pWfZaCjU209dLszYmff2p7sZPeLEWZpP336AFbupAisSEP8Hg8a66aufEMLeoVpFidxTcqq9vm1On4b7NEGyhs3HV1IPSJVZqkqO2aYUfLHXWBiY5ndbK+Sjnj6Bg8FQd2Rn0ZciwZoiPMhoRl7FrN4GWH5e8hZ07hZq6ssJmlYTOf2LIdxUwREjqsUPGzzE1aIpQiVJOCTCaYqCI0a1OW+0HOgrIgOITODOJHFcXv9mZiuzjwYpZvJz2lTb4tAxYvwFDG9HDvyQzeZgT+5y66Oaxd6BzLWuBqQiyeMCdCwCc2NYvSU/LCVfpYJw6vmfTsiaXoia9cWrVM8z4csA== 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=Lh2vU1tNOqOMHkdjrOu8bFprBZjqWA5JBjUG7ZqzDws=; b=bwNy/Cv+QK98AnZp9prJD7cJya41CkeGGLcb5dgl5QKzrVmv3jhzdja45rNU6LDnDbEtnwfIk5zXPQYU6ulTD+v8CxmhqHMRfngv7LvvkuvLTUwtpRCa2nPmUpL70+wE25XoTyWrBZEUI6hPLbwrFD86IXanRYc7QqhxxiPQftkNNZUdbm7swb3ug8o/tNcZWN5/e8OPqOrrIuy6YAaQOpkcfWT3RAj1Q0PmlOLUYErFDxO/u5CjYr4zgtgVnkAuNGkQX0w7KccyLNRq7I6OoL/xEmWCe8zZNMMSE/S0YzaouIFraozHtnVsg4vMwdBNKaTtIBCeyS6gwgZsYbEgBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Lh2vU1tNOqOMHkdjrOu8bFprBZjqWA5JBjUG7ZqzDws=; b=bgZtaTvXpzInCxXLIpnNgmp1kVSxL8ixRyr4HYxS/AGu5dkrBmQhqev8bri89ZkqlF3nEqTQuN8LkUGWErQm6VrIXWZtqS6BQk01jpPwHSGIfuPK1ET6QH2lnX6f9a8jV76mciNgXykQfH7f5ivEXhdmf6DrYoxb0C14fGVLBJU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by IA1PR12MB6481.namprd12.prod.outlook.com (2603:10b6:208:3aa::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Thu, 9 Feb 2023 23:30:18 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::3614:22ed:ed5:5b48]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::3614:22ed:ed5:5b48%6]) with mapi id 15.20.6086.017; Thu, 9 Feb 2023 23:30:17 +0000 Message-ID: <5e68e212-4391-e32a-91c1-2fd1874e758c@amd.com> Date: Thu, 9 Feb 2023 23:30:12 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Content-Language: en-US To: Chengwen Feng , thomas@monjalon.net, andrew.rybchenko@oktetlabs.ru Cc: dev@dpdk.org, ciara.power@intel.com, bruce.richardson@intel.com References: <20230209030755.48028-1-fengchengwen@huawei.com> From: Ferruh Yigit Subject: Re: [PATCH] ethdev: telemetry xstats support hide zero In-Reply-To: <20230209030755.48028-1-fengchengwen@huawei.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0623.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:294::18) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|IA1PR12MB6481:EE_ X-MS-Office365-Filtering-Correlation-Id: de084ae8-c582-4c1c-89c7-08db0af59a2c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SXUJDhGEeXWMzfw13vqAJJ7hrO53WAHm0ZrL8PkTN4Y3Dz6T7dXGOn5fnxnhD4Jj7igntUb1KJC8lLuQGl2Qhn9WWCU0FF7HmFUMOimcpR3ZCOK4teV3iCTTLS6kY8y+b9zD6UYjv6l847pN2H4Dl1XGFreopN/t6MIUHeMmFr5B/7kIpOMbm1FAyaqWqIZdenhMZMtlIa/O+wjdMfsgWQNr6fC/ZaMT7ox9BIlTC8gejzT9pw+Y8Cnx9BPOz1oNqudtyNeygXsH1axQYuybQ2QyAs9orbsK76GmcYDgfiRSKBOcUlMKhw6dMXnqKtrt0ehMEwJnxDpIKn4D4cGyArDyi9p3BG3+JNa0JIrtlS/CHg3Jhp4qPHOImFLvGsZg4Qd61yi3wTv+ni3YoIF7Y7aRfaxT0eQ66mnJbrHfxnviwBSBFOs8ZSEifNWfq5CdKFCpiJQEy2OObkKArSooz+VecC9gOXzW3yZYq+5Yq5j2ynNlPJvDH5itJHk8I2t8KeOlZxqxcP4LVx98+iS40awC1uzXDz+q/rEgnilO5O+wy6Fs+eNNz4/Y5LC5aVrM12K5QU9RxrJ+y81IRIpWsEM48smWEQKF+ghk12pOyRfG7oj/Xi6FJIWT3EvYtGu8/Nmwy/KWharLnOXl81ys34WUbs5TFJJvbbvVbB43jxDCZ/YbXAdlDob4trbgHLkajZQCMFF85WW+mSR0Ua2uaBZAarowPuW5bA+AkVL+duE= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(39860400002)(396003)(366004)(376002)(346002)(136003)(451199018)(2616005)(83380400001)(478600001)(6486002)(53546011)(26005)(186003)(6666004)(6512007)(6506007)(86362001)(31696002)(36756003)(38100700002)(4326008)(8676002)(66946007)(66556008)(66476007)(44832011)(41300700001)(5660300002)(316002)(8936002)(2906002)(31686004)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZFh0YmRiVnRnV2F1eTVtTjEyMDAwTjlCUWllcFQ5NUFVdytyRy9lR3JtZG9E?= =?utf-8?B?ZzkrNzNoL3ZhZ3pLUjJFZVBKalBtQ05JSGc3V1hhSmVGVWJZN1I1eWo2dW9R?= =?utf-8?B?aG1LVG4relVCRlU3NmQ5dGhEemsraDV3T1ZuR3hwS0tsUWVLUGdkaitON0cx?= =?utf-8?B?UmVibkJ5OFp5YXBwODRUTDk4T2NyRS9kQjlOdCs5VGxZN2ZJK2llR2xOTlZ3?= =?utf-8?B?bEpYYnFrVDY2bUg1S2hpblB1T2I1T2E4aTUyOEZIZkVTNG56Sno2MEV5WW9T?= =?utf-8?B?VEdLTlRhcUdiODNkQmFBWmVzeUNoTzlSclBobkRmbVp4V0JMZk9kNmhnandL?= =?utf-8?B?UVVGQk92cFdJZGw4MEsrMy96WW5aSlNjQWxYWmp2UlRwUFNqTGpkRHJ4bWFk?= =?utf-8?B?Sk90MEhMMnc3b0RXYmlCVzlxVkIwMjY1TmczVDhFNmRyTkt5UVJaR016OXhK?= =?utf-8?B?RlM2TlJoWGprMExiL2lBMTNOZy9SVFVaclVCaEM0eTZER095WmwxY0JmMWVV?= =?utf-8?B?bXpzMDZDU09HYlE5THJpS09hWlh6alFXbXdWYjBxTkZoNkZtRXBnNk5NVWRE?= =?utf-8?B?RTY4UnhqSVN6aVlDL0tZeWFLY1lTU2RjOVZiUmh4VlR3emNXYUZ6akk2S2lH?= =?utf-8?B?SmpCTTVtZkRTd0lIejRUMDYxMHVYNXNMVXRQWk5HZGEweWtzaXJwQTlJT3VN?= =?utf-8?B?cXFmVUVsaHFlTGttRjF2WnB3WmorcFovRzlKL2VHelpOekhQdjVhZFQ1LzFl?= =?utf-8?B?dkVKV0pRUTlWOEREREswdXNDRmJuaE92OFpHM2JYSUtURWdKdHBtSVZSeVdz?= =?utf-8?B?YlF4aHJpVE8wZWU0aDdETVpZU29qalhiTS8rdXdWVm95a1ZuMm9sYWdBZE9J?= =?utf-8?B?QjBoK3pPV1djNENqem5zSXE1ekN3a1Z4ZGVHZDBvQ0JHSmgrOFB1OWg5bEV1?= =?utf-8?B?N1FkLzlNaGppSDZhaTgvZmRPTVN4cDhzVEE0ZXA1UEthanVQRmRsQ1RLNUZO?= =?utf-8?B?ZXlvMFZNSmdJOE15RGpyVWV0VDNRdG5paGtMODVaWlFlQ3lYNSt0M0NtYnB1?= =?utf-8?B?ejRLVTFsTGJEaDNJaDFRdEcxYUJMd29oZllwdjB4ZGhQSWZCbUtyK3d6U3BY?= =?utf-8?B?dkIrYzBRTzlTUjl5bysrSHRzamF5YmpLanV1TTVvcDFGdG14WU55TnFFRllL?= =?utf-8?B?YUdPaHYvaDMvYlRQclpxRHhiZzgxQzdjeXI4bmNMQk5FWVViTThMeStvYlFh?= =?utf-8?B?ZHBvTlVCWE84MG1XYUxLQjBYcHdna09uNWVhQ1Axc3JDOG14R0g3TVRlOEd3?= =?utf-8?B?S3FIWmJnK1hNM003SHFTN3VOSlZBakdOWkdZVm5wVHdDOU5kSm1XYUloeU9T?= =?utf-8?B?RVJrNGpKYUorNTRMaDBTSG51U2luSlRBZ0pQWDR6UnRtaXhkRzFOa2FDRFZK?= =?utf-8?B?QmtqNWpCMEVDVi9hZU1xOGVwUmhJSkFnRlp1MXpwZmcrQm9tRS9EazAzb2JZ?= =?utf-8?B?OHlvTHVxSjBZMHlXTlpKRzkxSUlBUi9lVzNzSzN3WnExOVlXY2RaZ1F0d2ZU?= =?utf-8?B?Z3BaUEp6dDE2S3B1d2d2SFRJcitoeEdmSHNqUG52akVUL2FjWDFVYWNBa0Z1?= =?utf-8?B?Qmpnb25JTkhnUXZ1NWZRdjYwamtnSG5kZzllamQwS3pocVdya3NUNHFRMWV6?= =?utf-8?B?VzlYWWNVUmFWN2ZEM3dkYjB2Vk1Ybk52SGlCYnN4a1JKdDlOdEd6QnZBS0Vp?= =?utf-8?B?WHlseFFNbXk2Z0xmSk5IdXpLckJXWWNJdVhBR0NhQkpwL24yWGJRUWgwQVZK?= =?utf-8?B?dXdUUXZQZUc1cldBL01pdzJxdktlQ1hlNjZtcEZjZ0p3ZWJGRGZrOTNPUk15?= =?utf-8?B?NVhmWVNQUmJTR3pNaXQ1VE5VN2FvdnVNUWZLRC9YVUNCMldZOTF3cGRQQk8w?= =?utf-8?B?bitMYm54SVBCa3lhTWJJRSsvTExlMCtCZExYTVRBRVRpYml4dGFtYkNNUk0v?= =?utf-8?B?c1lkNGNyRUlIbWxkVWg4bWFabFc5MEhaUktGWHBuK2JsTUxDNjlKK1kvWHE4?= =?utf-8?B?bkNzOUFZcTRDRGFsSXVTMVA3WVBsS2NiRnpGVkw4Wit2Y08yM0lJYmp4UjF4?= =?utf-8?Q?UqtiZqen7apGFJklKgc8511Gw?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: de084ae8-c582-4c1c-89c7-08db0af59a2c X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2023 23:30:17.6816 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +H0JKxGUWIzBzNVkoEeorkabvatFA+1oyruq/qYxlrAgn/vJs2zzzpKMnsyEvpBb X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6481 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 On 2/9/2023 3:07 AM, Chengwen Feng wrote: > The number of xstats may be large, after the hide zero option is added, > only non-zero values can be displayed. > Hi Chengwen, No objection on the functionality, we have similar config option in testpmd too, but I have some question on telemetry side of things: 1) optional parameters, I don't know if there is a defined way to handle this in telemetry but with current method only one optional parameter can be supported and it has to be the last one. In the feature if a new mandatory option required, this changes the user interface. To prevent this, is it possible to use "key=value" syntax, like "/ethdev/xstats,0,hide_zero=true" This way order or existence of multiple options doesn't matter. 2) Where should be this functionality, it is possible to filter out zero values either in dpdk side or telemetry client side. Just for this one I think both options are OK, but if there is a possibility to have multiple and complex filtering, I think that should go to the client side since this is not really task of the dpdk library. > Signed-off-by: Chengwen Feng > --- > lib/ethdev/rte_ethdev.c | 23 +++++++++++++++++------ > 1 file changed, 17 insertions(+), 6 deletions(-) > > diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c > index d25db35f7f..8f79ae45d5 100644 > --- a/lib/ethdev/rte_ethdev.c > +++ b/lib/ethdev/rte_ethdev.c > @@ -5870,20 +5870,28 @@ eth_dev_handle_port_xstats(const char *cmd __rte_unused, > { > struct rte_eth_xstat *eth_xstats; > struct rte_eth_xstat_name *xstat_names; > + char *end_param, *hide_param; > int port_id, num_xstats; > + int hide_zero = 0; > int i, ret; > - char *end_param; > > if (params == NULL || strlen(params) == 0 || !isdigit(*params)) > return -1; > > port_id = strtoul(params, &end_param, 0); > - if (*end_param != '\0') > - RTE_ETHDEV_LOG(NOTICE, > - "Extra parameters passed to ethdev telemetry command, ignoring"); > if (!rte_eth_dev_is_valid_port(port_id)) > return -1; > > + if (*end_param != '\0') { > + hide_param = strtok(end_param, ","); > + if (hide_param == NULL || strlen(hide_param) == 0 || !isdigit(*hide_param)) > + return -EINVAL; > + hide_zero = strtoul(hide_param, &end_param, 0); > + if (*end_param != '\0') > + RTE_ETHDEV_LOG(NOTICE, > + "Extra parameters passed to ethdev telemetry command, ignoring"); > + } > + > num_xstats = rte_eth_xstats_get(port_id, NULL, 0); > if (num_xstats < 0) > return -1; > @@ -5908,9 +5916,12 @@ eth_dev_handle_port_xstats(const char *cmd __rte_unused, > } > > rte_tel_data_start_dict(d); > - for (i = 0; i < num_xstats; i++) > + for (i = 0; i < num_xstats; i++) { > + if (hide_zero != 0 && eth_xstats[i].value == 0) > + continue; > rte_tel_data_add_dict_uint(d, xstat_names[i].name, > eth_xstats[i].value); > + } > free(eth_xstats); > return 0; > } > @@ -6328,7 +6339,7 @@ RTE_INIT(ethdev_init_telemetry) > rte_telemetry_register_cmd("/ethdev/stats", eth_dev_handle_port_stats, > "Returns the common stats for a port. Parameters: int port_id"); > rte_telemetry_register_cmd("/ethdev/xstats", eth_dev_handle_port_xstats, > - "Returns the extended stats for a port. Parameters: int port_id"); > + "Returns the extended stats for a port. Parameters: int port_id, bool hide_zero (Optional, non-zero indicates hide zero xstats)"); > #ifndef RTE_EXEC_ENV_WINDOWS > rte_telemetry_register_cmd("/ethdev/dump_priv", eth_dev_handle_port_dump_priv, > "Returns dump private information for a port. Parameters: int port_id");