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 2808FA0508; Mon, 4 Apr 2022 17:34:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D19454281A; Mon, 4 Apr 2022 17:34:29 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 3F4194068C for ; Mon, 4 Apr 2022 17:34:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1649086468; x=1680622468; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=ZVzDO65WSSHGMF/qYRd/Wf0O9g0kbYaiYPllQR/W8vA=; b=R0YiL71n0Uby/w0eUEijZkRPAXhNn34OriW6e5yenMISAeVdTWHxJH0F bd+lB4ozgtaJ8IpJBEQ9CovWwjTIUtLweCFlnmjlBF+Yvw7rkLx+DGgtW bU4T71ZrUlaENYbzGa70e4wS6aXbxOrZQx9x0Fs75aIiE0EFLk0nS36Wi 63jMN2RPo81GPUUyt02/14setxaDeTG65nTDFsOZjROnomRKC8t5qRqIy EaIrhmx/lCSt+YAVR2CqcOBPHMcxFwTvsEOTurJIZeu4r/X/Gl0So8g8j WD4C4y9usWPbc78LRJfS8KplrtGP19IVGAESJ8PssIwnnswRk6U4O33Jb A==; X-IronPort-AV: E=McAfee;i="6200,9189,10307"; a="242684217" X-IronPort-AV: E=Sophos;i="5.90,234,1643702400"; d="scan'208";a="242684217" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Apr 2022 08:34:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,234,1643702400"; d="scan'208";a="548698506" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga007.jf.intel.com with ESMTP; 04 Apr 2022 08:34:27 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 4 Apr 2022 08:34:26 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 4 Apr 2022 08:34:26 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.177) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Mon, 4 Apr 2022 08:34:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CMezwYF1mBZ+3xKdfzTz0ByPffkmD2cQXkH+/IkZItsN7VJFTL0u4HY0lBl0Kfs+T4uydCPSNUFrH1V1v8F4UdpUhsDzxf5WTgCgmWns80va0CUkUTpE5ofLeFYG+XuSQgsmDz/m0hXDOBeYxNhxDcqJTyd/CXFfdLFGg1YuIPgx3pcRD80U6FguAykItWBK/LlZCSgmB4rDcZtXd0gAfVfCBEMcKAKach+6LKtL+aCinrOWfa52JvDkQathl/rBGNHNtSQ76HyQTLW3EA7dMmDLyf3aMkZpZiSMqESzri2tktrVqPdRR0tCGBwP8qMIxSj6T0HWNIzJBKnmNILWvw== 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=L1zBu47EHA+7D6Hmmbky0Z7TEQt9d/7dn7yMNfp79Fw=; b=Ar2NQB1TwN7EnpoeYWPteeZ/kIaxSLufXwnYrB5834YUB4whkXjBPIZscpHbfXQDZ1chpo70H2bRfSr+1jMEzSyMMd5q7/wOclOV3WImzDkCb166NMlHq0QbDI9l6JXeWvLkCDNb4TAWZTbEI2t+uD1jHZvcX8/wYm80fUY3pDnYmNKqYzp29Q3sD0+8J6SVyqMxVsJFaq0AX/iHCf7PMR2OY1iDFLwDaCtnGYAHLUKhl2VodFGNX1U6xw6hFLmje4OMmzRfprFmmYL7Zi1h5NBwi5iBb3T7uLaJV5xk6/NJ8ITz363v1SITZ8quFn7+vfvW0xrVjgWhArE26OVSZQ== 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 Received: from DM6PR11MB3516.namprd11.prod.outlook.com (2603:10b6:5:72::13) by MWHPR1101MB2173.namprd11.prod.outlook.com (2603:10b6:301:5a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.31; Mon, 4 Apr 2022 15:34:24 +0000 Received: from DM6PR11MB3516.namprd11.prod.outlook.com ([fe80::25dc:db63:f5a9:708d]) by DM6PR11MB3516.namprd11.prod.outlook.com ([fe80::25dc:db63:f5a9:708d%4]) with mapi id 15.20.5123.031; Mon, 4 Apr 2022 15:34:24 +0000 From: "Zhang, Yuying" To: "Zhang, Ke1X" , "Li, Xiaoyun" , "Singh, Aman Deep" , "dev@dpdk.org" Subject: RE: [PATCH v3] app/testpmd: fix issue with memory leaks when quit testpmd Thread-Topic: [PATCH v3] app/testpmd: fix issue with memory leaks when quit testpmd Thread-Index: AQHYQCQRDzG/h2PuG0eMZ5TzQJwdBazf8Nnw Date: Mon, 4 Apr 2022 15:34:24 +0000 Message-ID: References: <20220314055252.392004-1-ke1x.zhang@intel.com> <20220325083555.422962-1-ke1x.zhang@intel.com> In-Reply-To: <20220325083555.422962-1-ke1x.zhang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 395e550a-b62a-4bfc-7478-08da165098c5 x-ms-traffictypediagnostic: MWHPR1101MB2173: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: UoPrlWlDELcQLn4M71I4NQAflrmzX9ON6ivOGok8644LhZTani7aeFHMBjygB0XGCcUyXBav67Y5gIh36ia8d+zpBZPnUynDsXqfBBKZyXVfGzclGRI1BWrpUXu8DhQECiF4G0bNmgvSefkFRyOxvvdjuEMbbgJgQmjXmS5O+Hqma8C6iUaCkBTykCJr1gF22853V8nxYo5yylIDoKr/N4w2PNUUyl7GcxEbXqEDIBtr/WdGrMeYTi2zMSyBRwnYUrwjyqVozxws/Thix+87JCPmiAM4/Zr4DzpZSpvQTy4/tpjeP2A8LK+kcbqf8tzbvu+IjPdvrxosobN3U5T+0+ZwaRi59BcenQ9RBTOj5dCdV96GdWqpGO1RnWOZ8d4P+zyeeZvCE4Lt+16+BDbM9/SjdIduNL2vI4T8xbOiEJpbFh8Y0vsaPT2Ap5UC5rCwRHUuyWiWJW5e5CcHNlB9bofwO02lp2B7hi3GvOSjzRdwqrtsFHQp1LLSHF93KyF3+gFVialZ387ED+3y7cSM/Sp+qJ7gH99fn6C3c+dnatRKxxkGWFLKHHHExQo9WT5xx4kDWS0+s/hF4B660uSib3ZK20b5XIN//yY0VVlC5FsdKeRouQTTbaG211CcpHV0wPCGV80/ow13gIm6q3NxfOW85uETBZy2HVcOP87C5/Z/LYaKGjYIlOiQzzr2jhjXO0VaYkmj6KYvROcC9Lhwyg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3516.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(38100700002)(2906002)(508600001)(5660300002)(55016003)(33656002)(8936002)(38070700005)(26005)(186003)(83380400001)(66476007)(8676002)(76116006)(82960400001)(316002)(66946007)(66556008)(86362001)(110136005)(52536014)(64756008)(66446008)(7696005)(53546011)(6506007)(71200400001)(122000001)(9686003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Y3A12cy/orPHWJnpzExf/bXyyW0Ns7MqiMp6OTeInLO4euJn2aEdxZ82YxIe?= =?us-ascii?Q?AVwKnSZrd9PpcJPkCLpdf7tRdcQgEEQ5jYE3jfwNBeDwaejwc+RsYKR2LfVc?= =?us-ascii?Q?zBVZx2Pz6nJDzbX48UOcGLr8dH1qHQlZ4j2GSWdXSxU5QR2FG42XjMCbJLY4?= =?us-ascii?Q?CZmTt+vPLpRRC9pU8eobOlaCEUGB9HuFO93+Z/DDHp30Ph5x155KCu4a2As0?= =?us-ascii?Q?MScNDmaC5IM23Wlakr/VB/D/kMy82EyP3kB5DUebXOq4gRwA66tnwhN/kRYF?= =?us-ascii?Q?C9btFKQqdSUc4rHHXkH59KoshlVMhTZaOXxUaSXzdzz3wAPoR47a5Q4syf/6?= =?us-ascii?Q?GZnHK4FVuAkG+C+s9Ib+zKrUtCxb3/6tkABEAhBG9MDg1Kyb4lHS7vyjAGeA?= =?us-ascii?Q?89W5m4tw34BfQdWIucaeJYPxECOvNF12wgo8y9DTjrejamo12MJx5Y6dYc/w?= =?us-ascii?Q?gM10RZXTIJLQNix5DguP1CtJSSpGcc/JJQmCxaWXiJ/PPiHtnjyhDyPvK6Kq?= =?us-ascii?Q?0LtPa6uDuuNDwsUIkQiacZXsQZwslWQxIVPhkwB1dyoZcD4sWVA/XNavlO59?= =?us-ascii?Q?lv9np1L1AOepsQzChVD9lvfTDk3MyEhvUXfEoesqxl6EubW+qKTdZoKUwND4?= =?us-ascii?Q?GffUFApq8eGtNPbgKqy1Xiwgxd0kfcArj/XJBBmima/a7yJ4JFAQ8eqjbb5z?= =?us-ascii?Q?cift/iJDRXeQCF79i/1kFb9vGcceh6SwGDN+bYiL2Dj3OyECKdW1daXnaoCc?= =?us-ascii?Q?h6OL3C3qzK1kPaO3HEPObM+jDe+Wqy701zIOTdeAUWgytTsVlC/UYRmGFB06?= =?us-ascii?Q?Blj2ipuqFWGYoNzc2KuEXeldKYrISjIRIoOcVO24e9udt9Ptu/DiK69AEMjb?= =?us-ascii?Q?+Nij/vQH9b+giw+pK+UtjtNG8L35CXle7zR0+xLE0IOjK7YaCM6YoFSa3dlB?= =?us-ascii?Q?mc8dYTN510kgSdI+E0OkBhTP4VG5udaNqTkZlEN1Mww6vFApWchuFsRTso5U?= =?us-ascii?Q?k18NUkb/6ShonsYBFWL1ZLzY/0Knnh7gKZ6NAbtVM3EjTXy4zTV1OmQOku3z?= =?us-ascii?Q?dsnqReZrnJBlqL/bfgz8EsFavOsBx784DH2es1SwQZi1MprZZKiwLOC1E5oK?= =?us-ascii?Q?h9YOz5WfGvqxEPvDlhpCmhhnqkVO7iVSSoQiJttqCZx3tPUuLtmPUEC0PnAY?= =?us-ascii?Q?w5VIalfc4vd96oWqWo1+muPE1EwJC/EWGkzi5aWFXmhOz0fneUrWTTr7OA1N?= =?us-ascii?Q?Jh1qF6d4xXDrcWIB5zQzUDb9jINMozZj8KKK4WqAqKsN9M66DdPBN02j+108?= =?us-ascii?Q?4G8Uow5Sd2hpBfY1cmLcnqjo0yuUsoqki8pPxxFvfz8oF11WgamiZVt2+XuQ?= =?us-ascii?Q?nV80spTy4CCwElNiZAqAuYxF3ApVNbFz79cPuHSWuGF91oC59OQG8QPFLjog?= =?us-ascii?Q?+pNPdEceAS5ex1BiPS06Mt7xOhTz4mbW6fYK5Hlb2J+cQsgZ3cpHCsp7I6RM?= =?us-ascii?Q?FwVRtAomPrZvEnceptZlNAb9hcCESaOPvrKvSelRiytnVdyIxxvNcxagDUq2?= =?us-ascii?Q?mGa4eUMZLV8G/e/AWtMsRykJACLf0yJYtK+OBwzvh0KWbkTXm4anPKis/twb?= =?us-ascii?Q?TvlxnYW6lGRyjSZ+lpkojo4n05ptMMy2g98rYUp1oRAiFoIYZlC7dRzNijuD?= =?us-ascii?Q?ioBxM5tixuK0TrEP3dBwPi+tWgN5Kk3kS45dzl/djoQCWARdNbuMr9faXNlW?= =?us-ascii?Q?tXJQkCL9bA=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3516.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 395e550a-b62a-4bfc-7478-08da165098c5 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Apr 2022 15:34:24.1524 (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: gu8XTak7XMCY0Tw66nDih5E/sMH8n8V+VXZRR6chhsgYD6ncmlWz28+4kRj0n2oDlgWwNavk5Kk1MfwWU1RljA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2173 X-OriginatorOrg: intel.com 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 Hi Ke, > -----Original Message----- > From: Zhang, Ke1X > Sent: Friday, March 25, 2022 4:36 PM > To: Li, Xiaoyun ; Singh, Aman Deep > ; Zhang, Yuying ; > dev@dpdk.org > Cc: Zhang, Ke1X > Subject: [PATCH v3] app/testpmd: fix issue with memory leaks when quit > testpmd >=20 > A multicast address pool is allocated for a port when using mcast_addr > testpmd commands. >=20 > When closing a port or stopping testpmd, this pool was not freed, resulti= ng in > a leak.This issue has been caught using ASan. >=20 > Free this pool when closing the port. >=20 > Error info as following: > ERROR: LeakSanitizer: detected memory leaksDirect leak of > 192 byte(s) > 0 0x7f6a2e0aeffe in __interceptor_realloc > (/lib/x86_64-linux-gnu/libasan.so.5+0x10dffe) > 1 0x565361eb340f in mcast_addr_pool_extend > ../app/test-pmd/config.c:5162 > 2 0x565361eb3556 in mcast_addr_pool_append > ../app/test-pmd/config.c:5180 > 3 0x565361eb3aae in mcast_addr_add > ../app/test-pmd/config.c:5243 >=20 > Signed-off-by: Ke Zhang Acked-by: Yuying Zhang > --- > app/test-pmd/config.c | 19 +++++++++++++++++++ app/test- > pmd/testpmd.c | 1 + app/test-pmd/testpmd.h | 1 + > 3 files changed, 21 insertions(+) >=20 > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index > cc8e7aa138..a6fa9be3ef 100644 > --- a/app/test-pmd/config.c > +++ b/app/test-pmd/config.c > @@ -5978,6 +5978,25 @@ mcast_addr_pool_remove(struct rte_port *port, > uint32_t addr_idx) > sizeof(struct rte_ether_addr) * (port->mc_addr_nb - > addr_idx)); } >=20 > +int > +mcast_addr_pool_destroy(portid_t port_id) { > + struct rte_port *port; > + > + if (port_id_is_invalid(port_id, ENABLED_WARN) || > + port_id =3D=3D (portid_t)RTE_PORT_ALL) > + return -EINVAL; > + port =3D &ports[port_id]; > + > + if (port->mc_addr_nb !=3D 0) { > + /* free the pool of multicast addresses. */ > + free(port->mc_addr_pool); > + port->mc_addr_pool =3D NULL; > + port->mc_addr_nb =3D 0; > + } > + return 0; > +} > + > static int > eth_port_multicast_addr_list_set(portid_t port_id) { diff --git a/app/t= est- > pmd/testpmd.c b/app/test-pmd/testpmd.c index fe2ce19f99..1861a02c2f > 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -3137,6 +3137,7 @@ close_port(portid_t pid) > } >=20 > if (is_proc_primary()) { > + mcast_addr_pool_destroy(pi); > port_flow_flush(pi); > port_flex_item_flush(pi); > rte_eth_dev_close(pi); > diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index > 31f766c965..daa3c08317 100644 > --- a/app/test-pmd/testpmd.h > +++ b/app/test-pmd/testpmd.h > @@ -965,6 +965,7 @@ int port_flow_create(portid_t port_id, int > port_action_handle_query(portid_t port_id, uint32_t id); void > update_age_action_context(const struct rte_flow_action *actions, > struct port_flow *pf); > +int mcast_addr_pool_destroy(portid_t port_id); > int port_flow_destroy(portid_t port_id, uint32_t n, const uint32_t *rule= ); int > port_flow_flush(portid_t port_id); int port_flow_dump(portid_t port_id, > bool dump_all, > -- > 2.25.1