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 8E576A0C4B; Thu, 14 Oct 2021 19:17:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 61E2E40041; Thu, 14 Oct 2021 19:17:33 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id 17EE74003C for ; Thu, 14 Oct 2021 19:17:31 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 19EDBpVj014567; Thu, 14 Oct 2021 10:17:30 -0700 Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam08lp2046.outbound.protection.outlook.com [104.47.74.46]) by mx0b-0016f401.pphosted.com with ESMTP id 3bpjk19x8e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 14 Oct 2021 10:17:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E4ziDRtM+BJu8WMVvIF/wYyaH/eWG5UYNivX80ZBRy/wKAhFOpNfoZPJ6qAAeHaOfk+OZIekl5WCnfgrnq8cMJGGem0k12ETEidePe0URfhwpUWZmqJ7p5o6nB0GJqo8Sj7lnhnElHfx8D/S1Kcl65N2v7AG9h4fc11FJqnDcVj7cluzqRfDQj4Xq5aF43feoK6dvs9It/J6PivYtl4wu3HCe45BCV6MqsdoED531CBZfPJyOkDg7hXt2xRgjOs4OZcRSIjPrn71wvIpBlGaq9WK8VlZjmv0Fryq+FXQp9bSvC7auutvnNLCLGcpwx3NMTY7embWrgOj+6vSWRuHHw== 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=OYMFNaJp2QorR5ZQ/Rl4wP67Z5PCHQcuCFT2r105cls=; b=JNzzv7InCj5BP/mnh37WaL4oPCOgWKOablIiffL7K4awdrEbc//i9CDID8jFyn3Hl3MVoBGNipUHyeF4hFOZylRNnVm/JRvIqQivGFjfd68ZKbgys8i5rm8ubZ1hwMUSFicDLDadI+HoMd2Z9Fu4mmg0Zf3MZl09VtGQj0MsPNeQ3W02aiH9kD55U5FMlTpCFRqGgWPkeg8u30xvIZyHD7zPsb4gmlqh8vyeuZsy+Z+U9pmpxJycSAMDu1y/6HJlhA8HK52tC8Xmq4EWyezQa6aSoIfprtH8htx/kl4QKY2xqbo6SpaK415cbdGCDWhOhEvT1s19EqFgewzILTtrwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OYMFNaJp2QorR5ZQ/Rl4wP67Z5PCHQcuCFT2r105cls=; b=kcTUUK87gZO9eMboMSVJ0zIlzQlB9jMoubQtDhlKo9KoImGEfQ+Gm+UojHGJuGCm3fZFe7KsCd0hPBPN7eVjdF0LE5yKJ88VvuRChvX/ISyKWXwU297xHXgiTMNL+I6QgG3YcOM0H6cZAbZeRlW3C7mbmmrkMINP+0v0rj1AMoM= Received: from BN9PR18MB4204.namprd18.prod.outlook.com (2603:10b6:408:119::18) by BN8PR18MB2849.namprd18.prod.outlook.com (2603:10b6:408:a7::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.16; Thu, 14 Oct 2021 17:17:27 +0000 Received: from BN9PR18MB4204.namprd18.prod.outlook.com ([fe80::29f4:8e3d:264f:26b1]) by BN9PR18MB4204.namprd18.prod.outlook.com ([fe80::29f4:8e3d:264f:26b1%8]) with mapi id 15.20.4608.016; Thu, 14 Oct 2021 17:17:27 +0000 From: Harman Kalra To: Harman Kalra , "dev@dpdk.org" , "bruce.richardson@intel.com" , "ciara.power@intel.com" , Anatoly Burakov Thread-Topic: [PATCH v2] eal: add telemetry callbacks for memory info Thread-Index: AQHXvEI3E8HnSW2GYEC5R6aj3OizLavSxiBA Date: Thu, 14 Oct 2021 17:17:27 +0000 Message-ID: References: <20210915095336.105635-1-hkalra@marvell.com> <20211008124407.24738-1-hkalra@marvell.com> In-Reply-To: <20211008124407.24738-1-hkalra@marvell.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9a2d9b5e-45c7-4278-73c5-08d98f367f33 x-ms-traffictypediagnostic: BN8PR18MB2849: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xCoBkznTGNIlE+0qZxS0FB1ko3BFvEKjoHOxHPqlsmibhL9ZcqsuhlB127TJ7xC8Nj2ukEPJVxnGAvQRBGo9Zfy8Dejytqh9AXUWDOFQPyW4cKyBxbL+kV9azoV6sMOAOid9sv87RTLNvoDYuLu8dcDzj8246Cw9ohIi/Ev03KD6hCiCHCShOWWKjW20378HIMreb5VABxkzwKKnJcT4b7JO4lQDp3BVlIQosjGc5ygolKZA2ooTLjsNEAX7TM5kMxfJiV6buLB5vO4itMFVSA48ukgcYqpGblvG8BOsDYo30H8das8lPHj6XuKspw7XIVaBmiYKk8ge8dfo3JL4yFvyIA3Sk1h+YfsQ4kqYvf2laDpCFhQggX6g/EFCiy/ttq3SFDoJXz/b/KChFd7no1dWCCSUaYu9H1gr7Cjd7BDOxawfxkTG5EcvUcCeCtHF8hFs0bKmStAYfGoW12bEahAqFnTlrczAMAflp2fEGWWMnUi0cQSwamL5dgtfF/j27LDHhEG91jM/DRF5xXXeGDoKo0VxcrIYyWyFVRLqyp+qlYp0CSp2H2lPcTOnHmI5SRcw8iuSw0mK8kd+9tUNrCgDTQA/2Objx4oUFQyNkGYKbQXRLfoZXetXpGx9DEyxqzz4Bf+hhTgv3jAp0KDfGCXJp6ohjfZqWCW8QYfbgOGvd0AvJHk05pok/nCcn3SIZbVr3nhlIme5nYXo3XXbMw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR18MB4204.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(83380400001)(33656002)(66946007)(2906002)(38070700005)(64756008)(66446008)(66556008)(66476007)(86362001)(110136005)(26005)(7696005)(186003)(316002)(5660300002)(38100700002)(122000001)(8676002)(508600001)(8936002)(55016002)(9686003)(53546011)(6506007)(52536014)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?aDlYcrJ2mb5mydWXDgiLSRM1mAaPqkj3HIQOfSzn4TD0ZfEeI55730pFjo/9?= =?us-ascii?Q?aZ8ymgQ3MGM+dDmfoUk34xNSMhmNQA7odLDBrEpiRSZW5g6+Lgf61BSk6dLV?= =?us-ascii?Q?LQBt9+3XNueLns112PZ88l2Eb9siI7W6Qrinrmjg1yllWmddDKh0jlBzYxLU?= =?us-ascii?Q?UmjszeREIwM4C1u05IhuBNj7MxBVKCwtdNqE2VwTctxpXyUgcLQymYeK1M6I?= =?us-ascii?Q?ChDQIgl0LQYoiYQOpFEG3tXssb46a7kiCi4M33rdCviUmcz9kHSEvaYJapDK?= =?us-ascii?Q?OMay9f62mKeYrM2T5nTvdWrryqSL1f5WqtLpIwK9nwqoNWD20eY1uX5YwGeS?= =?us-ascii?Q?/g85YxOBoR0zHscjZ2j790e+Pb06lkd0S/8Tkp3YaIWn2VI6Uc2uAIo4K5Am?= =?us-ascii?Q?+Emt/WWj9uzNkKZkxG2bq3frxDN+nCXmJfswnt2hc7+2aeohkRpJvBrTctpi?= =?us-ascii?Q?WWR4VEBmOyhm7KGtPK7whxnALEfBz4i3pANjwRh5d0rTIJD7xIq61ctI9EzT?= =?us-ascii?Q?zakkCmLXvI5rYNHmH60xyXrbLsRys64o1EvmWiV8QwovoHOJPx6MYNVEGvzE?= =?us-ascii?Q?vrAVqiSpg7ok5e+gnufI3l4q1/7WlxbkiOhvVA5qNyJnZuHMHJ2rtVcyIJ1l?= =?us-ascii?Q?AelTAdBB6hae/rczstSq3NPfpGvDzO47kexd9XF5vrli4rTn9x23EoFt6m1b?= =?us-ascii?Q?IDffganWvr6EH+dtmnjFArYsuyNcWTHdzzVFnulR7a+KqJIrkld6S6brf1hr?= =?us-ascii?Q?jQqFRV8QUbdmDZZcjB7s9CA6xU/1hLlv66Xfhat3/hHYiLz4zyP/dF0BUkPS?= =?us-ascii?Q?5XHFGXFGXkHdJOxAyR6c7gHKuagMUuqojhvnyZ/8RRzAFaJqitp9oxzfMjjj?= =?us-ascii?Q?ngfwjVY86+Xh0bo551Haj0x4Rl/ZVl9E/ZgCyoOcBMNC7BA0vKmcfGd049j4?= =?us-ascii?Q?ZNrlEiR4wmNeAD4gSE8EOhkEIK9+ji288ap/yntDBGLZBpl8fmP2pN0R/0iD?= =?us-ascii?Q?lFRvdjy9lxOrzVp2SClZBV5baYlfwZ4bkjNkcB4lhaOp4hEX6nUV0xt1FWfr?= =?us-ascii?Q?5uzkrc7OMQfP1TWbm76mVZusMSlrScIc07r0wzZt3x0NXS2cHiJHyOkQI/li?= =?us-ascii?Q?RL5G1u/DhxHXmLx/nlWGuyK+W/ZsfTJVhMSznmXjmTme+uoXaKXNML+o2FRE?= =?us-ascii?Q?4aOFn1gVzO0hE8g2tztRubYXlrcVmZQrgtTgSHCDsBlM2OHAZXvkNiEustNG?= =?us-ascii?Q?whh4iOLexC9xMjEpNy3Nw2CU2fLoJLn+I+a6tXTwiE0hGJFoN7ZsMfF0avMY?= =?us-ascii?Q?EaaVejoHjpvIJj+ybHrLiArG?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR18MB4204.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a2d9b5e-45c7-4278-73c5-08d98f367f33 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Oct 2021 17:17:27.3605 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6xKU+iV22vkOcg42+3tOhaEbykG7rI6M77tmU9VIdulgvwPVUzemGscjsbGJb3aYBj8dPov3HM+NXZmxBk0OoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR18MB2849 X-Proofpoint-ORIG-GUID: b2GvUaLqW7MFViac10MnVsLAEUF7BjUY X-Proofpoint-GUID: b2GvUaLqW7MFViac10MnVsLAEUF7BjUY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.182.1,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475 definitions=2021-10-14_09,2021-10-14_02,2020-04-07_01 Subject: Re: [dpdk-dev] [PATCH v2] eal: add telemetry callbacks for memory info 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" Ping... > -----Original Message----- > From: Harman Kalra > Sent: Friday, October 8, 2021 6:14 PM > To: dev@dpdk.org; bruce.richardson@intel.com; ciara.power@intel.com; > Anatoly Burakov > Cc: Harman Kalra > Subject: [PATCH v2] eal: add telemetry callbacks for memory info >=20 > Registering new telemetry callbacks to list named (memzones) and unnamed > (malloc) memory reserved and return information based on arguments > provided by user. >=20 > Example: > Connecting to /var/run/dpdk/rte/dpdk_telemetry.v2 > {"version": "DPDK 21.11.0-rc0", "pid": 59754, "max_output_len": 16384} > Connected to application: "dpdk-testpmd" > --> > --> /eal/memzone_list > {"/eal/memzone_list": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]} > --> > --> > --> /eal/memzone_info,0 > {"/eal/memzone_info": {"Zone": 0, "Name": "rte_eth_dev_data", \ > "Length": 225408, "Address": "0x13ffc0280", "Socket": 0, "Flags": 0, \ > "Hugepage_size": 536870912, "Hugepage_base": "0x120000000", \ > "Hugepage_used": 1}} > --> > --> > --> /eal/memzone_info,6 > {"/eal/memzone_info": {"Zone": 6, "Name": "MP_mb_pool_0_0", \ > "Length": 669918336, "Address": "0x15811db80", "Socket": 0, \ > "Flags": 0, "Hugepage_size": 536870912, "Hugepage_base": "0x140000000", \ > "Hugepage_used": 2}} > --> > --> > --> /eal/memzone_info,14 > {"/eal/memzone_info": null} > --> > --> > --> /eal/heap_list > {"/eal/heap_list": [0]} > --> > --> > --> /eal/heap_info,0 > {"/eal/heap_info": {"Head id": 0, "Name": "socket_0", \ > "Heap_size": 1610612736, "Free_size": 927645952, \ > "Alloc_size": 682966784, "Greatest_free_size": 529153152, \ > "Alloc_count": 482, "Free_count": 2}} >=20 > Signed-off-by: Harman Kalra > --- > v2: > - Reimplemented the patch which is aligned with the telemetry ideology = i.e. > perform read operations to fetch the info with no changes to filesystem. > - Fixed windows build failure. >=20 > --- > lib/eal/common/eal_common_memory.c | 173 > +++++++++++++++++++++++++++++ > 1 file changed, 173 insertions(+) >=20 > diff --git a/lib/eal/common/eal_common_memory.c > b/lib/eal/common/eal_common_memory.c > index f83b75092e..616db5ce31 100644 > --- a/lib/eal/common/eal_common_memory.c > +++ b/lib/eal/common/eal_common_memory.c > @@ -20,6 +20,9 @@ > #include > #include > #include > +#ifndef RTE_EXEC_ENV_WINDOWS > +#include > +#endif >=20 > #include "eal_memalloc.h" > #include "eal_private.h" > @@ -1102,3 +1105,173 @@ rte_eal_memory_init(void) > rte_mcfg_mem_read_unlock(); > return -1; > } > + > +#ifndef RTE_EXEC_ENV_WINDOWS > +#define EAL_MEMZONE_LIST_REQ "/eal/memzone_list" > +#define EAL_MEMZONE_INFO_REQ "/eal/memzone_info" > +#define EAL_HEAP_LIST_REQ "/eal/heap_list" > +#define EAL_HEAP_INFO_REQ "/eal/heap_info" > +#define ADDR_STR 15 > + > +/* Telemetry callback handler to return heap stats for requested heap > +id. */ static int handle_eal_heap_info_request(const char *cmd > +__rte_unused, const char *params, > + struct rte_tel_data *d) > +{ > + struct rte_mem_config *mcfg =3D rte_eal_get_configuration()- > >mem_config; > + struct rte_malloc_socket_stats sock_stats; > + struct malloc_heap *heap; > + unsigned int heap_id; > + > + if (params =3D=3D NULL || strlen(params) =3D=3D 0) > + return -1; > + > + heap_id =3D (unsigned int)strtoul(params, NULL, 10); > + > + /* Get the heap stats of user provided heap id */ > + heap =3D &mcfg->malloc_heaps[heap_id]; > + malloc_heap_get_stats(heap, &sock_stats); > + > + rte_tel_data_start_dict(d); > + rte_tel_data_add_dict_int(d, "Head id", heap_id); > + rte_tel_data_add_dict_string(d, "Name", heap->name); > + rte_tel_data_add_dict_u64(d, "Heap_size", > + sock_stats.heap_totalsz_bytes); > + rte_tel_data_add_dict_u64(d, "Free_size", > sock_stats.heap_freesz_bytes); > + rte_tel_data_add_dict_u64(d, "Alloc_size", > + sock_stats.heap_allocsz_bytes); > + rte_tel_data_add_dict_u64(d, "Greatest_free_size", > + sock_stats.greatest_free_size); > + rte_tel_data_add_dict_u64(d, "Alloc_count", sock_stats.alloc_count); > + rte_tel_data_add_dict_u64(d, "Free_count", sock_stats.free_count); > + > + return 0; > +} > + > +/* Telemetry callback handler to list the heap ids setup. */ static int > +handle_eal_heap_list_request(const char *cmd __rte_unused, > + const char *params __rte_unused, > + struct rte_tel_data *d) > +{ > + struct rte_mem_config *mcfg =3D rte_eal_get_configuration()- > >mem_config; > + struct rte_malloc_socket_stats sock_stats; > + unsigned int heap_id; > + > + rte_tel_data_start_array(d, RTE_TEL_INT_VAL); > + /* Iterate through all initialised heaps */ > + for (heap_id =3D 0; heap_id < RTE_MAX_HEAPS; heap_id++) { > + struct malloc_heap *heap =3D &mcfg->malloc_heaps[heap_id]; > + > + malloc_heap_get_stats(heap, &sock_stats); > + if (sock_stats.heap_totalsz_bytes !=3D 0) > + rte_tel_data_add_array_int(d, heap_id); > + } > + > + return 0; > +} > + > +/* Telemetry callback handler to return memzone info for requested > +index. */ static int handle_eal_memzone_info_request(const char *cmd > +__rte_unused, > + const char *params, struct rte_tel_data *d) { > + struct rte_mem_config *mcfg =3D rte_eal_get_configuration()- > >mem_config; > + struct rte_memseg_list *msl =3D NULL; > + int ms_idx, ms_count =3D 0; > + void *cur_addr, *mz_end; > + struct rte_memzone *mz; > + struct rte_memseg *ms; > + char addr[ADDR_STR]; > + unsigned int mz_idx; > + size_t page_sz; > + > + if (params =3D=3D NULL || strlen(params) =3D=3D 0) > + return -1; > + > + mz_idx =3D strtoul(params, NULL, 10); > + > + /* Get the memzone handle using index */ > + mz =3D rte_fbarray_get(&mcfg->memzones, mz_idx); > + > + rte_tel_data_start_dict(d); > + rte_tel_data_add_dict_int(d, "Zone", mz_idx); > + rte_tel_data_add_dict_string(d, "Name", mz->name); > + rte_tel_data_add_dict_int(d, "Length", mz->len); > + snprintf(addr, ADDR_STR, "%p", mz->addr); > + rte_tel_data_add_dict_string(d, "Address", addr); > + rte_tel_data_add_dict_int(d, "Socket", mz->socket_id); > + rte_tel_data_add_dict_int(d, "Flags", mz->flags); > + > + /* go through each page occupied by this memzone */ > + msl =3D rte_mem_virt2memseg_list(mz->addr); > + if (!msl) { > + RTE_LOG(DEBUG, EAL, "Skipping bad memzone\n"); > + return -1; > + } > + page_sz =3D (size_t)mz->hugepage_sz; > + cur_addr =3D RTE_PTR_ALIGN_FLOOR(mz->addr, page_sz); > + mz_end =3D RTE_PTR_ADD(cur_addr, mz->len); > + > + ms_idx =3D RTE_PTR_DIFF(mz->addr, msl->base_va) / page_sz; > + ms =3D rte_fbarray_get(&msl->memseg_arr, ms_idx); > + > + rte_tel_data_add_dict_int(d, "Hugepage_size", page_sz); > + snprintf(addr, ADDR_STR, "%p", ms->addr); > + rte_tel_data_add_dict_string(d, "Hugepage_base", addr); > + > + do { > + /* advance VA to next page */ > + cur_addr =3D RTE_PTR_ADD(cur_addr, page_sz); > + > + /* memzones occupy contiguous segments */ > + ++ms; > + ms_count++; > + } while (cur_addr < mz_end); > + > + rte_tel_data_add_dict_int(d, "Hugepage_used", ms_count); > + > + return 0; > +} > + > +static void > +memzone_list_cb(const struct rte_memzone *mz __rte_unused, > + void *arg __rte_unused) > +{ > + struct rte_mem_config *mcfg =3D rte_eal_get_configuration()- > >mem_config; > + struct rte_tel_data *d =3D arg; > + int mz_idx; > + > + mz_idx =3D rte_fbarray_find_idx(&mcfg->memzones, mz); > + rte_tel_data_add_array_int(d, mz_idx); } > + > + > +/* Telemetry callback handler to list the memzones reserved. */ static > +int handle_eal_memzone_list_request(const char *cmd __rte_unused, > + const char *params __rte_unused, > + struct rte_tel_data *d) > +{ > + rte_tel_data_start_array(d, RTE_TEL_INT_VAL); > + rte_memzone_walk(memzone_list_cb, d); > + > + return 0; > +} > + > +RTE_INIT(memory_telemetry) > +{ > + rte_telemetry_register_cmd( > + EAL_MEMZONE_LIST_REQ, > handle_eal_memzone_list_request, > + "List of memzone index reserved. Takes no > parameters"); > + rte_telemetry_register_cmd( > + EAL_MEMZONE_INFO_REQ, > handle_eal_memzone_info_request, > + "Returns memzone info. Parameters: int mz_id"); > + rte_telemetry_register_cmd( > + EAL_HEAP_LIST_REQ, handle_eal_heap_list_request, > + "List of heap index setup. Takes no parameters"); > + rte_telemetry_register_cmd( > + EAL_HEAP_INFO_REQ, > handle_eal_heap_info_request, > + "Returns malloc heap stats. Parameters: int > heap_id"); } #endif > -- > 2.18.0