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 6A2F5A0C47; Tue, 6 Jul 2021 14:41:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2A09941262; Tue, 6 Jul 2021 14:41:38 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id 2BFA84120E; Tue, 6 Jul 2021 14:41:35 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10036"; a="196272361" X-IronPort-AV: E=Sophos;i="5.83,328,1616482800"; d="scan'208";a="196272361" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2021 05:41:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,328,1616482800"; d="scan'208";a="563006147" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga001.fm.intel.com with ESMTP; 06 Jul 2021 05:41:34 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 6 Jul 2021 05:41:34 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 6 Jul 2021 05:41:33 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Tue, 6 Jul 2021 05:41:33 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.49) 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.4; Tue, 6 Jul 2021 05:40:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=evfDY/z4oSkxJLuxBdl+6xAkkHDfq3myX/y4J8MfEjnUxuVuraHlw92oKC7k6s+VI5z9bJ3adE2TqiPZi4UH1WdCMyIdxtbJ6KIoxrKrpp5P0E9ef/clWRvCG91bQynSQqmxKjLI78viAOkJ2dqYVN/YnXiVVajDCPYe2CULcTlhdQ5OlxOSufxdzXplkUzpGo20FE/X0sRpyDc9SRnDewhJds3PCIl2X3UIHE9+ylczqOeJtZuog6va8UAU581U4rdxu3c0LSm3WHCc+8VnE0a+BRn0rO5RJE8mHH7+LNaynlqRDiDJJQarXQMlWoQRBDPibm0l13QN/3kCSNJQBg== 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-SenderADCheck; bh=l2pQS+SuzrwCbAMpma9ncrIF+EWsYTQzS6YXVrL44+4=; b=QgkyRvgQT9WcsmLXNHcYG1BWXjE2ULP4KD1J+o1sy5xQU4ZIuvNRIAg6tsWTTxAVlOcXCP7FemNc+3Nk4LY4FUag1HcIob33IXHNbjlPt2RwrC8yB2MlPLO+QHkwUxuM2cH6TlkfQuZs7gKXmzn2Zm6LQsfv+vzPcZn05BXYcvFxE1r96x8sUqEwqTLRmtw0nKZuvl9Xz2wGxmJNrv4itLYDn7DhT+SCNT1MvhQY+7v5qqB/YnmzpmWFmWC7XfvgFc9WM3TSnx4v2Ggx+e0wjeq0CYue1tnxXEULgir/0XyBvja96LuKeQDOYHDGvZAO+NBQAUol5QzhCP98634Aow== 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=l2pQS+SuzrwCbAMpma9ncrIF+EWsYTQzS6YXVrL44+4=; b=RpeGcGMpAhVkPiiq2FZudYx+sDsMP9T+TyZlusywFVdaDQScg1wPz9Zf0zHXXTIEj00AReGKgVPt+5pOlnTaSbUNiuCTnIutvCQFIZsdJAGEuMQOjpJtc1quZO7Pii3QBxAY0GXtLKShXjTKDW6Q8piuHybY1D1QePlPrQ2dSDk= Received: from BN8PR11MB3795.namprd11.prod.outlook.com (2603:10b6:408:82::31) by BN0PR11MB5742.namprd11.prod.outlook.com (2603:10b6:408:162::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.23; Tue, 6 Jul 2021 12:40:38 +0000 Received: from BN8PR11MB3795.namprd11.prod.outlook.com ([fe80::8807:6661:e425:102]) by BN8PR11MB3795.namprd11.prod.outlook.com ([fe80::8807:6661:e425:102%7]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 12:40:37 +0000 From: "Wang, Haiyue" To: David Marchand , "dev@dpdk.org" CC: "stable@dpdk.org" , "Yang, Qiming" , "Zhang, Qi Z" , "Stillwell Jr, Paul M" Thread-Topic: [PATCH] net/ice: fix memzone leak when firmware is missing Thread-Index: AQHXckTjaLMByeu6FUicvxa452/Jh6s14vJg Date: Tue, 6 Jul 2021 12:40:37 +0000 Message-ID: References: <20210706085643.5088-1-david.marchand@redhat.com> In-Reply-To: <20210706085643.5088-1-david.marchand@redhat.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.0.76 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: cb3f8f54-b939-4ce9-aead-08d9407b41d9 x-ms-traffictypediagnostic: BN0PR11MB5742: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 77lsSijyuC5W9kOcCp9D5uMAU1mW/C3k3G32mcAdT6FAR/OUHl8bqUgt3GhQplTCwbV8zEuD0a5EzGRllBgVfHcZYuIbIWg5pbrSObYJtlGtfYZpE3Pc/mKYPV3gZ/sit7I4s5PJ0CyvDOBwi4fDRU0FkWQXtUn4tDdnlcZKs8HzE5fyMpMWtYBBIHosF7S/RedI4Nl7DQH6f8zMapKSF8Jz9dL2kYQVm1jAk+8BKON55fxyxPk5VCHotKbnt2I6JPuGaiHuYG3PwkU+PfWPspwI+TXx/ToBlurU2+S7Wj/TTH6PRkoImGjdB2lHk8f5Yn97Lj3bzGq3/2/dDeh8CaHnSwD4Ug8D6mnBV+LgMqcL0Zpxm8Pk/JTizJJyO6uNzkf6hRbOTALCA8vl/itgy5IHhSTlP6sKy1ItUi4gsh7gI/EKYRcmH4qtWAEz2EUWIYsxwljlR+tFyWe/oLeeRpuyZhPOVbLOhOeNvxRYiq51W9wUVf2qOjDxg+lHfA+kBhibH/RsT4HZ13+UK4STZxBOyCeaHqm1NLTeJHEBbCA8flD0QKQXFQG8/3BM31ToG1aT65w4Pdv362h6g4FufM9FMsgGOgcOCXhOC4l5xE6XC9KJ6KMiWbz3bG/ITZ9yS8beS8A++h8mqklQcbWfqUhfFwhPKG9TFEU2YnyyjnJyHfuc/NJeqACcf8D6Ss4e9B4c6FrcoljjWcSmK2Gt5xCyVNbZw1iPRul6PrKo6yg= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN8PR11MB3795.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(346002)(366004)(376002)(136003)(39860400002)(4326008)(110136005)(107886003)(8676002)(71200400001)(54906003)(55016002)(8936002)(83380400001)(33656002)(316002)(7696005)(38100700002)(86362001)(76116006)(9686003)(53546011)(66556008)(186003)(966005)(66476007)(66946007)(64756008)(66446008)(478600001)(52536014)(6506007)(2906002)(5660300002)(26005)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?s1khm8s+Rq17/RThVYZ8JoDQX/lKmAY/Rtnd1Lpd0nuppn7sOX/AtX2abD7g?= =?us-ascii?Q?KnQ0id5Fr4DwtLhbFPob5ANZ97DabcBDpMisahdXoMHpLFUirCusZW5XPWC5?= =?us-ascii?Q?aaDM4WvNvph+VastZ4Syj94/B21EsBCwXbh5ob1l1SGB3IIAabgIfF+0Hf43?= =?us-ascii?Q?+unAs1Y2xbK8iV5Fs5zGFADKgEfcfA23+3k5alRem0bVVMVQ0A7X69WJxP/O?= =?us-ascii?Q?RbBPnA+LTN7pJtxUvD6KE4RaYkosIXwQ2uaPy0V70OKDel6fhuY6FdMRO9fp?= =?us-ascii?Q?PrfuD5+sZL+ZU1hLHsPie0+9viKUXYW9pQqvtZZMx+Ypd+jaMdOwCD/apZwu?= =?us-ascii?Q?/OahfmY+vMgCnr6QW+n0cVwao85HBrU9Lid12jRDy7Dn4naiVcIGjUEXfdaq?= =?us-ascii?Q?5Jt0T1M3xRIfUEx7SNdzpSqF4u9mwjzqvwB1dsBSX+G6KvyvS+TmD2uwo7Yg?= =?us-ascii?Q?UCzhnMR5eAdBY8zJ8DjQ0ikBN0vrATFoZU4zoImGbG1m5xpJa93IbRjfD9mM?= =?us-ascii?Q?H/db3erpAz1q1/UKOuHp/DmIc/NyU6UQKmw5m++dh9gzAeV31AyJyTFgfBzm?= =?us-ascii?Q?36QDt03extHb/rnXqTJ31mas17DL7ZIGgIVxMnVPxN8ut5scmHXrVgpahnhJ?= =?us-ascii?Q?0u/KZI10BUVeX++dnOMksINVZ2ehu+8r2+Tei0kkn2xM+m4LUkbtLQPa/C2j?= =?us-ascii?Q?f63R0FTg7DIGjhISIzSXTZm9WnGQB0IYPUfNkNFV7E69iGT3OPkooP0FxYJR?= =?us-ascii?Q?zR+JkrZCbNZnn59kXfAaJf7YnEdoKAzQ7ZCQMWWJgYPLVCXV5zdvosRFfE9g?= =?us-ascii?Q?0Ptgll8YyqC55WGo1MW3C39Qoe6svHSOhBlPfDHmUOjwk/NoP9tDI/eqVt05?= =?us-ascii?Q?L+MlqUzle2Tq8YER0iNe3Vhj/biT3ByoB+0MqWnflpex5i5tonQH4AIyjvMc?= =?us-ascii?Q?tC9ZhXL6zf9nexgr74ubrY2Ktg2G2yOS/DTy8dVjUg/GuepJ4ubY8mSQlpjZ?= =?us-ascii?Q?pEwGdVYg7G3SmMDbkfS+YGs9INQkCr6iZKeB8pkO3aOX5SpwWp8bNmc/ifE0?= =?us-ascii?Q?IMDresAPeXgZr3JiTM7jQw0VT563H6SRtrEAkmpaiDal4X8kfWyzLp+IaXcy?= =?us-ascii?Q?KST+m38My+dWBL5uYSuI+lbn6a2+NBDopNbD8yiKr6y4SvidxoOJ6MM901K8?= =?us-ascii?Q?lQnkLUBBbA9kA0O8Fom1dGBxmNmUFdFZ2zygwatcIKxx7kUgeT/10eg/iZmV?= =?us-ascii?Q?81QQZuxNSgNyhgkhS46YczMpJHoFc9aH5cI15f2bTNQu5fJhD7c9N33Yfiud?= =?us-ascii?Q?PnK78icy9MjhVurS41JgB0oJ?= 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: BN8PR11MB3795.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb3f8f54-b939-4ce9-aead-08d9407b41d9 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2021 12:40:37.7787 (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: 6HFSJXwACnxUYXlZCnl8ihlK0QBQON3Ts/aFR3lDcdOMPN5IkTNbmuBigB97Maj9AaJunYilumaOHM0luFKniQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR11MB5742 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] net/ice: fix memzone leak when firmware is missing 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" > -----Original Message----- > From: David Marchand > Sent: Tuesday, July 6, 2021 16:57 > To: dev@dpdk.org > Cc: Wang, Haiyue ; stable@dpdk.org; Yang, Qiming <= qiming.yang@intel.com>; Zhang, > Qi Z ; Stillwell Jr, Paul M > Subject: [PATCH] net/ice: fix memzone leak when firmware is missing >=20 > Caught by our QE. > When the firmware is missing, memzones were not released. >=20 > $ dpdk-testpmd -c 0x1f -a 0:0:0.0 -- -i > ... >=20 > testpmd> dump_memzone > ... > Zone 6: name:, len:0x15040, virt:0x1661b24c0, socket_id:0, > flags:0 > physical segments used: > addr: 0x140000000 iova: 0x140000000 len: 0x40000000 pagesz: 0x40000000 >=20 > testpmd> port attach 0000:5e:00.0 > Attaching a new port... > EAL: Using IOMMU type 1 (Type 1) > EAL: Probe PCI driver: net_ice (8086:159b) device: 0000:5e:00.0 (socket 0= ) > ice_load_pkg(): failed to open file: /lib/firmware/intel/ice/ddp/ice.pkg >=20 > ice_dev_init(): Failed to load the DDP package,Use safe-mode-support=3D1 = to > enter Safe Mode > EAL: Releasing PCI mapped resource for 0000:5e:00.0 > EAL: Calling pci_unmap_resource for 0000:5e:00.0 at 0x2200000000 > EAL: Calling pci_unmap_resource for 0000:5e:00.0 at 0x2202000000 > EAL: Driver cannot attach the device (0000:5e:00.0) > EAL: Failed to attach device on primary process > testpmd: Failed to attach port 0000:5e:00.0 >=20 > testpmd> dump_memzone > ... > Zone 139: name:, len:0x1000, > virt:0x1660ed800, socket_id:0, flags:0 physical segments used: > addr: 0x140000000 iova: 0x140000000 len: 0x40000000 pagesz: 0x40000000 >=20 > With 20 tries attaching a net/ice port, we would end up with: >=20 > EAL: Probe PCI driver: net_ice (8086:159b) device: 0000:5e:00.0 (socket 0= ) > EAL: memzone_reserve_aligned_thread_unsafe(): Number of requested memzone > segments exceeds RTE_MAX_MEMZONE > ice_dev_init(): Failed to initialize HW >=20 > Fixes: a4c8c48fe3f4 ("net/ice: load OS default package") > Cc: stable@dpdk.org >=20 > Signed-off-by: David Marchand > --- > drivers/net/ice/ice_ethdev.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) >=20 > diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c > index 09e38590e5..f85c7cc8da 100644 > --- a/drivers/net/ice/ice_ethdev.c > +++ b/drivers/net/ice/ice_ethdev.c > @@ -2085,7 +2085,7 @@ ice_dev_init(struct rte_eth_dev *dev) > if (ad->devargs.safe_mode_support =3D=3D 0) { > PMD_INIT_LOG(ERR, "Failed to load the DDP package," > "Use safe-mode-support=3D1 to enter Safe Mode"); > - return ret; > + goto err_init_fw; > } >=20 > PMD_INIT_LOG(WARNING, "Failed to load the DDP package," > @@ -2175,6 +2175,8 @@ ice_dev_init(struct rte_eth_dev *dev) > rte_free(dev->data->mac_addrs); > dev->data->mac_addrs =3D NULL; > err_init_mac: > + ice_free_hw_tbls(hw); > +err_init_fw: > ice_sched_cleanup_all(hw); > rte_free(hw->port_info); > ice_shutdown_all_ctrlq(hw); The function 'ice_deinit_hw' should be used. ;-) https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/dri= vers/net/ethernet/intel/ice/ice_main.c#n4508 diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 09e38590e5..c777474468 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2085,7 +2085,7 @@ ice_dev_init(struct rte_eth_dev *dev) if (ad->devargs.safe_mode_support =3D=3D 0) { PMD_INIT_LOG(ERR, "Failed to load the DDP package," "Use safe-mode-support=3D1 to enter= Safe Mode"); - return ret; + goto err_init_fw; } PMD_INIT_LOG(WARNING, "Failed to load the DDP package," @@ -2175,10 +2175,9 @@ ice_dev_init(struct rte_eth_dev *dev) rte_free(dev->data->mac_addrs); dev->data->mac_addrs =3D NULL; err_init_mac: - ice_sched_cleanup_all(hw); - rte_free(hw->port_info); - ice_shutdown_all_ctrlq(hw); rte_free(pf->proto_xtr); +err_init_fw: + ice_deinit_hw(hw); return ret; } =3D=3D=3D=3D Before attach: testpmd> dump_memzone Zone 0: name:, len:0x182100, virt:0x11ff954ec0, socket_id:1, = flags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 Zone 1: name:, len:0x200180, virt:0x11ff754c00, socket_id:= 1, flags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 Zone 2: name:, len:0x18333940, virt:0x11e7421240, socket_id= :1, flags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 Zone 3: name:, len:0x15040, virt:0x11e739f340, socket_id:1, fl= ags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 testpmd> After attach: testpmd> dump_memzone Zone 0: name:, len:0x182100, virt:0x11ff954ec0, socket_id:1, = flags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 Zone 1: name:, len:0x200180, virt:0x11ff754c00, socket_id:= 1, flags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 Zone 2: name:, len:0x18333940, virt:0x11e7421240, socket_id= :1, flags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 Zone 3: name:, len:0x15040, virt:0x11e739f340, socket_id:1, fl= ags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 Zone 4: name:, len:0x37040, virt:0x11e73670c0, socket_id:= 1, flags:0 physical segments used: addr: 0x11c0000000 iova: 0x11c0000000 len: 0x40000000 pagesz: 0x40000000 Only the 'rte_eth_dev_data' is added. > -- > 2.23.0