From nobody Sat Jun 13 13:03:25 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010066.outbound.protection.outlook.com [52.101.85.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AAF7E3BBA1D; Thu, 7 May 2026 09:54:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778147665; cv=fail; b=SaxH9cdvW/FJeR7m9gKxVMq8EEfGTDrYCodaWYAlkqIaYbnS/ADS1pWzBNqmYvUMN9SonMfUXlcCyMPcutcL7nHBFO89efZIkGzRxOL3z8rmYz73iPq7yh+UE8hx1ll2wUN3Odrxauz1VBfuoCnColIhFg4GjeX9zQNwzXGnZxc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778147665; c=relaxed/simple; bh=jg6gUK5dsxBJbLY1DLlkQSv/NFCIZcNdlj9/q7Mm0m4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=DlwA6ewJ3N5/V1SBvv+Wkwfr3KrqgeEOi7XHkE/+fC1DhVMR2fk+2CpA8Qx5f51eBHpZjVxRfkfJL5iqhdtUNrql4q9lQckoXgUSY/ZhFRZtGSyg5Ae5hR6S8ObrAJvu7Q9ex2SlbxM1YrmCSsxEtIEwLyOAhWBt8aM5wpt6qZk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=JCSVJN6l; arc=fail smtp.client-ip=52.101.85.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="JCSVJN6l" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aaOBXQBkWCy2yaEkNIHdse8ppP31nfCMufKHbcf4Wpekqxh3l+pEmV7nkRHtm2Kjg3mvTqHKxp/SHOg91ZgcOMNavm1nQhlDqwP5NEV4NL0Xh92WWjrcRRk6NxZD3UQq9ri2GNnU3m3Jn1+DqwH1BRiD6QmovGxmTa8Z34DCM7J3zCEm0xo554S7yh/uXZyb1DZm+xdG8S+dTgeqafKnzfOMbMo77x2My9hyur9m7fk61tWoHYJBVVdjMr0Q9d51sbsUkO2GvM7DDFAZrbDO47TvN6N11N/cmgdtStM70sOP+nPKgmUsB2alPmLvcpIQbZI6PvHzjDvpe02/V0jwDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=LR3nhB4DLqBG79O7N6p+487SY+rWqOYxi/Hx7druYcA=; b=ngwRVOXa0gwBROm7iK0Dqg1d5JijOgCB0Prs3uu7wD3HYvbWYkRLt0mlroLYdlym97MTTZEzXOFHRfERi6lOyrel9jcI4CAq3pXAWXp0mJFulcHPiSFyPox2PUUD4UUDBIN9IYLlHzeh6BAfi6TPXLdpaNhMLn/SM4fIZZt7bdyepGRDwqhtF5JYn7KSkhBW8sruL9WT5fkk+EPtMGMjnIvcZDpatmUDGwpQiSQmqtZLBL44XMPqeOhfpynWJaQxaawrpHFWEfhmOe5IoDMIpShVRgeDW42c85ogw1LKMiue70C0KKwJ08DHTDvXrf4qevnN6fCD9bk6udplRG4Kng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=openai.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LR3nhB4DLqBG79O7N6p+487SY+rWqOYxi/Hx7druYcA=; b=JCSVJN6lgRd3EDMThRkw6gy6/Ih/BLdUCQWNYxK8WkvPJ2o854Pts/lhlcgT4mkqPqZ4A97OhU4LnQlDpDrQogqIg9RkwdUfl2V+Ha6O28bbVRUbS39YQiJvFe6gFarh0eechFX9eB/kbXrC9h26QCevw0MILCpnrW/gHWeT2JzEHgMWAuQNKvfUufGH3/Zbz0i82GIQdHcYx0SClAPyyEqknCEAsm1fmXebEo6wdsH8IGMF+QslrGcYEtOwcvKFQcRISeKKkEPxUYSrWBI2brekuX6Jd8jXZJdH4pn28Bupk4Xmp5bKcY4MllIvEF9t9pj+WMyz+dutIuSLaigrFQ== Received: from MN2PR16CA0053.namprd16.prod.outlook.com (2603:10b6:208:234::22) by SAVPR12MB999168.namprd12.prod.outlook.com (2603:10b6:806:4e6::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.28; Thu, 7 May 2026 09:54:18 +0000 Received: from BL02EPF0002992D.namprd02.prod.outlook.com (2603:10b6:208:234:cafe::b2) by MN2PR16CA0053.outlook.office365.com (2603:10b6:208:234::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.16 via Frontend Transport; Thu, 7 May 2026 09:54:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.9 via Frontend Transport; Thu, 7 May 2026 09:54:18 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 02:54:05 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 02:54:05 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 7 May 2026 02:54:00 -0700 From: Tariq Toukan To: Christoph Paasch , Eric Dumazet , Jakub Kicinski , Paolo Abeni , "Andrew Lunn" , "David S. Miller" CC: Saeed Mahameed , Tariq Toukan , "Mark Bloch" , Leon Romanovsky , , , , Gal Pressman , Dragos Tatulea , Daniel Borkmann , "Jesper Dangaard Brouer" , John Fastabend , Stanislav Fomichev , Amery Hung , Alexei Starovoitov Subject: [PATCH net-next V6 1/3] net/mlx5e: DMA-sync earlier in mlx5e_skb_from_cqe_mpwrq_nonlinear Date: Thu, 7 May 2026 12:53:28 +0300 Message-ID: <20260507095330.318892-2-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260507095330.318892-1-tariqt@nvidia.com> References: <20260507095330.318892-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|SAVPR12MB999168:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ab0f89d-9faa-408c-3726-08deac1e9aff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|3023799003|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: auiMG1nzVqugwOE26GMnnAgXdtpESYzWKHw974FB2o0SgIA5tMB+cGmeeRjdpohSwN3x3QjraG9glkDQZYRp5cY/qiB0KmXJEJApVNqPt0oO6n/P/mvNQKoVGn8YctL/ZdxD3/N77TWYM9/hQ1kf/izMiI4fMIldQ/zu6AaQtEMqBG1B53+wvvh8MQkeYiCO16xwscTLgLdYufao/+cCO92p5rvTrSN/AO6U+Tv+wOSJhXFxURGv6PtupfbDWDG/AxpEUnvgyOnssilpqIPZCV/8dEHLRFXVW3uAgmV6pB7yVqxqsUmuRsMXPK6oAMLCqJ1PrXcQLiD0NT/yEvjZbRqU7uo0JOJBMME02TETWWqOeLEj8Dh8kFcQ63oFBjFV/AtAFbgicECXK+AffOtWhr2arGfIotsHk/ybASZoFy/JUjHbkmu4EdBV/WA0px9l/TtZLiLuYoGFAfVaBePrwV4favC3d8MQyoKt5wGtq9nbaiivQh+C5fbUKhjAnGclSVvaNG4dgaKPE7tCVp6Dc6Vb5xnA66LrqJU518rpFrFvHX52/bZzw/D/O3ttP1ZFTfDzoPqn/l2NNfchmRXwr9U4+O0AU6ViqWm85PNqvlYRmA02x1i0Zz/PSxWbm4Hw9NJTL/ckSsM5dh+WK8pHtiOg4ol6rsDvaszPTMO+szf/x3ex0WOxr48auPcMKQHGGbVPtdU1t/AOuK3bWDMwqWoJws+oQM6YmyiasLHgzz8= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(7416014)(1800799024)(82310400026)(3023799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6PdxXUPTvgM77jxs3slcYoDkLn/F7MzOdQEz23tHwiRtHYjrW/Qcx4k2AHWjU752ELE1UJxKeLV/yLINQk+rlPsXsVi3wK6pXevEi7HGFEQhogTtZgeTxcbVbAs1IMhZnFdJJhAlO0jxD/duonteXoqrCZ2R0R+VRiUCOBTv6SfAFILkl5BgHBGksHJ9a1dbCzuVJhRy9im4bNb37WxvreAW0FH+5/N5IRuIPnNuzcK030jMDGN+Pkwb4v7KSoua3/NPAGr0HinLBH8csqU026CiRbXMroAXfxkk/IkrWh00N5jxLHUoSlYnz+UjX67cjO9Hki9CleVAQ7Nihvz8qk7KKOVmktY8RsgT4bTG+0G+p54LfbtYDFgFKBABppDO6bM39DzQTF68IKgtzzTdfDaSroC87oAEpz0mke1nyE7QNtpR1fYZ6PL+x/UmRaM4 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 09:54:18.0762 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6ab0f89d-9faa-408c-3726-08deac1e9aff X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SAVPR12MB999168 Content-Type: text/plain; charset="utf-8" From: Christoph Paasch Doing the call to dma_sync_single_for_cpu() earlier will allow us to adjust headlen based on the actual size of the protocol headers. Doing this earlier means that we don't need to call mlx5e_copy_skb_header() anymore and rather can call skb_copy_to_linear_data() directly. Reviewed-by: Eric Dumazet Reviewed-by: Saeed Mahameed Signed-off-by: Christoph Paasch Signed-off-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- .../net/ethernet/mellanox/mlx5/core/en_rx.c | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/= ethernet/mellanox/mlx5/core/en_rx.c index 5b60aa47c75b..75ccf40a7f17 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -1923,11 +1923,11 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq = *rq, struct mlx5e_mpw_info *w unsigned int truesize =3D 0; u32 pg_consumed_bytes; struct bpf_prog *prog; + void *va, *head_addr; struct sk_buff *skb; u32 linear_frame_sz; u16 linear_data_len; u16 linear_hr; - void *va; =20 if (unlikely(cqe_bcnt > rq->hw_mtu)) { u8 lro_num_seg =3D get_cqe_lro_num_seg(cqe); @@ -1940,9 +1940,11 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *= rq, struct mlx5e_mpw_info *w =20 prog =3D rcu_dereference(rq->xdp_prog); =20 + head_addr =3D netmem_address(head_page->netmem) + head_offset; + if (prog) { /* area for bpf_xdp_[store|load]_bytes */ - net_prefetchw(netmem_address(frag_page->netmem) + frag_offset); + net_prefetchw(head_addr); =20 va =3D mlx5e_mpwqe_get_linear_page_frag(rq); if (!va) { @@ -1956,6 +1958,8 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *r= q, struct mlx5e_mpw_info *w linear_frame_sz =3D MLX5_SKB_FRAG_SZ(linear_hr + MLX5E_RX_MAX_HEAD); linear_page =3D &rq->mpwqe.linear_info->frag_page; } else { + dma_addr_t addr; + skb =3D napi_alloc_skb(rq->cq.napi, ALIGN(MLX5E_RX_MAX_HEAD, sizeof(long))); if (unlikely(!skb)) { @@ -1967,6 +1971,11 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *= rq, struct mlx5e_mpw_info *w net_prefetchw(va); /* xdp_frame data area */ net_prefetchw(skb->data); =20 + addr =3D page_pool_get_dma_addr_netmem(head_page->netmem); + dma_sync_single_for_cpu(rq->pdev, addr + head_offset, + ALIGN(headlen, sizeof(long)), + rq->buff.map_dir); + frag_offset +=3D headlen; byte_cnt -=3D headlen; linear_hr =3D skb_headroom(skb); @@ -2056,8 +2065,6 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *r= q, struct mlx5e_mpw_info *w __pskb_pull_tail(skb, headlen); } } else { - dma_addr_t addr; - if (xdp_buff_has_frags(&mxbuf->xdp)) { struct mlx5e_frag_page *pagep; =20 @@ -2071,10 +2078,11 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq = *rq, struct mlx5e_mpw_info *w pagep->frags++; while (++pagep < frag_page); } + /* copy header */ - addr =3D page_pool_get_dma_addr_netmem(head_page->netmem); - mlx5e_copy_skb_header(rq, skb, head_page->netmem, addr, - head_offset, head_offset, headlen); + skb_copy_to_linear_data(skb, head_addr, + ALIGN(headlen, sizeof(long))); + /* skb linear part was allocated with headlen and aligned to long */ skb->tail +=3D headlen; skb->len +=3D headlen; --=20 2.44.0 From nobody Sat Jun 13 13:03:25 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012032.outbound.protection.outlook.com [40.93.195.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4BBE3C9EEB; Thu, 7 May 2026 09:54:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778147672; cv=fail; b=KYQKBqDMLBcCyJkU0iVLGNLP2RNZGF+GlowRB9aLvej4uTJBZ6rW2F6HUYu5j1eirOwDZJJV3gKSMJ0RFTDVTraw4rj6sAxi/iyiDDjRiv1x9ua21/4Y002OQaKRKc5HVkSydrptmIccj7Se5ZrqRbLeh87BvNqFWd40wMIzB14= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778147672; c=relaxed/simple; bh=a8QhLbNpeuxAZgX/L6u6V1dLCg1xdO1PXfTFf6dxatY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eXXbdyVEbKopz9sV+X6vTukAC7eJxCJGUn83f2zr+yW0RwseFQjvzaVKPBmbdfa1UaCaPVA287tsWgjKPQQBnl+TkW3t6/luGBY+kUIrN8yE4pa5tKlH1k0fr3FyB2IiLHVBEQ1035cNpaKhxS+3WRCqza4kc1KUHWhRv8LDOXk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=eG2tyZN/; arc=fail smtp.client-ip=40.93.195.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="eG2tyZN/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sxoNfW59oZLJYzd2oNnDxtR6U2cSkvoRk12wBG7FGf758NKaaAnBDb/r4NY5Hq7lfzQBi7i9KVCrdN8ukLFgq2uBQaYY5AnNXbpPsB5vkU++REm2860mv4dIWUGKEbvcODlHy5Q6hamkpeuo4jeSO0vO8c3Gc10Na1/4y/SJbY1nPT93PyhnMh+stQKe4ZIUGBoiGYDRWvIhoYbTqDVZ9JrOuGBjxMuxBrHDzYh9mPmcWT21y2MudO0k7aAyuxmt7U1X0YsqXUgOnbY2oTBO6nCvvBG2aNiQjo07s47AxWeB8FuF/oN2U5KNNWJRDg0Tg3nCOEZ2RPIdhwGtIMuWsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=qb6TNQz0C4ZuLdp2sTGOAm+9TAnE8CS56zi+fzGJ0Bg=; b=aQE7o1gZM3c42WB6LzPSKdtQc3TL00hBT5TMIUCpakKiBpkMoPUhLIoH09Urlz1rGFO9mAceAsoZNeFXPt+rZURUGw7cHYe1S5e+wJHJKAmcworHn1A94wOUGe0BOv+lqtYh7Dn77HYKpc0biHpcqvYZd2V529Chl1iSAD1n6h+6+bd+CvgVQbQxc1CZCj5hdsYPMrsCTlph2iPO0ORyhIN7xuXaFGcEkGZmyn4NC3+DvXk4kEmdrn46qu1wb5TIiokUjIlHqauv9SyfL/Je8fb1q/5hKNuklH3O/2TYoVKVeBmzkQTzGY6uiSwfA+DB3+sFGhDA2pj7JOFDuivrOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=openai.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qb6TNQz0C4ZuLdp2sTGOAm+9TAnE8CS56zi+fzGJ0Bg=; b=eG2tyZN/uB0BVGrUeqcqyP2mp7+/tICT556R49dkuWCF+S0ICDpyLmnJlTOWKdzufuSMjysqRp2oCmwbil0fZUaVVrRCerErltVx1J23NW29Y87nT2s7zjI7aU8XAWnfNcolE/Y6I/3n8HUxH3ymeGsBHqApBcJhSvoebsnFNgORqiVxB2kESMclW7FPJB/dJvUWoNT7pQUYQ1XbdevFR5wD3wRyjS9g5L4TD7Je5VYzfCEB94Z1YgKxbA98+m2q4MusVfiKYcD1gAunLc7oc3lDv/mtFmrbvrgMogz+COldF0gK65zfTI6KKN3bcVRvdhVDsxMZpW0l+KRalbWuVg== Received: from BLAPR03CA0166.namprd03.prod.outlook.com (2603:10b6:208:32f::18) by DM6PR12MB4314.namprd12.prod.outlook.com (2603:10b6:5:211::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.17; Thu, 7 May 2026 09:54:25 +0000 Received: from BL02EPF0002992C.namprd02.prod.outlook.com (2603:10b6:208:32f:cafe::62) by BLAPR03CA0166.outlook.office365.com (2603:10b6:208:32f::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.17 via Frontend Transport; Thu, 7 May 2026 09:54:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BL02EPF0002992C.mail.protection.outlook.com (10.167.249.57) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.9 via Frontend Transport; Thu, 7 May 2026 09:54:24 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 02:54:11 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 02:54:10 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 7 May 2026 02:54:06 -0700 From: Tariq Toukan To: Christoph Paasch , Eric Dumazet , Jakub Kicinski , Paolo Abeni , "Andrew Lunn" , "David S. Miller" CC: Saeed Mahameed , Tariq Toukan , "Mark Bloch" , Leon Romanovsky , , , , Gal Pressman , Dragos Tatulea , Daniel Borkmann , "Jesper Dangaard Brouer" , John Fastabend , Stanislav Fomichev , Amery Hung , Alexei Starovoitov Subject: [PATCH net-next V6 2/3] net/mlx5e: Avoid copying payload to the skb's linear part Date: Thu, 7 May 2026 12:53:29 +0300 Message-ID: <20260507095330.318892-3-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260507095330.318892-1-tariqt@nvidia.com> References: <20260507095330.318892-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992C:EE_|DM6PR12MB4314:EE_ X-MS-Office365-Filtering-Correlation-Id: 29d5d685-1178-4fc3-09bb-08deac1e9ed1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|7416014|3023799003|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: nUPENdMX5Lr9lug8TZJpgyXUUAfQH0O6Lphnf3e/DBlhq75NAOS0+zkABrBIKkijld9TqapUSW2FAZnSA/5UN17a8bd+s5usc/Lgl/XjZjHt8JeNoHkn2ZZzTr5Y+TIjljaKQzgR1pE07jswWy4fYI7/IT0BdQYPQAYR6FYbIsiCeCysqZCJSgN14uK4vaOKG7Olux+cBDyySAGQ0ujaIguy59GFtqjWu4MgbqROfipoMg+UVXb1dyhuGB3CEjdgbULBJA78w8iPnktdsWrNklGhqKOhAm7FDFSEKe6RvgJ4gWZ75wIiSCaBNiDcSHaLKURNEUXcqZeZoLNNy+uqy23KeP9vfwgRom1mfMosreTqP4c7jiA7IQQE0q/qTbubZVz26OQmsZFWazwsjEtw/8QCBHCjuqvZSoymQrQzpEfZhC+P2lJiDAjkLL9KE28Mo1tiMFUW/JMvIkV7Et2fkkxmLkUpGUNdX4Wt/ugYHNCtWCRHlLRXLsQ+3PazhXF05cCPlCjT3WJTfCvpHr/R6xter/X4uBWELtMzTLmv+xStLhaurTPwBJDpaZR1ncH1KNvGrkt+kAK3v6LDfPBMYORUDeCJeys7ha7L1khmTOZq2j85sx9q6Ug9plAemvQG/PUXhQhY82T5Sg4rvH3wUiRTKy+UMNvirtmZ1L36U6IpPrjPJqm3zMoLxYeQoLAbOUqyDMN8KdiY0mtaIV2D9qx38Xs+MQkE+1Yx2rHEZ0E= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(7416014)(3023799003)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: H3O1knRjQZx3HH5vD2DpJ9fhAmKz3ya0PVkigCM08Ul9FLNyl6GUYv2vd+mSgsbSaTe+nb/a03Fan6eG04zLo0XlykFxiWmdnnnwnUTjTlhpNHjDRhaHRhoiEuN57x+sS5YBxF97X92CO+M7z30tjG/Sj0HxLwX+VEWQAK6ttBbserdo3T3Hly/IGEqT7utKxhaem23zLjjBBbO0bWIShkBgR34CO50hV4y3xO0veUWXSZuc54shBbM8ADgmKrTDNfn+aBfRgITjyrgfmW0ylrbqSF9mzv7uWXggPYE3ZKYaCNQTiu4o3DL63n7ySN9AzY1wf4oNMkGdof2ukjisdPGFHvDlp/v5bPXJfSWtfuW4hzyysgYKQ8mtUYvWxfcxzAbrVexP72cjmVQ6Xi0SfWzT5/jS6AeojjIyPt50AuRfQxgtzWwyV/0hs6BA/p2s X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 09:54:24.4708 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 29d5d685-1178-4fc3-09bb-08deac1e9ed1 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992C.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4314 Content-Type: text/plain; charset="utf-8" From: Christoph Paasch mlx5e_skb_from_cqe_mpwrq_nonlinear() copies MLX5E_RX_MAX_HEAD (256) bytes from the page-pool to the skb's linear part. Those 256 bytes include part of the payload. When attempting to do GRO in skb_gro_receive, if headlen > data_offset (and skb->head_frag is not set), we end up aggregating packets in the frag_list. This is of course not good when we are CPU-limited. Also causes a worse skb->len/truesize ratio,... So, let's avoid copying parts of the payload to the linear part. We use eth_get_headlen() to parse the headers and compute the length of the protocol headers, which will be used to copy the relevant bits of the skb's linear part. We still allocate MLX5E_RX_MAX_HEAD for the skb so that if the networking stack needs to call pskb_may_pull() later on, we don't need to reallocate memory. This gives a nice throughput increase (ARM Neoverse-V2 with CX-7 NIC and LRO enabled): BEFORE: =3D=3D=3D=3D=3D=3D=3D (netserver pinned to core receiving interrupts) $ netperf -H 10.221.81.118 -T 80,9 -P 0 -l 60 -- -m 256K -M 256K 87380 16384 262144 60.01 32547.82 (netserver pinned to adjacent core receiving interrupts) $ netperf -H 10.221.81.118 -T 80,10 -P 0 -l 60 -- -m 256K -M 256K 87380 16384 262144 60.00 52531.67 AFTER: =3D=3D=3D=3D=3D=3D (netserver pinned to core receiving interrupts) $ netperf -H 10.221.81.118 -T 80,9 -P 0 -l 60 -- -m 256K -M 256K 87380 16384 262144 60.00 52896.06 (netserver pinned to adjacent core receiving interrupts) $ netperf -H 10.221.81.118 -T 80,10 -P 0 -l 60 -- -m 256K -M 256K 87380 16384 262144 60.00 85094.90 Additional tests across a larger range of parameters w/ and w/o LRO, w/ and w/o IPv6-encapsulation, different MTUs (1500, 4096, 9000), different TCP read/write-sizes as well as UDP benchmarks, all have shown equal or better performance with this patch. Reviewed-by: Eric Dumazet Reviewed-by: Saeed Mahameed Signed-off-by: Christoph Paasch Signed-off-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/= ethernet/mellanox/mlx5/core/en_rx.c index 75ccf40a7f17..301b33419207 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -1976,6 +1976,8 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *r= q, struct mlx5e_mpw_info *w ALIGN(headlen, sizeof(long)), rq->buff.map_dir); =20 + headlen =3D eth_get_headlen(rq->netdev, head_addr, headlen); + frag_offset +=3D headlen; byte_cnt -=3D headlen; linear_hr =3D skb_headroom(skb); @@ -2012,9 +2014,13 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *= rq, struct mlx5e_mpw_info *w =20 if (prog) { u8 nr_frags_free, old_nr_frags =3D sinfo->nr_frags; + skb_frag_t *frag =3D &sinfo->frags[0]; u8 new_nr_frags; u32 len; =20 + headlen =3D eth_get_headlen(rq->netdev, skb_frag_address(frag), + skb_frag_size(frag)); + if (mlx5e_xdp_handle(rq, prog, mxbuf)) { if (__test_and_clear_bit(MLX5E_RQ_FLAG_XDP_XMIT, rq->flags)) { struct mlx5e_frag_page *pfp; @@ -2060,8 +2066,7 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *r= q, struct mlx5e_mpw_info *w pagep->frags++; while (++pagep < frag_page); =20 - headlen =3D min_t(u16, MLX5E_RX_MAX_HEAD - len, - skb->data_len); + headlen =3D min_t(u16, headlen - len, skb->data_len); __pskb_pull_tail(skb, headlen); } } else { --=20 2.44.0 From nobody Sat Jun 13 13:03:25 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010044.outbound.protection.outlook.com [52.101.61.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E42D3CEBBC; Thu, 7 May 2026 09:54:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.44 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778147677; cv=fail; b=D1y3qRdNTNZddfjdLrlx+6FnHzlLcXAt+KwgL42XdmapJR7P/51lAPN2cgLIfG+oWFaP7ocnsL9ZpMymE5dBVv1U4eFLgReVLGQDv5gmJZgkCG6W1Ne6AYl7bc2nhAIVPUWRSRDRrqc4I8oVCVccuBxROOh7ifNOcedlY/2d1L4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778147677; c=relaxed/simple; bh=TITk72mWppCLlR4JBt8FfzTf5Xky/PartntqY68GRJg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Pyc+UP1mVVpZP6e/HdLxlhioWIEPVRIIHkCyyxTRnESSQCxeZ6KN2OBjrFANCmao34hXQpdwekUmkSDAALEOjTy74MVJ6htuaesp2wrZrDej3ab/L5oT/jwcUpCpFpEITg7zf+awJmZZHjHXJgnLI4uk2e1yA/+UWZT6JLS1UkE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=TL1uqM+K; arc=fail smtp.client-ip=52.101.61.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="TL1uqM+K" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mKAbOVGeoC+T/RjaUJXSFFX6mNGCP+iyQMMTHPZEYo2hl1CBG+oHERETQ78IsW8jNJUSIvSkx54SnqjkDRtdELVAoI5I0w1isBTRVdJtDrNeXZ8cBd129QqYGadTBrPWzCL2HxCDOx5Q4GMC8o7SUYq5AawpWMpDvsezthn41IJe+HO5G7F+mk7jDcEtwi/FT2JCq0xgYh78YrlqcO+n593+MlJJeIQYuseuReMY+QRGn506jArtwo6VSDFkF5A90NjPylJmgGsu+AZk6uqTkqWLyaRdoXCv12iaA3doCyt/HbLKXodqanLwMjWeZmcEre0uW9bt0UuvWOtoWtk7Yw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=bY/WzmSAdUJL9CFEZO0ImygcVkQ2Kn4fuLtEx0hwtVc=; b=fZWZjzpwdYAAifPoxqt75QOeiK88/1BwbJ1a856MFaGTlgPoW0fFla5Q5lb5IsZDPowS6WAXFt1Biu1bHxSpGH1B/TSPee0SJr4FWcuNFYufh4TGFQYGCc4rHOdf4SFjOYExm2JqkINt7s1PUfwCjkh9+U/e/6esjWJASDB5B940j0y5QwSh23kpNVbAH1SBZPvm+wL9In1W9CmrUBh7m57rNxbKGes51WcfxNYAZy0WxjpEHe4UNkn0yXxDxyK2sQO8qqZ2NidlshrIrmVvf8CAoLQQ0RpUhTWXkmK30IS3mcbmJl7blu0HN6Jl+juj/WpnJm2T7ArrB8szFwSirw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=openai.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bY/WzmSAdUJL9CFEZO0ImygcVkQ2Kn4fuLtEx0hwtVc=; b=TL1uqM+KTP/BYp3O6J5eWQ/5KO3khKA9S8bMglJ0zoQAfFIrtsAL7R+NZxxCkAHzyIdwEg9bsVR9pGH95mJVL557jXJMODyvuvVbD/XzAABmJJMhq/JVRTdsgci2G9LtgAh1eUQv7tsrBbFSnqrwDcnBtskU1WfwdfK4nDu5zV/TmTnd/uiG7ukmSOxFt0ai0twGPHrrZpknKhT/PkFTZRkP8eiaE+HR4Px9xoHnERw8aErrRg2LWhw9jXm7xs0ntde/oS7Dl1rgZlJv1OkIVOQYjy/AqcMAFKE1d84lDYdDqRScSx7lVO6a1pNU2TbfHupf/JI2GNHA8o/y9EQ8Rw== Received: from SJ0PR05CA0119.namprd05.prod.outlook.com (2603:10b6:a03:334::34) by MN0PR12MB6150.namprd12.prod.outlook.com (2603:10b6:208:3c6::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.15; Thu, 7 May 2026 09:54:31 +0000 Received: from SJ5PEPF000001C8.namprd05.prod.outlook.com (2603:10b6:a03:334:cafe::fe) by SJ0PR05CA0119.outlook.office365.com (2603:10b6:a03:334::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9891.11 via Frontend Transport; Thu, 7 May 2026 09:54:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SJ5PEPF000001C8.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.9 via Frontend Transport; Thu, 7 May 2026 09:54:30 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 02:54:16 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 7 May 2026 02:54:16 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Thu, 7 May 2026 02:54:11 -0700 From: Tariq Toukan To: Christoph Paasch , Eric Dumazet , Jakub Kicinski , Paolo Abeni , "Andrew Lunn" , "David S. Miller" CC: Saeed Mahameed , Tariq Toukan , "Mark Bloch" , Leon Romanovsky , , , , Gal Pressman , Dragos Tatulea , Daniel Borkmann , "Jesper Dangaard Brouer" , John Fastabend , Stanislav Fomichev , Amery Hung , Alexei Starovoitov Subject: [PATCH net-next V6 3/3] net/mlx5e: Align header copy to cache line for Striding RQ non-linear Date: Thu, 7 May 2026 12:53:30 +0300 Message-ID: <20260507095330.318892-4-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260507095330.318892-1-tariqt@nvidia.com> References: <20260507095330.318892-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ5PEPF000001C8:EE_|MN0PR12MB6150:EE_ X-MS-Office365-Filtering-Correlation-Id: d8587488-5f7f-4b31-29bc-08deac1ea26c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|7416014|36860700016|1800799024|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: qWiBLt2RGm/E8Or6Zr63Gzs+WOxAS7XlqGS0Fm4zYUc3MkNhRAD6c8/z9GAxR+1+R3MF2RKcpX7fWFqvkPCmV/NXDwTmAPUSxpnwZYoxf0CVDUcetfKtc9S1vMxhkrlqKm8WdONceC8TqiSAamU9g/T/Y7Wrt7Tc+l6ktj5nl5K8mDnHjNLWh8dG27E1Da73NQRpcUSjV3EFiyK232SRrngCQmk7GKmtfQAdvpgYzVMdD+mH1KHO5RhQWtlmy4IZnJ2NH1S7napVRxJJq7+TDe6ek13HRNPVMTJR5XFLOjQNgcXRyqbJQVz8WqTvNmheHtlD/Q1wG+cV9VEVEty7Jfj308qKzPhWSuERs/ghT1UlrL/6BxHUlrnafgTZlhA0CkfWFotLwAr4rVdfhIBrKzAB0enj9U3dBVTSDbDYQMOC/SI0X8J5MjInx49WgnS5rYIzW4zqlGxJFbAOT+R7p+FrPZ3mSPyXXjnxRH0IVdMnS7yErNG4LRUF3Bl/DVXPXZIkOc0uWlorjfBD6LK7VOxrOZqZQy2Zif4T9NswW4uW5YJ+rvQX7sWue5tTJKoxYrT8yoPCSrfptJaM4H3xSDuDrr6KGyzcqWt+Q0Xdvmz8FSXsdideHY563aXCnK2CyKiJF8p//XzVt6U6SBXOy7bHAFCD94L8XDwjA+T3QQuMIT5x38USkPWvojZ6FzH0V3/xLIszEI0yL7Nae7IoQvuVoUwXjG/UPjcxSnrFvVk= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(7416014)(36860700016)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cp0rNq7cjbsyt9iQZndMbuqLDxW6MvCWit1QCiNtoFVo5yUUaOd7I7/ARCniFQfYJHkvQlXZpVKSJwFe85Fbr1hi42Q4wUbUaLJH+KFfAZA4c3VOwkZCczKy2Zd/PuyN0AEXrKw+5ApmYUV//betmbJdeX4UJhhBcs+J527iTv+7b4KaV8WGm05NxmoTIWeys8+/cTrck2r2U/pkK5EYEoR8FX/0JKI+xLfB53218/iChnMv22qV1ZSsxGrjl8JAJGs+/yJ8Z1SvDBNqiG7zDkvE2zRh2dL5QV2QMwHn8TnZp2Lx1hAIFbF6qpiMFlfWpn33D9puQe+BGunWvnLDFQBNpbCu7w6BBmE0NG19wuDoLQ58abbmi/Zeg5Y7ymTx4LZrQYpo7E1RqwJ/mZzvtbsJpryFUO/Sc4rQbpOtfnKRnF1vFmS6lt7OhU+cGDOc X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2026 09:54:30.6939 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d8587488-5f7f-4b31-29bc-08deac1ea26c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ5PEPF000001C8.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6150 Content-Type: text/plain; charset="utf-8" From: Dragos Tatulea In Striding RQ non-linear mode, there is a memcpy to pull the header from the first fragment into the linear part of the skb. As the header length is not aligned, it can cause cache thrashing from a Read-Modify-Write cycle for the remaining bytes of the cache line. This patch changes the memcopy length to be aligned to the cache line. The DMA sync is also aligned to cache line size accordingly. Note that the original DMA sync is done on the initial conservative headlen which is min(MLX5E_RX_MAX_HEAD, cqe_bcnt). To show the improvement, a test was run with an XDP_DROP program processing 64B packets at 100% CPU utilization over a single queue at 9000 MTU: |----------+----------+------| | Before | After | Diff | |----------+----------+------| | 3.6 Mpps | 3.8 Mpps | 5% | |----------+----------+------| (CX7 NIC on Intel Xeon Platinum 8580 system) While small packets profit most from this improvement, large packets are not negatively affected (no regressions). Suggested-by: Tariq Toukan Signed-off-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/= ethernet/mellanox/mlx5/core/en_rx.c index 301b33419207..e5963e1b5309 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -1973,7 +1973,7 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *r= q, struct mlx5e_mpw_info *w =20 addr =3D page_pool_get_dma_addr_netmem(head_page->netmem); dma_sync_single_for_cpu(rq->pdev, addr + head_offset, - ALIGN(headlen, sizeof(long)), + ALIGN(headlen, cache_line_size()), rq->buff.map_dir); =20 headlen =3D eth_get_headlen(rq->netdev, head_addr, headlen); @@ -2086,7 +2086,7 @@ mlx5e_skb_from_cqe_mpwrq_nonlinear(struct mlx5e_rq *r= q, struct mlx5e_mpw_info *w =20 /* copy header */ skb_copy_to_linear_data(skb, head_addr, - ALIGN(headlen, sizeof(long))); + ALIGN(headlen, cache_line_size())); =20 /* skb linear part was allocated with headlen and aligned to long */ skb->tail +=3D headlen; --=20 2.44.0