From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id AACDDC10F16 for ; Tue, 30 Apr 2024 09:22:11 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 64EB3402A8; Tue, 30 Apr 2024 11:22:10 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by mails.dpdk.org (Postfix) with ESMTP id 1C49E40262 for ; Tue, 30 Apr 2024 11:22:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1714468928; x=1746004928; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=+eQgj8Bbx0L4uFA5wqVUBPLXxmXAbMG2TNLNXVV3+Sc=; b=nzSDbJRQEuBpKRm43Giuo2ku5iAAwxiRSvXe9bNRMJHjgOuJjfRD8G0m S2vwTmEnivYXHu/DOZEu7On2uPddu8aHCVF3JAmNk+jPMUFliwQleNVg+ EZiNdqExfBO1wlcwR0dzc6kDHqkJkBCwU9FIU2R5UmCmckHP9ZBmqjece oy89frDFUEjZ/JpZAhE4UzIkGQe8+BqNlQAhiVNZ0n87RWLAP9nfnJtzd 9MlK+8LVpcFecFyuPRkG53gdJxblsms7ScZFMrpZIhVs9sgvp8ZmkfB9W hc4RiEAVmY61Xr24S9P3THKVeH8dBCnCKyadJrhiRpwn6qzkzMi1Dl82d g==; X-CSE-ConnectionGUID: zQdwpZTdQ+qnf6/jtm/AKg== X-CSE-MsgGUID: VF5BYUGATl6kYain4Rx1Vw== X-IronPort-AV: E=McAfee;i="6600,9927,11059"; a="21573036" X-IronPort-AV: E=Sophos;i="6.07,241,1708416000"; d="scan'208";a="21573036" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2024 02:22:06 -0700 X-CSE-ConnectionGUID: R0LQUXkWQQWo8KeiofP/fg== X-CSE-MsgGUID: BwyQHEgRQXWCdoh28OhVQg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,241,1708416000"; d="scan'208";a="31209792" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa005.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Apr 2024 02:22:06 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.2507.35; Tue, 30 Apr 2024 02:22:05 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Apr 2024 02:22:05 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 30 Apr 2024 02:22:05 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 30 Apr 2024 02:22:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Znp0bRnGl0XuWkEKqsrnjBrF4OnMLgnpPcvQGXHuM+LXg/9PLDFTBM/RV2tgYpKuk0H7M+mk/rFUgwfj4DE9e8zCgLtLiEJoZggeXrRYgwPmkysKmSQl2zLQkGmCb1f0i1fYnbcDaZWkZbA3SGLXVeLt4VaVI9XdGoplfyRT3LPRIILhuIzmcMOjvC5WMUUrq3yiZpo6lBKi7vHfEZHslERZj7mrc3aaU66aRyGcvCrilD/uDJk9Wmrv0xls39Q2kqAQTwni/BtasNYC9eAltqUML4ZZDpY+eXQqzg7lYYb5GbvOqw7K9FKdP/uMx7Nhm2BM9I5FM6pXJgBEN6fE4w== 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=oC4cJUUd+g8u0zpKF2l/2ASLwZaheOyEAaTT5qOK5MI=; b=MJR9ee77tb0Pk5/COoCvFrnYdcHIsqPb7cN9y9RJGKVgop3LzUiTofJrfdg+DXldV6bvKAZENIdDpf+nFDr2Z16v8C/aTYsfi2F8pvT1/dALjwczDUoh1G+I+XKVmsoS6kEMwJyWAAaNs2u+UcZnDjw+hL7b2HOKjoaiOV+aSzIPVWg8absYUzYJ2hTFVnP0/zz1RxdGv4Ilwl+LXknvlNVzF4Ksd6ZiRa/o4uPnLHe4A86a16XUu5lD05mKwUlOLyUO/tNtTSIu2QVXTw5YrvIiUjI67pPO0wmDg9KLxfT4uCgCuIyIpN41L7xQNe9Rz8cTZDsuT3nZlYnP4g1ixw== 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 MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by CY8PR11MB7171.namprd11.prod.outlook.com (2603:10b6:930:92::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.36; Tue, 30 Apr 2024 09:22:02 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::be3f:5a4f:5180:2ba9]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::be3f:5a4f:5180:2ba9%4]) with mapi id 15.20.7519.035; Tue, 30 Apr 2024 09:22:02 +0000 From: "Loftus, Ciara" To: "Du, Frank" CC: "dev@dpdk.org" Subject: RE: [PATCH] net/af_xdp: fix umem map size for zero copy Thread-Topic: [PATCH] net/af_xdp: fix umem map size for zero copy Thread-Index: AQHal3X0z6x0LdlbSECwoepFfDoVGbF6XhKwgAJ95oCAA7RaoA== Date: Tue, 30 Apr 2024 09:22:02 +0000 Message-ID: References: <20240426005128.148730-1-frank.du@intel.com> In-Reply-To: Accept-Language: en-GB, 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-traffictypediagnostic: MW4PR11MB5872:EE_|CY8PR11MB7171:EE_ x-ms-office365-filtering-correlation-id: d3cd652f-6572-41cb-2731-08dc68f6feed x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|376005|1800799015|366007|38070700009; x-microsoft-antispam-message-info: =?us-ascii?Q?p1CopWvjHriQfsCUAdm8Jan9njKLANRagYoVaMN5cxQVTJ+cgvG5l/rlhszQ?= =?us-ascii?Q?ZCYxH9sbid99KbInrmaZFEM5uWkjXqzC7p60b06cwIO2P9OG5PGdRcwWDYmo?= =?us-ascii?Q?HqnCGfyoJp/ljpnhv2Z+39HQd1ybHt0c9dxX0ZPckvKi4xzQx25WNMTvh0t/?= =?us-ascii?Q?dRrvUbibdcHIbSw8b2Toxaie9Sn9BroIC1qxBSRnv4b2THzTfifU47nsLxbB?= =?us-ascii?Q?GFIST9xT4hNagx52mLsFFVYYb7HBxnFQhQZcyIgLD0zh5jFfe/pRDDB7v4Dj?= =?us-ascii?Q?jojgjFg8BoRTkxKDzoxCw8L5WraTRM4IThxhz8NP7zMuf8GS4EtiGiPIX1o4?= =?us-ascii?Q?zwUKg+xdoihBOY0tEv7ZNc436OdPHh4HaeBn1LxpLkesh4NO5hxtxjpq14WJ?= =?us-ascii?Q?jeI8mgIIq3NgqZ1z70LjOlMqCEGW/2YXjoUCRELdeSAYeKWOdqYpjnm5dCoC?= =?us-ascii?Q?mAtlR3EdCi3GeFwUhAohkyjId3gRcsjqhv1zVrsV/4PtHBOvocXIuCqSVAT2?= =?us-ascii?Q?Z3MudkflHX3CgOnBO3aX6DxeAf/4MATgqJLcxLouufcBJ+nS+SNpGv0rIRBS?= =?us-ascii?Q?80aFvTL63Dk4ly4hNOIJO41sfIEPLrKH0NofnqhgVRylX6KncSDto8FLcson?= =?us-ascii?Q?k4tii26Oms5hWRkuxJvIeGCrHdcf8DZSIs+NloznFpD0VKP38ygWBg2XNAs1?= =?us-ascii?Q?sjmpUoYZZS3BAOYp4AGidJtHHrqhyrR5mwXEa+ngJKM20FeFNyyFxAHg2h/6?= =?us-ascii?Q?h0Y2WFoay1mVd3cQ4WAPlGpdwpMoQHC+7rJs6oMgFP/rVA8FNI+duxOCvtgl?= =?us-ascii?Q?WE6D1DslR2BBiQAm60ZwjTCxk4pePZrgsd/zz5IMnEC31LkmkKQ0SXFpnWnt?= =?us-ascii?Q?jDa4IhsYgHjOXHgFwFBtHklX7k/bvksnSCzZ+3dJpINSBXskA54ICws4x11p?= =?us-ascii?Q?Nq0c8V5JXnyMHjn6hu9IRe9vWlU/VY8cA5c8fuqQYuiYXdraN3+lIAAZi2Ly?= =?us-ascii?Q?N59WKPnRTxbsPBV5qRQHKybTChyoprFzrfgWIOyymcfvfsgCh7vbiLxgSIe0?= =?us-ascii?Q?9YFzvGY2ISzJ6jCzb7nqE6BImvJGFXYGOZj6hN5AH/9q0r2zKhtdzuzBQ6FA?= =?us-ascii?Q?9E58pNuY/SDi7shNOsewRJC0YoHa77uxgnhSsjwAU1J7Q5u4TCIneR1yxia9?= =?us-ascii?Q?2dv6gr6VTUXWfDqublr8ag2d5/WNLIBptB5bVitR9SnmsbmedqzOTXGYQUXe?= =?us-ascii?Q?0bmLMmJ2sMfpUp6GLOS8e0o79tCoghfVPe4G71YtnhQrVmyi8Kt9AlgG2Cza?= =?us-ascii?Q?MBJtQhwNQUKik6cbDsCOd24Ila3ZFYkrVk+irSMFAEirrg=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW4PR11MB5872.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376005)(1800799015)(366007)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?+scNjInQ6uY7/B/BGZH6giWhcXf34HVRYF55ZJe8g4VzOa5PzrkQAoJfGbgB?= =?us-ascii?Q?T9IwqUvCRno/wyxZKLghcNZLdLIdV3UIBDBpToETqoEz0p55jyZZaH7sMr/v?= =?us-ascii?Q?VvKyaln7KK74k7mRwgIyeR4y3Byki/55tO8H4ghztjQFir+cQRQ7VUU8doOh?= =?us-ascii?Q?Vf+UMS1wx/LAPmJ8wjf3O1nxy1MHKByXYoqz1n3YRlZ3Nxj+QJBDA5rSlnYy?= =?us-ascii?Q?7v9XGmR7lw+IH4L5CrwKmOaM5viCLVcAlSbZzX/I3njMNertRYJuDLqSH1vt?= =?us-ascii?Q?EwhArOVXLzYBAxDSCfg2jmKCTuIqGAiL0SlXbXRmkXMGwD4is1IACVXmmtPM?= =?us-ascii?Q?1mHa76xizA1oLUVdB8LUpMBCv55/8izukR5VW53L8wJJAtQOUi3aAi1omyF6?= =?us-ascii?Q?ahuXXlVarDZMRMDv1W+2y7JnuOcFk+9xcjuiJWTAa4JFFdJIbP4Tm/qllJZB?= =?us-ascii?Q?CrgCT9LguXkjoaXp23c6FVc+UF5lutz+queQGvSUvy4uR9GPaZ3W2xlUpisI?= =?us-ascii?Q?O9kVyKR8jPd7+nbbbhnMa25Xx0kRrtbUnRTGs8znbTSzHO2WfPhlr4D1ZQGg?= =?us-ascii?Q?tDhvncUrgjigO1FXv30BnqnFqmOpX7wwU5CDBSnjiNuDNrctq3AVsg12lcEw?= =?us-ascii?Q?wSDpeKjKXuxbHTsVklxLUcz8LCzadxi2TkACFB9Z+bALfBLawcQcGIdWCJ9r?= =?us-ascii?Q?l/UEPw1DZR7HMfPTAp3GUS4rdLvApm8Q/FJcaiqRzeHPK8Wp8GcAM/rAQlT0?= =?us-ascii?Q?1c8DIeC7kV9EX9NHiD02olfWQ4GLL3pOIsSRqruHD+1yM45MhJmeXl7o4yW/?= =?us-ascii?Q?wCschhuETnOffmDT3vlDVNYFdHmJVBrcVR3XtiDhFypLK3x/OqGtgLitk0n/?= =?us-ascii?Q?h7MHjuJLrxAAxBHCJyYcbuLhBbzf8Z8R6o/Swb912bFWw1uj/iCbV6IXxocg?= =?us-ascii?Q?ODYfGoCzfjkTxgv7igOCMDANN1V1+xbSbEoAvz10dHW0bJnQVBWD7iNRk7LL?= =?us-ascii?Q?A2kir9yZsNR652SstkyVFzZzJh3Tnu/eMsN1PKMDWqJViI0zUwun/d2/Azvy?= =?us-ascii?Q?gWLxGwI0Sbjd3UkWoD29jEbSjhBd48prMwLt9XFn79dV3oBpjxec0Snjrrcp?= =?us-ascii?Q?L3WyNZPI4CkGFr9PVZUH+bAd1Sle8B+RWL6nfact968C0mzXc1XhKmitsIZC?= =?us-ascii?Q?nlwAtzqpfY4i3PXWz/vcFQefNndu9x+9zJDY0xo/PyOsIwHVjoDT9bwICINY?= =?us-ascii?Q?+wrP7vZeGvVP/aLNaKho9PeAYys2OrX33HPl3QUA+WNQz17WujT9k5+tF8pF?= =?us-ascii?Q?mfdk7rQ9h+wJUHg645R1W/qxBvLUw9J8E1IFwCq11GvWMxWxCt6hLa/rpB1M?= =?us-ascii?Q?NtEx7AyNqAkDyVYe5BpQkXsMkel8YafFGNAnRbbQYHfi6ElbYgCi6EzKLVph?= =?us-ascii?Q?f0cxeDuDa5dyH+7tOvNaGzP9l7TvctAvG+sNn5uTH9q6qffC4AxPBiQv5QVC?= =?us-ascii?Q?Yt6nOc9cg7+YoppEr5ZfZuesDIGMxuj+jo2OCmsbGd/y1erXvrtdb02E8Ify?= =?us-ascii?Q?WoFRpTkas/oH4VUkYNi0i5tjhFLde+R0Nh2Pgkn5?= 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: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3cd652f-6572-41cb-2731-08dc68f6feed X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2024 09:22:02.7663 (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: XY59028cVxRqTjZ0ydBPiZnxdl4PrMqSSPDpz+1q0ke+x5RWBilb5uGONUJitC7KLAxJk3rnTztwWVn04/b8sg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7171 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 > > > > > Subject: [PATCH] net/af_xdp: fix umem map size for zero copy > > > > > > The current calculation assumes that the mbufs are contiguous. > > > However, this assumption is incorrect when the memory spans across a > huge > > page. > > > Correct to directly read the size from the mempool memory chunks. > > > > > > Signed-off-by: Frank Du > > > --- > > > drivers/net/af_xdp/rte_eth_af_xdp.c | 10 +++++----- > > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > > > diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c > > > b/drivers/net/af_xdp/rte_eth_af_xdp.c > > > index 268a130c49..cb95d17d13 100644 > > > --- a/drivers/net/af_xdp/rte_eth_af_xdp.c > > > +++ b/drivers/net/af_xdp/rte_eth_af_xdp.c > > > @@ -1039,7 +1039,7 @@ eth_link_update(struct rte_eth_dev *dev > > > __rte_unused, } > > > > > > #if defined(XDP_UMEM_UNALIGNED_CHUNK_FLAG) > > > -static inline uintptr_t get_base_addr(struct rte_mempool *mp, > > > uint64_t > > > *align) > > > +static inline uintptr_t get_memhdr_info(struct rte_mempool *mp, > > > +uint64_t > > > *align, size_t *len) > > > { > > > struct rte_mempool_memhdr *memhdr; > > > uintptr_t memhdr_addr, aligned_addr; @@ -1048,6 +1048,7 @@ > static > > > inline uintptr_t get_base_addr(struct rte_mempool *mp, uint64_t > > > *align) > > > memhdr_addr =3D (uintptr_t)memhdr->addr; > > > aligned_addr =3D memhdr_addr & ~(getpagesize() - 1); > > > *align =3D memhdr_addr - aligned_addr; > > > + *len =3D memhdr->len; > > > > > > return aligned_addr; > > > } > > > @@ -1125,6 +1126,7 @@ xsk_umem_info *xdp_umem_configure(struct > > > pmd_internals *internals, > > > void *base_addr =3D NULL; > > > struct rte_mempool *mb_pool =3D rxq->mb_pool; > > > uint64_t umem_size, align =3D 0; > > > + size_t len =3D 0; > > > > > > if (internals->shared_umem) { > > > if (get_shared_umem(rxq, internals->if_name, &umem) < 0) > @@ > > > -1156,10 +1158,8 @@ xsk_umem_info *xdp_umem_configure(struct > > > pmd_internals *internals, > > > } > > > > > > umem->mb_pool =3D mb_pool; > > > - base_addr =3D (void *)get_base_addr(mb_pool, &align); > > > - umem_size =3D (uint64_t)mb_pool->populated_size * > > > - (uint64_t)usr_config.frame_size + > > > - align; > > > + base_addr =3D (void *)get_memhdr_info(mb_pool, &align, > > > &len); > > > + umem_size =3D (uint64_t)len + align; > > > > len is set to the length of the first memhdr of the mempool. There may = be > many > > other memhdrs in the mempool. So I don't think this is the correct valu= e to > use for > > calculating the entire umem size. >=20 > Current each xdp rx ring is bonded to one single umem region, it can't re= use > the memory > if there are multiple memhdrs in the mempool. How about adding a check on > the number > of the memory chunks to only allow one single memhdr mempool can be used > here? The UMEM needs to be a region of virtual contiguous memory. I think this ca= n still be the case, even if the mempool has multiple memhdrs. If we detect >1 memhdrs perhaps we need to verify that the RTE_MEMPOOL_F_NO= _IOVA_CONTIG flag is not set which I think would mean that the mempool may = not be virtually contiguous. >=20 > > > > > > > > ret =3D xsk_umem__create(&umem->umem, base_addr, > > umem_size, > > > &rxq->fq, &rxq->cq, &usr_config); > > > -- > > > 2.34.1