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 EF162A055D for ; Mon, 15 Mar 2021 18:26:01 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DCF0C242775; Mon, 15 Mar 2021 18:26:01 +0100 (CET) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 032FB242761; Mon, 15 Mar 2021 18:25:58 +0100 (CET) IronPort-SDR: TMBEqaxML603Hqo3qELqRSw+k8WVX9Es3AmcLQ/5hlYn+vvzoq8/Axa03rT7e2v9j8D7QaQS15 7GDfLNOxZbAA== X-IronPort-AV: E=McAfee;i="6000,8403,9924"; a="168401333" X-IronPort-AV: E=Sophos;i="5.81,251,1610438400"; d="scan'208";a="168401333" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Mar 2021 10:25:56 -0700 IronPort-SDR: 8SE5+0wGApEiOX64WNAGkVQcOsYLwf0dPPujVo6hmMJkM7S2LpVpIQLiWxi2qjxvInEBWL7Wqd rcHGSVrwIQTw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,251,1610438400"; d="scan'208";a="405239187" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP; 15 Mar 2021 10:25:55 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 15 Mar 2021 10:25:55 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 15 Mar 2021 10:25:55 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Mon, 15 Mar 2021 10:25:55 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) 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.2106.2; Mon, 15 Mar 2021 10:25:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PVxdYQQpSi3H/m1QKon85/rQufIyZRxRzjihkLmm8BB5bqGupErqJQgo4XL8hel9yMmienf9crU8uYeW0ONoF6/xxX8QTL1bWJvWjc0D1MocHLPtuMIy5HLZ+wcGT8OZ67MuZoetBD7Y43cCV0RceyV53iCBGONuXQyAxUXMM+JAY+sCUgqS/N6nkFeBtYEMYlJJOfL7JXS0fI8IMs/goTpdBH9TMMP+EqyVOS7aeKW/VOVU/QRbE3ekQGwN/YYUs+sXqL7NmRzhxoE6SAtUrJvh4qHwOlUdvFiqUx0OXdWN+7hPprlABCec2rAsvXlYId3kvLK0oEaBwuL/DYfjtw== 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=+fArqL449ASBTNnYHuXhZBdEPrAk/pjcsDqzHwdnI8g=; b=DyvesqeqdTKI8zY4V8aw1XRLPCI/9dLR4UMmJPsvTUFj+TKk2FNFxo6ruB8v5qEykJYSp9GKVlKaxU7baHZ0f332YSo+ozsMfv5YVVdLCSayTs9mVDDoFPCnW2dm/Nz8X8cQGDF5lDUyY7nmkb9AwrhGKpB3YIg8BtmcVhAXkyMvR0WFX2HpclJduhGhEYESmOZZIQJ3BbD+Jg+zet4RE0JwzgUnyOiaudIXlT/vYVDogs78q1hgyRRN5r76bSJzqvD8FPYXsGFBW+rGaXovRthejFH1xgV8ASjh1WJdE+Seq8xYL3OOUDht2RSJnbQDAIM5p8+lAaT9YLBkDjYV2A== 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=+fArqL449ASBTNnYHuXhZBdEPrAk/pjcsDqzHwdnI8g=; b=HQ7TvHE3VDvYT+H30DtNCCkWCxEeAgJetSS0xhpv4Uk/td3xOHd4WpVjRGIipGD0odLEttqvfHfYAFzZNVPOoAPXg86Z+0eBNwC/68YpZyOLwlE1ZTH5LLPcji0+KT/AUb/1flrgBUG1GYkLvQcmxbIC2LExSoFXfPee+vgyfZI= Received: from MN2PR11MB3550.namprd11.prod.outlook.com (2603:10b6:208:ee::21) by MN2PR11MB3599.namprd11.prod.outlook.com (2603:10b6:208:ed::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Mon, 15 Mar 2021 17:25:54 +0000 Received: from MN2PR11MB3550.namprd11.prod.outlook.com ([fe80::8824:3385:f40b:a60d]) by MN2PR11MB3550.namprd11.prod.outlook.com ([fe80::8824:3385:f40b:a60d%4]) with mapi id 15.20.3933.032; Mon, 15 Mar 2021 17:25:54 +0000 From: "Coyle, David" To: "Lu, Wenzhuo" , "dev@dpdk.org" CC: "Lu, Wenzhuo" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH 2/3] net/ice: fix segment fault in AVX512 Thread-Index: AQHXFt8Ah4lQj5wRCUWSvqDND0ZiV6qFTZLg Date: Mon, 15 Mar 2021 17:25:53 +0000 Message-ID: References: <1615512431-17450-1-git-send-email-wenzhuo.lu@intel.com> In-Reply-To: <1615512431-17450-1-git-send-email-wenzhuo.lu@intel.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [109.78.96.244] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: da5585be-6c64-487d-277e-08d8e7d7633a x-ms-traffictypediagnostic: MN2PR11MB3599: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4303; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zdpM/Ou/Wz3uzm/xC1qPzMQ4JwBsbAEVPOcnKrBWnR5o8yj4Z8gPFryikFPsbxX0vZyF5xy7WCHjciiuLwz9/rH2CN2qUYkOLLGgpROzuOqRAjl+O2mDdlarxtFd9lXMzNgWCUv/2LgW/yqeGJfHMXFQWpGH6JgOK+S/dvN1mketDtZzDSo27N1qpV0+6spkJBphyDp4stSvfb9l95QhBx/mfKKuJUQ3JjHRwLlAY9qO7JCsk2geawP+A58FQYl5NiorTiE4jirjOv1eruGxASbkxusGd4Liw8maBGXcLu1Toouum9aWE08Zi+yGw6rdv+UN3IUMxaFXyBeItDG+EyrVgZ3Z6VXEAJmnoMVT568d79CN7nDp7kuId66pTtO1AAXSU6TXmNCml81HgyOJNzPS2IHTijcgEH2jf6QZBzxmN92RpPW2zmZxq9cTzw8czRQoWsTdRgJ73xlyAbEZfUw4atpAvYrF6Dw5nDar2gQleCo/G7ZRl7kjG7OmbKKgoWJDXXHsR/Yj3lAEt7X52WbQUFAtQM4RDy2EnUTMYuxlA1Rek5gPj3d/uyYSQBx0 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB3550.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(396003)(39860400002)(136003)(376002)(346002)(366004)(83380400001)(33656002)(66476007)(86362001)(55016002)(9686003)(8676002)(54906003)(71200400001)(5660300002)(478600001)(64756008)(4326008)(186003)(52536014)(7696005)(450100002)(66556008)(8936002)(76116006)(66946007)(316002)(53546011)(6506007)(26005)(66446008)(2906002)(110136005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?j8tBE/B+JuNkHXUxbyoKw0NxKVrKSmA6CmkcV7eK3Jcd18Ro5Fyf7PcrsvXp?= =?us-ascii?Q?ewIlfLcOQvaC+y/+xIphr/I/R14dkJ3jfWVtcE1ZIyQmlcgOisST3vGmPMyo?= =?us-ascii?Q?Fh0R+9LrCZWpjFVTMoY3P7YAm2/nc0SFOTR8uO48LucH6sNeq5YSQ8T4M4Qm?= =?us-ascii?Q?DtMvJK/BrQTfOG+De1VuT7f0e7rL5edtH6D6+LEYvosXRzxbelRw0iwz+Cem?= =?us-ascii?Q?hyJqw+zqKZavw4QN4waoJZMAo+DV6Fp9U+KdUtskOVU7PBDP162iyjop0hy+?= =?us-ascii?Q?af9aEpe0lMyg6zuUlyxlMNuNhIv2PZmSQPme5EPtp1PFQ+uRu5g+jv46Z/KO?= =?us-ascii?Q?yuQ5E91Hqh6p3ITwUoWfu5OMi0zAuy1IYMNd6SD7BwdQokt1B8gMlFT9+uTX?= =?us-ascii?Q?uK/naiscZ+9+ga/l2/lBZBpMbbWKEBMjxNpS3JFmrnRb/HBmGSANn0WBEZ72?= =?us-ascii?Q?Lk2E/t313Zs21bgED8yDinqcL8Oe1My+Y0tbbf/22LaJlre9UIWsPQuW/8NU?= =?us-ascii?Q?l1ZqoAL14V4M1VTLAVH+5qAW6ekRVUAGMIBM1VAqvmQFyvIBZBGC0ze7zy1Z?= =?us-ascii?Q?5HrbDgnWvTN8SZ1+/iW8pGHJwKKsgoqj1Pl5EGlWXdnY+t2jumekbn5i/SdT?= =?us-ascii?Q?MR5BQlq79UgFjQ2Jf5h5xj7Kt/MO7ifJN3BFX6YnId6yS+KgzO62iiwPYmRL?= =?us-ascii?Q?dbLgji6EC5V3+XEf5iGVstHWA9LAC4c76olxBNPOm36RkMVqabkAii0KCn0W?= =?us-ascii?Q?4JgIaTEH+5HgzCDcIe6gcrE6MsuRekT/ZgmcT/gayN2oZUk2md/JS/MSu7Ew?= =?us-ascii?Q?oDTERTJQmmrMVpmTIkgNG8iolDfwsJm99t8edxC1b+x9KI9t1jFAKp3LkGc5?= =?us-ascii?Q?JvNg4P+N82OjhBy6ry/S+RNjb6L1wju0/FALoglQ7SLWXeHkhPAzeY7ERKFf?= =?us-ascii?Q?FL5r+9tNU/GBEz2c4VS+YbYnwoVZ4oHPtUJ0zzpL69CT52ERCmJGJHvXhJx9?= =?us-ascii?Q?UlimYxtvnG32ekWEsYZc2xeOxQtAdejvPaNHImZ7oiRxip0AfYbyhJJnfdxi?= =?us-ascii?Q?FvUPOQAz/chZYtMNZc/60F8ztLrZQnyQc1U9BzRJkVpw4nH1EpE4lPEYXdRp?= =?us-ascii?Q?0s0m6JNPblCs41CBJkiRVsH/0IfBAfllh++qI3+LrmdN0rueBE2Cbo9LLLmh?= =?us-ascii?Q?f6YgiXAYvLb5fzeXx7ZRoEJcyP7Qh6ZcY+v0rrFGRv2yJ9+D8ATljmLgi6XO?= =?us-ascii?Q?n1hZ514xwakh9xTopSW+W+abyH4XK/NyWA222FKv42XXSELjPl5rV0B8D4Tl?= =?us-ascii?Q?Hvrpi9aIRT+dHIAOmw05KklC?= 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: MN2PR11MB3550.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: da5585be-6c64-487d-277e-08d8e7d7633a X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Mar 2021 17:25:54.0066 (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: ULkcxIV9FSsT4xri4uN4fEQ8V3DM3GqDnTONT4Zl66cEdEARgSAn9hS+KaO5JyJhnoBQTxkMKuw4WiPsC9WwaA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3599 X-OriginatorOrg: intel.com Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH 2/3] net/ice: fix segment fault in AVX512 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi Wenzhuo > -----Original Message----- > From: dev On Behalf Of Wenzhuo Lu > Sent: Friday, March 12, 2021 1:27 AM > To: dev@dpdk.org > Cc: Lu, Wenzhuo ; stable@dpdk.org > Subject: [dpdk-dev] [PATCH 2/3] net/ice: fix segment fault in AVX512 >=20 > Fix segment fault when failing to get the memory from the pool. >=20 > Fixes: 7f85d5ebcfe1 ("net/ice: add AVX512 vector path") > Cc: stable@dpdk.org >=20 > Reported-by: David Coyle > Signed-off-by: Wenzhuo Lu > --- > drivers/net/ice/ice_rxtx_vec_avx512.c | 129 > ++++++++++++++++++++++++++++++++++ > 1 file changed, 129 insertions(+) >=20 > diff --git a/drivers/net/ice/ice_rxtx_vec_avx512.c > b/drivers/net/ice/ice_rxtx_vec_avx512.c > index 0e5a676..7c458d5 100644 > --- a/drivers/net/ice/ice_rxtx_vec_avx512.c > +++ b/drivers/net/ice/ice_rxtx_vec_avx512.c > @@ -24,6 +24,9 @@ >=20 > rxdp =3D rxq->rx_ring + rxq->rxrearm_start; >=20 > + if (!cache) > + goto normal; [DC] Same as IAVF, in the Tx path, in ice_tx_free_bufs_avx512(), it also ch= ecks for cache->len =3D=3D 0. Not sure if the extra check is necessary though - I don't know if 'cache' c= an be valid pointer but have a length of 0 if (!cache || cache->len =3D=3D 0) goto normal; > + > /* We need to pull 'n' more MBUFs into the software ring */ > if (cache->len < ICE_RXQ_REARM_THRESH) { > uint32_t req =3D ICE_RXQ_REARM_THRESH + (cache->size - > @@ -115,6 +118,132 @@ > rxep +=3D 8, rxdp +=3D 8, cache->len -=3D 8; > } >=20 > + goto done; > + > +normal: > + /* Pull 'n' more MBUFs into the software ring */ > + if (rte_mempool_get_bulk(rxq->mp, > + (void *)rxep, > + ICE_RXQ_REARM_THRESH) < 0) { > + if (rxq->rxrearm_nb + ICE_RXQ_REARM_THRESH >=3D > + rxq->nb_rx_desc) { > + __m128i dma_addr0; > + > + dma_addr0 =3D _mm_setzero_si128(); > + for (i =3D 0; i < ICE_DESCS_PER_LOOP; i++) { > + rxep[i].mbuf =3D &rxq->fake_mbuf; > + _mm_store_si128((__m128i *)&rxdp[i].read, > + dma_addr0); > + } > + } > + rte_eth_devices[rxq->port_id].data->rx_mbuf_alloc_failed > +=3D > + ICE_RXQ_REARM_THRESH; > + return; > + } > + > +#ifndef RTE_LIBRTE_ICE_16BYTE_RX_DESC > + struct rte_mbuf *mb0, *mb1; > + __m128i dma_addr0, dma_addr1; > + __m128i hdr_room =3D _mm_set_epi64x(RTE_PKTMBUF_HEADROOM, > + RTE_PKTMBUF_HEADROOM); > + /* Initialize the mbufs in vector, process 4 mbufs in one loop */ [DC] Comment above should say 2 mbufs > + for (i =3D 0; i < ICE_RXQ_REARM_THRESH; i +=3D 2, rxep +=3D 2) { > + __m128i vaddr0, vaddr1; > + > + mb0 =3D rxep[0].mbuf; > + mb1 =3D rxep[1].mbuf; > + > + /* load buf_addr(lo 64bit) and buf_physaddr(hi 64bit) */ > + RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, buf_iova) !=3D > + offsetof(struct rte_mbuf, buf_addr) + 8); > + vaddr0 =3D _mm_loadu_si128((__m128i *)&mb0->buf_addr); > + vaddr1 =3D _mm_loadu_si128((__m128i *)&mb1->buf_addr); > + > + /* convert pa to dma_addr hdr/data */ > + dma_addr0 =3D _mm_unpackhi_epi64(vaddr0, vaddr0); > + dma_addr1 =3D _mm_unpackhi_epi64(vaddr1, vaddr1); > + > + /* add headroom to pa values */ > + dma_addr0 =3D _mm_add_epi64(dma_addr0, hdr_room); > + dma_addr1 =3D _mm_add_epi64(dma_addr1, hdr_room); > + > + /* flush desc with pa dma_addr */ > + _mm_store_si128((__m128i *)&rxdp++->read, dma_addr0); > + _mm_store_si128((__m128i *)&rxdp++->read, dma_addr1); > + } [DC] As in IAVF, the code above is the same as in avx2 file... any possibil= ity to have a common function or functions for the 2 files? And there is also commonality between IAVF and ICE PMDs. There doesn't seem to be any shared code between net PMDs at the moment tho= ugh, so maybe it's practical to have common functions > +#else > + struct rte_mbuf *mb0, *mb1, *mb2, *mb3; > + struct rte_mbuf *mb4, *mb5, *mb6, *mb7; > + __m512i dma_addr0_3, dma_addr4_7; > + __m512i hdr_room =3D > _mm512_set1_epi64(RTE_PKTMBUF_HEADROOM); > + /* Initialize the mbufs in vector, process 4 mbufs in one loop */ [DC] Comment above should say 8 mbufs > + for (i =3D 0; i < ICE_RXQ_REARM_THRESH; > + i +=3D 8, rxep +=3D 8, rxdp +=3D 8) { > + > + /** > + * merge 0 & 1, by casting 0 to 256-bit and inserting 1 > + * into the high lanes. Similarly for 2 & 3 > + */ [DC] Comment above should say "Similarly for 2 & 3, 4 & 5, 6 & 7" > + vaddr0_1 =3D > + > _mm256_inserti128_si256(_mm256_castsi128_si256(vaddr0), > + vaddr1, 1); > + vaddr2_3 =3D The patch fixes the seg fault, but note I have only tested the default '#if= ndef RTE_LIBRTE_ICE_16BYTE_RX_DESC' path Tested-by: David Coyle