[{"id":3683942,"web_url":"http://patchwork.ozlabs.org/comment/3683942/","msgid":"<IA3PR11MB8986883A02B619BAA6FF478FE5342@IA3PR11MB8986.namprd11.prod.outlook.com>","list_archive_url":null,"date":"2026-04-29T09:18:41","subject":"Re: [Intel-wired-lan] [PATCH iwl-next v3] e1000e: Avoid DMA\n re-mapping on RX copybreak","submitter":{"id":75597,"url":"http://patchwork.ozlabs.org/api/people/75597/","name":"Aleksandr Loktionov","email":"aleksandr.loktionov@intel.com"},"content":"> -----Original Message-----\n> From: Matt Vollrath <tactii@gmail.com>\n> Sent: Wednesday, April 29, 2026 3:43 AM\n> To: intel-wired-lan@osuosl.org\n> Cc: Matt Vollrath <tactii@gmail.com>; Loktionov, Aleksandr\n> <aleksandr.loktionov@intel.com>; Paul Menzel <pmenzel@molgen.mpg.de>\n> Subject: [PATCH iwl-next v3] e1000e: Avoid DMA re-mapping on RX\n> copybreak\n> \n> This patch factors out DMA re-mapping for skbs which were recycled in\n> the RX path due to copybreak or errors. There is only one path out of\n> the e1000_clean_rx_irq() loop where the skb is consumed and DMA needs\n> to be re-mapped, so don't unmap it before checking the conditions.\n> \n> The buffer allocation loop is adjusted to not assume that DMA is\n> unmapped, handling mapping errors gracefully.\n> \n> On systems with IOMMU enabled, the cost of re-mapping DMA is greater\n> than the cost of copying data out of the ring buffer. When I use this\n> patch and configure e1000e with copybreak=2048, my system with IOMMU\n> completes RX roughly twice as fast under load.\n> \n> Informal performance comparisons were based on Asus Gryphon Z97 which\n> includes an I218-V and with a Xeon E3-1240 v3 in the socket.\n> ktime_get() measurement was injected into e1000e_poll() wrapping the\n> adapter->clean_rx() call. The total time spent in clean_rx() was\n> divided\n> by work_done to print the average time spent per buffer. iperf3 -R was\n> used to saturate the RX path and awk was used for statistics. Control\n> revision was set to 7.1-rc1 because iwl-next hadn't been updated yet.\n> \n>   rev     | iommu | copybreak | samples | mean (ns) |   stdev\n>   7.1-rc1 |   off |         0 |    4748 |    453.72 |  155.82\n>   7.1-rc1 |   off |      2048 |    4743 |    554.83 |  103.67\n>   7.1-rc1 |    on |         0 |    4751 |   1139.22 |  150.56\n> * 7.1-rc1 |    on |      2048 |    4737 |   1267.02 |  184.62\n>    +patch |   off |         0 |    4739 |    456.30 |  146.33\n>    +patch |   off |      2048 |    4739 |    538.56 |  132.97\n>    +patch |    on |         0 |    4769 |   1165.97 |  140.19\n> *  +patch |    on |      2048 |    4745 |    562.25 |  171.80\n> \n> No surprises here, IOMMU DMA ops are known to be expensive. For most\n> users the kernel default is iommu=on and driver default is\n> copybreak=256, so unless the workload is small packets, some tuning of\n> either knob would be needed to see the full benefit of this change.\n> \n> The kludge of unconditional unmapping has existed since this driver\n> was introduced in 2007[1], inherited from the e1000 driver which has\n> since factored it out[2]. IOMMU tech was new at the time.\n> \n> [1] Commit bc7f75fa9788 (\"[E1000E]: New pci-express e1000 driver\n> (currently for ICH9 devices only)\") [2] Commit 2b294b18689c (\"e1000:\n> perform copybreak ahead of DMA unmap\")\n> \n> Assisted-by: Claude:claude-4-7-opus\n> Signed-off-by: Matt Vollrath <tactii@gmail.com>\n> ---\n> v3:\n> * refactor unmapping bypass, use goto instead of redundant branch\n> * remove Aleksandr's sign-off due to logic change\n> * benchmark details\n> * cite historic commits\n> v2:\n> * proofread description with Aleksandr\n> ---\n>  drivers/net/ethernet/intel/e1000e/netdev.c | 32 ++++++++++++++-------\n> -\n>  1 file changed, 21 insertions(+), 11 deletions(-)\n> \n> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c\n> b/drivers/net/ethernet/intel/e1000e/netdev.c\n> index 7ce0cc8ab8f4..62bf85c768d6 100644\n> --- a/drivers/net/ethernet/intel/e1000e/netdev.c\n> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c\n> @@ -663,6 +663,8 @@ static void e1000_alloc_rx_buffers(struct\n> e1000_ring *rx_ring,\n>  \t\tskb = buffer_info->skb;\n>  \t\tif (skb) {\n>  \t\t\tskb_trim(skb, 0);\n> +\t\t\tif (likely(buffer_info->dma))\n> +\t\t\t\tgoto write_desc;\n>  \t\t\tgoto map_skb;\n>  \t\t}\n> \n> @@ -680,10 +682,12 @@ static void e1000_alloc_rx_buffers(struct\n> e1000_ring *rx_ring,\n>  \t\t\t\t\t\t  DMA_FROM_DEVICE);\n>  \t\tif (dma_mapping_error(&pdev->dev, buffer_info->dma)) {\n>  \t\t\tdev_err(&pdev->dev, \"Rx DMA map failed\\n\");\n> +\t\t\tbuffer_info->dma = 0;\n>  \t\t\tadapter->rx_dma_failed++;\n>  \t\t\tbreak;\n>  \t\t}\n> \n> +write_desc:\n>  \t\trx_desc = E1000_RX_DESC_EXT(*rx_ring, i);\n>  \t\trx_desc->read.buffer_addr = cpu_to_le64(buffer_info-\n> >dma);\n> \n> @@ -941,7 +945,6 @@ static bool e1000_clean_rx_irq(struct e1000_ring\n> *rx_ring, int *work_done,\n>  \t\tdma_rmb();\t/* read descriptor and rx_buffer_info after\n> status DD */\n> \n>  \t\tskb = buffer_info->skb;\n> -\t\tbuffer_info->skb = NULL;\n> \n>  \t\tprefetch(skb->data - NET_IP_ALIGN);\n> \n> @@ -955,9 +958,6 @@ static bool e1000_clean_rx_irq(struct e1000_ring\n> *rx_ring, int *work_done,\n> \n>  \t\tcleaned = true;\n>  \t\tcleaned_count++;\n> -\t\tdma_unmap_single(&pdev->dev, buffer_info->dma,\n> -\t\t\t\t adapter->rx_buffer_len, DMA_FROM_DEVICE);\n> -\t\tbuffer_info->dma = 0;\n> \n>  \t\tlength = le16_to_cpu(rx_desc->wb.upper.length);\n> \n> @@ -973,8 +973,6 @@ static bool e1000_clean_rx_irq(struct e1000_ring\n> *rx_ring, int *work_done,\n>  \t\tif (adapter->flags2 & FLAG2_IS_DISCARDING) {\n>  \t\t\t/* All receives must fit into a single buffer */\n>  \t\t\te_dbg(\"Receive packet consumed multiple\n> buffers\\n\");\n> -\t\t\t/* recycle */\n> -\t\t\tbuffer_info->skb = skb;\n>  \t\t\tif (staterr & E1000_RXD_STAT_EOP)\n>  \t\t\t\tadapter->flags2 &= ~FLAG2_IS_DISCARDING;\n>  \t\t\tgoto next_desc;\n> @@ -982,8 +980,6 @@ static bool e1000_clean_rx_irq(struct e1000_ring\n> *rx_ring, int *work_done,\n> \n>  \t\tif (unlikely((staterr & E1000_RXDEXT_ERR_FRAME_ERR_MASK)\n> &&\n>  \t\t\t     !(netdev->features & NETIF_F_RXALL))) {\n> -\t\t\t/* recycle */\n> -\t\t\tbuffer_info->skb = skb;\n>  \t\t\tgoto next_desc;\n>  \t\t}\n> \n> @@ -1010,19 +1006,33 @@ static bool e1000_clean_rx_irq(struct\n> e1000_ring *rx_ring, int *work_done,\n>  \t\t\tstruct sk_buff *new_skb =\n>  \t\t\t\tnapi_alloc_skb(&adapter->napi, length);\n>  \t\t\tif (new_skb) {\n> +\t\t\t\tdma_sync_single_for_cpu(&pdev->dev,\n> +\t\t\t\t\t\t\tbuffer_info->dma,\n> +\t\t\t\t\t\t\tadapter-\n> >rx_buffer_len,\n> +\t\t\t\t\t\t\tDMA_FROM_DEVICE);\n>  \t\t\t\tskb_copy_to_linear_data_offset(new_skb,\n>  \t\t\t\t\t\t\t       -NET_IP_ALIGN,\n>  \t\t\t\t\t\t\t       (skb->data -\n>  \t\t\t\t\t\t\t\tNET_IP_ALIGN),\n>  \t\t\t\t\t\t\t       (length +\n>  \t\t\t\t\t\t\t\tNET_IP_ALIGN));\n> -\t\t\t\t/* save the skb in buffer_info as good */\n> -\t\t\t\tbuffer_info->skb = skb;\n> +\t\t\t\tdma_sync_single_for_device(&pdev->dev,\n> +\t\t\t\t\t\t\t   buffer_info->dma,\n> +\t\t\t\t\t\t\t   adapter-\n> >rx_buffer_len,\n> +\t\t\t\t\t\t\t   DMA_FROM_DEVICE);\n>  \t\t\t\tskb = new_skb;\n> +\t\t\t\tgoto copybreak_done;\n>  \t\t\t}\n>  \t\t\t/* else just continue with the old one */\n>  \t\t}\n> -\t\t/* end copybreak code */\n> +\n> +\t\tbuffer_info->skb = NULL;\n> +\t\tdma_unmap_single(&pdev->dev, buffer_info->dma,\n> +\t\t\t\t adapter->rx_buffer_len,\n> +\t\t\t\t DMA_FROM_DEVICE);\n> +\t\tbuffer_info->dma = 0;\n> +\n> +copybreak_done:\n>  \t\tskb_put(skb, length);\n> \n>  \t\t/* Receive Checksum Offload */\n> --\n> 2.43.0\n\nReviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>","headers":{"Return-Path":"<intel-wired-lan-bounces@osuosl.org>","X-Original-To":["incoming@patchwork.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=Tp/1asCV;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5BZ56djDz1yHX\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 19:18:53 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 5370361402;\n\tWed, 29 Apr 2026 09:18:52 +0000 (UTC)","from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id YGwa9dy8h8eI; Wed, 29 Apr 2026 09:18:51 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 74A1A613C5;\n\tWed, 29 Apr 2026 09:18:51 +0000 (UTC)","from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n by lists1.osuosl.org (Postfix) with ESMTP id 5F3DB231\n for <intel-wired-lan@lists.osuosl.org>; Wed, 29 Apr 2026 09:18:49 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 5C8FA8432B\n for <intel-wired-lan@lists.osuosl.org>; Wed, 29 Apr 2026 09:18:49 +0000 (UTC)","from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id NkpGxT0zoA50 for <intel-wired-lan@lists.osuosl.org>;\n Wed, 29 Apr 2026 09:18:48 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [192.198.163.17])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 7A6098432A\n for <intel-wired-lan@osuosl.org>; Wed, 29 Apr 2026 09:18:48 +0000 (UTC)","from fmviesa007.fm.intel.com ([10.60.135.147])\n by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 29 Apr 2026 02:18:48 -0700","from orsmsx903.amr.corp.intel.com ([10.22.229.25])\n by fmviesa007.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 29 Apr 2026 02:18:45 -0700","from ORSMSX901.amr.corp.intel.com (10.22.229.23) by\n ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37; Wed, 29 Apr 2026 02:18:45 -0700","from ORSEDG901.ED.cps.intel.com (10.7.248.11) by\n ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37 via Frontend Transport; Wed, 29 Apr 2026 02:18:45 -0700","from CY3PR05CU001.outbound.protection.outlook.com (40.93.201.2) by\n edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37; Wed, 29 Apr 2026 02:18:43 -0700","from IA3PR11MB8986.namprd11.prod.outlook.com (2603:10b6:208:577::21)\n by BL1PR11MB5303.namprd11.prod.outlook.com (2603:10b6:208:31b::22)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.20; Wed, 29 Apr\n 2026 09:18:41 +0000","from IA3PR11MB8986.namprd11.prod.outlook.com\n ([fe80::e6f0:6afb:6ef9:ab5c]) by IA3PR11MB8986.namprd11.prod.outlook.com\n ([fe80::e6f0:6afb:6ef9:ab5c%5]) with mapi id 15.20.9870.013; Wed, 29 Apr 2026\n 09:18:41 +0000"],"X-Virus-Scanned":["amavis at osuosl.org","amavis at osuosl.org"],"X-Comment":"SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ","DKIM-Filter":["OpenDKIM Filter v2.11.0 smtp3.osuosl.org 74A1A613C5","OpenDKIM Filter v2.11.0 smtp1.osuosl.org 7A6098432A"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1777454331;\n\tbh=KQ3n5EYi5KT5AOicd2NsZuCygeHw/XpcWl1MIOfFFTQ=;\n\th=From:To:CC:Date:References:In-Reply-To:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=Tp/1asCVGApqjaCmrsWkUGeMRWScAM7FwqouD2j7Y8Ba9jusgvDN02LdvN6jyMXLf\n\t ZfWGd34wkR+bicp4kZb7HeVrD5sI8F0E8Tu4y60Wl9nRyh4V1n5PcbDNBzHMW3kD8U\n\t OrgI55kh0jbWWBLMt68SPMHVpXa03di7N3wKxNkJj26x/eBixXyjnXOI375CZu/dGp\n\t uEdeBTjNmwLAM2QCXSP/CfmrIu5qM/sCpQ1G+Z/USas0K0MgW42GzE0p7cyRyvabDl\n\t D4hHNcDdJ7LrhqRiHfarXDCcqE8MkFzUYkNbtdEia+GRY5a14Z/3j3D0r5IQxpzTmt\n\t udQViac7qNy1g==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=192.198.163.17;\n helo=mgamail.intel.com; envelope-from=aleksandr.loktionov@intel.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp1.osuosl.org 7A6098432A","X-CSE-ConnectionGUID":["wTmpLSJIRgeHiaVq9O7vqQ==","wmIS1McHQ1eE/BaQoVeKCg=="],"X-CSE-MsgGUID":["qzGgq/0NTiSZ4tMo0FXM7A==","400PGg00TZmha/8PchA4EQ=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11770\"; a=\"78255030\"","E=Sophos;i=\"6.23,205,1770624000\"; d=\"scan'208\";a=\"78255030\"","E=Sophos;i=\"6.23,205,1770624000\"; d=\"scan'208\";a=\"231072659\""],"X-ExtLoop1":"1","ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=jOF/VTJrnoNYgQ8Eck0asJ79xxK3Pj2W7OhAEjmw+SgrpY8Dh4uh55pCYnXqLSDPfwYUUUqPZI8Tfu6jFpVi2zIxXsMKPeJ4chIXXR5RAYi45A7a471gOArSOQv8dqWhL+TLTORFAb2Te8LVlyO9WEuoQ7RQHD/6uNPBWX3XAeDINRhi+bIn11XmgR1UvnqkdypeMKYB6dKeceDhTwxH/7s1me/k1CaSeAGQDHf3T05YlnLZHApX8UnWEcohe5ken8a+BSYCGsfUZZNCoRman7wgz/gRk0C0XvedKuX+BtASJzKN9iEAm1OpiHJ3ZNo2lK9G/pxCgFdHv008MvbXug==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=KQ3n5EYi5KT5AOicd2NsZuCygeHw/XpcWl1MIOfFFTQ=;\n b=neizzewCnRpnfZ/HPw24nUlQTRn4sFW0G3Xw6TpPa4yz7y0gHAsdEatUHgnccR/sqr8zTkWompymw/oWecNiW4f+7etcv2i89/QikdDgl2dcLM7pT3DppoUD+mKiF471odKKBbSRQWVmkrxvFb9XnN7++oeWKWN578n+6NvMSGp/Ue0d6uoTxXWjH2QNqWXOPQ9btFfZmQrm14cYjnDaCuU3b4JbtVb0mHAAirWdNwi59qPM0ecorvqSXl6DendOYo53UTs9pF8soCJucDrMP5cKWjLENoVKCz9w906m9jKYkoGyqwOTOXPfBuoCLRXvmr1ethZER6CRP4aKZ7fFjw==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;\n dkim=pass header.d=intel.com; arc=none","From":"\"Loktionov, Aleksandr\" <aleksandr.loktionov@intel.com>","To":"Matt Vollrath <tactii@gmail.com>, \"intel-wired-lan@osuosl.org\"\n <intel-wired-lan@osuosl.org>","CC":"Paul Menzel <pmenzel@molgen.mpg.de>","Thread-Topic":"[PATCH iwl-next v3] e1000e: Avoid DMA re-mapping on RX copybreak","Thread-Index":"AQHc13mpGZCrMv4CmUyGLNBxuNpCXrX1w1Fw","Date":"Wed, 29 Apr 2026 09:18:41 +0000","Message-ID":"\n <IA3PR11MB8986883A02B619BAA6FF478FE5342@IA3PR11MB8986.namprd11.prod.outlook.com>","References":"<20260429014325.19136-1-tactii@gmail.com>","In-Reply-To":"<20260429014325.19136-1-tactii@gmail.com>","Accept-Language":"en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","x-ms-publictraffictype":"Email","x-ms-traffictypediagnostic":"IA3PR11MB8986:EE_|BL1PR11MB5303:EE_","x-ms-office365-filtering-correlation-id":"b3686022-d02e-4095-5e3b-08dea5d04ddc","x-ms-exchange-senderadcheck":"1","x-ms-exchange-antispam-relay":"0","x-microsoft-antispam":"BCL:0;\n ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003|38070700021;","x-microsoft-antispam-message-info":"\n cl8aW51OYH+y6YKDjaSvyiZQbeoYJpO26BaHXV/NCworBKT+yAzyuGNXxvLE8S7n/hDQS9Ghved9QYUTT9mLt8AcArQYPNUfaYOT6uA9JfVZjDUK3nnYGy7IaYd99DHuZ/JFJaqZiZCgfBSGjRolnx1Rj26L7EwSQGZm07wUGS77euYKUU/KmPhr+z2E0EF71Gz/PDzhwmXrxlFCPejXSpUxPSIuFQqNwReBWI+LzmvEKdzRvPRx/OsYWDPva6a/N8HkYWe/PkIGl17NuD+3walsPzR/laM6H49HL3oBsCYFun62xcSPTEGc9e3MSJ56odtxZIBBM17pK8Izg9fYYq2M2RyRArG5tIgOa0hRL43KaQz7R8NVlyyCkPinf3yseXLTHKKx1Hex16FzYCGJQOcL2Lnq1pWi79wo7ond0tdq/jx4uJ4fkLFjZ/dmDh6tPBFTVuZy2MqlN1uJtHKiHkjam4errVzw1263Ljh51roSp+MDA4lyGAi2cEJn++15MgsDh0Dwj0h5GzSS+2jfPvlHvCK4lpAeLjvcDgYvXo6Xb/ZwYZxbhRrZmfHf9v//3EAwZX9up88LWdJJxqJMpHzK3wmkcRyvHUIORhbs+BzG0O14LbYgea083VYiYQfg62LzoB0/CRXYpovW/LjxbVLrETvrbf5zItneZ6eYjibim38H1HrZ2iT1WaYxL7KPyUMYfOM/q4+ahltic9IkhD2nDkiM2aZ0p8HCSraJqkg/3W6xMKF6tCxVc/wPc6af/FE6sGMT5WwEIv77sYJLErhuMpd03Fbod9tHYVdu8hg=","x-forefront-antispam-report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:IA3PR11MB8986.namprd11.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003)(38070700021);\n DIR:OUT; SFP:1101;","x-ms-exchange-antispam-messagedata-chunkcount":"1","x-ms-exchange-antispam-messagedata-0":"\n qILf5s+KQtDUpHblPCqq+X4hcbnNd/1gZc0gnctYm01hyj3D8mNZ+2aGa8drwZgBUROVcPJvcnX60L4SxdjOSoyNB4/skXC+CemVUVNefxXWmcShDqYH/WbOy8UXTXLHvbJfnCgebdrYDe9cYKDN2y3OuYs1QiwDvQn2WluDDETbp/sdC17nXqwLvWUqjDGnuR8/3nfVM1MJ3yWlSYfX7mStjiTaRzVOnY2IKDsV4XED/bSRY0jeq1u1OB8dgDDN3D2smoEhogfSli7TyTi0Uw0V0iKhSp6roh/pYMLGbMhHgX6+z4OpFgTGuMF5G9hoUNLzBGms67aRPvb2LYT1Hh/iRRgATje8po3n8skx6qPUAmm/7KL/79+P7dh5bo4D6WTZW08DUAlDbS5FdaoETykhmnyAqOL4ARDwux1DA6syKT0NCins1/LKo3ONKxX3FB3sRaOKnQiRXeWX8U+N88wcOO7KHsXj6gbiW/zKC6Rv5QDi2OHnEVW0erH+qQOr9rnXN09kjcHkHWjMJmNP2UyJIIwg8mLcKm5mASr9xfd2OlpZfSSQqDye3FnGrVSGNBjpJwER/90OM6mJshMDaHWtAznjedrlbJFWE4ePnkhYPqqii5KSnERwN/O/h/PatadmzESvDXHkVPWCsWrJHV2zrxdiPIO5COjVqRMQwtIzBIbdq5E7OqCu3rE/47HTYtereHBpqmHTrd1wCLwN8ELKmuiI1ROsMKemq19+Txn5Q2TiuxN/YUnz4WXkc0PDFv6K3i8uE42AtAr9a3xRbElpNG9UuxhRj4VQ0VvRUT7aek1cg9OfARppUl+uq/Hu6SdxSX7sfCJDTxlxTyYwnhblmtE+9s3exDHv1othYCfyU4jLqF9qBkaQ3CbMYhQix5xVg+6SDUfDwWnN7c4axZloJfk+Gaf2obwg1tZP2rfITe+KLyAUDdIgo6BlWyGz+9YDOchYqfs05W+trvsCDoqy3YjvgSQWDQpNP+AucLgTtPHT0bWUdrX3MT6S+3EXjvaE3W/kqTi5dfQMmipUEng3ZqfMCtsa0Q/nULVelWCsBdbxeBpp6WP4pBn0BuUNCZCK49tu7uKFDIzkKbrzD2SqxSyQbydBmp9sW9nZFZ/tQJ3zjPP7bIfFGhq6b0PxASQSCez7jpyOOWrp3wivUD1r7+wZgkqIEoAawXp/0PyBZWkAKhtHffGGKcYyPtyWu7Khma1Stou5q5c0H+7qYHotB/CTsXqSOjDqCiolbt6/ajCt2zHBGS9wGb8sIo9eUw8R1s2R1vephTepFK+UinDdjnvNit/DCAoh9k8X4sdwP4oKqOGI+Xcb+8FrFFsjg4RLNg72xRbxuN20XjrRS26CWPBa8AYjJ8F7M/btNzIdLbn5Ou3EWLw0I91opqf3HlVCAq4PzcjYveYnvbFbQpbmGdU5fsPaovd1SER+eq7fpG4wUTYbu5IZKN7cWsBYKoR+2LB2EsFL2fpFFtLuSHhWg6F0/7aAURZRye28WRStmImDoKzY6bTMK0eGcRMKRN+LN6gUJg5Cs6v12aZrC73xNgy/BNsrOFveWwuEwcbJ4X8tGohjjnQXxrM8Fa0Bp0+z/EBUi/gg0CwBTsYwpjAjF7T6TM6emHvqqY09T/sUa5/uwL7+UuRiGOtBqK+gU2HkNdvZlW0myJiuYx7OAQPijz99Jfx21IfmA609u6XZs1OO8iybcKOmFAe0INDhgcTC+62GZm1Q+2a+wwlb6lk7IIYVoUN9wOkRAHL3Zmg=","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-Exchange-RoutingPolicyChecked":"\n FSdG8hHVdmCKbA9e1e4x3zSm4FlJdeXrFbje+0W0vHeqOd5EFQTK/2mTymTINbNfL000MmL7jPwKpVXhEEVPDxmLAu2TqtZEmUMdRithloD/Jr4FbH6HbzR6OK0gBWkNN2A5/oppULZ6Eq3BKtUlKpF5hDCNXNkUM/0oELa6Bi/Z9o0eLaeBAo8LWqdIuShRjNBWMDw+ak4BJAWYUQQi36VZj/wMLkYWX4Z+8wPKuE328G7fEKZDjXpGHbbWJ9t2Mc+fcT3cXFuxkHLpuphWscExNym9JpRhHLtiVmr3qEMohLiiKHHdmppKees1JLVcjwmpZwGLIkex78Bu+5oeZw==","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-AuthSource":"IA3PR11MB8986.namprd11.prod.outlook.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n b3686022-d02e-4095-5e3b-08dea5d04ddc","X-MS-Exchange-CrossTenant-originalarrivaltime":"29 Apr 2026 09:18:41.1203 (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":"\n ip8NWmBFKc43M5HCugVQA5K6GQBK+pKNoaY2YDQkLkmZfUUtzcepo3lA29+8wav56nEoonKqWZzb0RkurNantZUIE2vrtlDeoDogQBHqJek=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"BL1PR11MB5303","X-OriginatorOrg":"intel.com","X-Mailman-Original-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1777454329; x=1808990329;\n h=from:to:cc:subject:date:message-id:references:\n in-reply-to:content-transfer-encoding:mime-version;\n bh=sICU8YS8e/ZECNTBdRtm9vErF5kE2sbGi1mdEyJTU8w=;\n b=Lmh2vPAmYjXDvqGrUG23gOfnZ67wEcWjzCdD4W1UpFABVc62skLIiYnL\n 3PpxjvwplJ7PqBf/5+UEIj5rh0Grbd+rKQCuWwOMWCJogJ5rBiruY2IV6\n yZNo+/CjYosQzubwhX3gcGN5w8CNLqWv/kxLNz+G+MDpAD+C5Fd05XNem\n fkRqDBtdnLYhDaDghq9UGn5fh9wZ/u5yoAvyWUkluBbzwMMml2xBlWWZt\n G3VFp1m1ZD9ODlXNM2ckc+anOyH+JFgxPSauNA7ju7fxJbQ35nNfV3gLw\n U2xCzYHgd3s1K0ZMLA9xvE9yZtiPGT5OiBywYdHVfBXfEntSoZHC+PJZP\n g==;","X-Mailman-Original-Authentication-Results":["smtp1.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com","smtp1.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=Lmh2vPAm","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=intel.com;"],"Subject":"Re: [Intel-wired-lan] [PATCH iwl-next v3] e1000e: Avoid DMA\n re-mapping on RX copybreak","X-BeenThere":"intel-wired-lan@osuosl.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>","List-Unsubscribe":"<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>","List-Archive":"<http://lists.osuosl.org/pipermail/intel-wired-lan/>","List-Post":"<mailto:intel-wired-lan@osuosl.org>","List-Help":"<mailto:intel-wired-lan-request@osuosl.org?subject=help>","List-Subscribe":"<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>","Errors-To":"intel-wired-lan-bounces@osuosl.org","Sender":"\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"}},{"id":3683982,"web_url":"http://patchwork.ozlabs.org/comment/3683982/","msgid":"<89e43943-d114-4de5-8fec-efabc3cdc20e@molgen.mpg.de>","list_archive_url":null,"date":"2026-04-29T10:32:52","subject":"Re: [Intel-wired-lan] [PATCH iwl-next v3] e1000e: Avoid DMA\n re-mapping on RX copybreak","submitter":{"id":70275,"url":"http://patchwork.ozlabs.org/api/people/70275/","name":"Paul Menzel","email":"pmenzel@molgen.mpg.de"},"content":"Dear Matt,\n\n\nThank you for this iteration.\n\nAm 29.04.26 um 03:43 schrieb Matt Vollrath:\n> This patch factors out DMA re-mapping for skbs which were recycled in\n> the RX path due to copybreak or errors. There is only one path out of\n> the e1000_clean_rx_irq() loop where the skb is consumed and DMA needs\n> to be re-mapped, so don't unmap it before checking the conditions.\n> \n> The buffer allocation loop is adjusted to not assume that DMA is\n> unmapped, handling mapping errors gracefully.\n> \n> On systems with IOMMU enabled, the cost of re-mapping DMA is greater\n> than the cost of copying data out of the ring buffer. When I use this\n> patch and configure e1000e with copybreak=2048, my system with IOMMU\n> completes RX roughly twice as fast under load.\n> \n> Informal performance comparisons were based on Asus Gryphon Z97 which\n> includes an I218-V and with a Xeon E3-1240 v3 in the socket. ktime_get()\n> measurement was injected into e1000e_poll() wrapping the\n> adapter->clean_rx() call. The total time spent in clean_rx() was divided\n> by work_done to print the average time spent per buffer. iperf3 -R was\n> used to saturate the RX path and awk was used for statistics. Control\n> revision was set to 7.1-rc1 because iwl-next hadn't been updated yet.\n> \n>   rev     | iommu | copybreak | samples | mean (ns) |   stdev\n>   7.1-rc1 |   off |         0 |    4748 |    453.72 |  155.82\n>   7.1-rc1 |   off |      2048 |    4743 |    554.83 |  103.67\n>   7.1-rc1 |    on |         0 |    4751 |   1139.22 |  150.56\n> * 7.1-rc1 |    on |      2048 |    4737 |   1267.02 |  184.62\n>    +patch |   off |         0 |    4739 |    456.30 |  146.33\n>    +patch |   off |      2048 |    4739 |    538.56 |  132.97\n>    +patch |    on |         0 |    4769 |   1165.97 |  140.19\n> *  +patch |    on |      2048 |    4745 |    562.25 |  171.80\n\nAwesome description and overview. Thank you! Values for the default case \nof `copybreak=256` would be nice to have. But no need to resend for my sake.\n\n> No surprises here, IOMMU DMA ops are known to be expensive. For most\n> users the kernel default is iommu=on and driver default is\n> copybreak=256, so unless the workload is small packets, some tuning of\n> either knob would be needed to see the full benefit of this change.\n> \n> The kludge of unconditional unmapping has existed since this driver was\n> introduced in 2007[1], inherited from the e1000 driver which has since\n> factored it out[2]. IOMMU tech was new at the time.\n> \n> [1] Commit bc7f75fa9788 (\"[E1000E]: New pci-express e1000 driver (currently for ICH9 devices only)\")\n> [2] Commit 2b294b18689c (\"e1000: perform copybreak ahead of DMA unmap\")\n> \n> Assisted-by: Claude:claude-4-7-opus\n> Signed-off-by: Matt Vollrath <tactii@gmail.com>\n> ---\n> v3:\n> * refactor unmapping bypass, use goto instead of redundant branch\n> * remove Aleksandr's sign-off due to logic change\n> * benchmark details\n> * cite historic commits\n> v2:\n> * proofread description with Aleksandr\n> ---\n>   drivers/net/ethernet/intel/e1000e/netdev.c | 32 ++++++++++++++--------\n>   1 file changed, 21 insertions(+), 11 deletions(-)\n> \n> diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c\n> index 7ce0cc8ab8f4..62bf85c768d6 100644\n> --- a/drivers/net/ethernet/intel/e1000e/netdev.c\n> +++ b/drivers/net/ethernet/intel/e1000e/netdev.c\n> @@ -663,6 +663,8 @@ static void e1000_alloc_rx_buffers(struct e1000_ring *rx_ring,\n>   \t\tskb = buffer_info->skb;\n>   \t\tif (skb) {\n>   \t\t\tskb_trim(skb, 0);\n> +\t\t\tif (likely(buffer_info->dma))\n> +\t\t\t\tgoto write_desc;\n>   \t\t\tgoto map_skb;\n>   \t\t}\n>   \n> @@ -680,10 +682,12 @@ static void e1000_alloc_rx_buffers(struct e1000_ring *rx_ring,\n>   \t\t\t\t\t\t  DMA_FROM_DEVICE);\n>   \t\tif (dma_mapping_error(&pdev->dev, buffer_info->dma)) {\n>   \t\t\tdev_err(&pdev->dev, \"Rx DMA map failed\\n\");\n> +\t\t\tbuffer_info->dma = 0;\n>   \t\t\tadapter->rx_dma_failed++;\n>   \t\t\tbreak;\n>   \t\t}\n>   \n> +write_desc:\n>   \t\trx_desc = E1000_RX_DESC_EXT(*rx_ring, i);\n>   \t\trx_desc->read.buffer_addr = cpu_to_le64(buffer_info->dma);\n>   \n> @@ -941,7 +945,6 @@ static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done,\n>   \t\tdma_rmb();\t/* read descriptor and rx_buffer_info after status DD */\n>   \n>   \t\tskb = buffer_info->skb;\n> -\t\tbuffer_info->skb = NULL;\n>   \n>   \t\tprefetch(skb->data - NET_IP_ALIGN);\n>   \n> @@ -955,9 +958,6 @@ static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done,\n>   \n>   \t\tcleaned = true;\n>   \t\tcleaned_count++;\n> -\t\tdma_unmap_single(&pdev->dev, buffer_info->dma,\n> -\t\t\t\t adapter->rx_buffer_len, DMA_FROM_DEVICE);\n> -\t\tbuffer_info->dma = 0;\n>   \n>   \t\tlength = le16_to_cpu(rx_desc->wb.upper.length);\n>   \n> @@ -973,8 +973,6 @@ static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done,\n>   \t\tif (adapter->flags2 & FLAG2_IS_DISCARDING) {\n>   \t\t\t/* All receives must fit into a single buffer */\n>   \t\t\te_dbg(\"Receive packet consumed multiple buffers\\n\");\n> -\t\t\t/* recycle */\n> -\t\t\tbuffer_info->skb = skb;\n>   \t\t\tif (staterr & E1000_RXD_STAT_EOP)\n>   \t\t\t\tadapter->flags2 &= ~FLAG2_IS_DISCARDING;\n>   \t\t\tgoto next_desc;\n> @@ -982,8 +980,6 @@ static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done,\n>   \n>   \t\tif (unlikely((staterr & E1000_RXDEXT_ERR_FRAME_ERR_MASK) &&\n>   \t\t\t     !(netdev->features & NETIF_F_RXALL))) {\n> -\t\t\t/* recycle */\n> -\t\t\tbuffer_info->skb = skb;\n>   \t\t\tgoto next_desc;\n>   \t\t}\n>   \n> @@ -1010,19 +1006,33 @@ static bool e1000_clean_rx_irq(struct e1000_ring *rx_ring, int *work_done,\n>   \t\t\tstruct sk_buff *new_skb =\n>   \t\t\t\tnapi_alloc_skb(&adapter->napi, length);\n>   \t\t\tif (new_skb) {\n> +\t\t\t\tdma_sync_single_for_cpu(&pdev->dev,\n> +\t\t\t\t\t\t\tbuffer_info->dma,\n> +\t\t\t\t\t\t\tadapter->rx_buffer_len,\n> +\t\t\t\t\t\t\tDMA_FROM_DEVICE);\n>   \t\t\t\tskb_copy_to_linear_data_offset(new_skb,\n>   \t\t\t\t\t\t\t       -NET_IP_ALIGN,\n>   \t\t\t\t\t\t\t       (skb->data -\n>   \t\t\t\t\t\t\t\tNET_IP_ALIGN),\n>   \t\t\t\t\t\t\t       (length +\n>   \t\t\t\t\t\t\t\tNET_IP_ALIGN));\n> -\t\t\t\t/* save the skb in buffer_info as good */\n> -\t\t\t\tbuffer_info->skb = skb;\n> +\t\t\t\tdma_sync_single_for_device(&pdev->dev,\n> +\t\t\t\t\t\t\t   buffer_info->dma,\n> +\t\t\t\t\t\t\t   adapter->rx_buffer_len,\n> +\t\t\t\t\t\t\t   DMA_FROM_DEVICE);\n>   \t\t\t\tskb = new_skb;\n> +\t\t\t\tgoto copybreak_done;\n>   \t\t\t}\n>   \t\t\t/* else just continue with the old one */\n>   \t\t}\n> -\t\t/* end copybreak code */\n> +\n> +\t\tbuffer_info->skb = NULL;\n> +\t\tdma_unmap_single(&pdev->dev, buffer_info->dma,\n> +\t\t\t\t adapter->rx_buffer_len,\n> +\t\t\t\t DMA_FROM_DEVICE);\n> +\t\tbuffer_info->dma = 0;\n> +\n> +copybreak_done:\n>   \t\tskb_put(skb, length);\n>   \n>   \t\t/* Receive Checksum Offload */\n\nFeel free to add:\n\nReviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>\n\n\nKind regards,\n\nPaul","headers":{"Return-Path":"<intel-wired-lan-bounces@osuosl.org>","X-Original-To":["incoming@patchwork.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","intel-wired-lan@lists.osuosl.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=mDEednAt;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5DCy5nsTz1yHX\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 20:33:18 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 63FBB61538;\n\tWed, 29 Apr 2026 10:33:17 +0000 (UTC)","from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id AAqZPXo77yCg; Wed, 29 Apr 2026 10:33:15 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 69DF36119F;\n\tWed, 29 Apr 2026 10:33:15 +0000 (UTC)","from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id BF30A23D\n for <intel-wired-lan@lists.osuosl.org>; Wed, 29 Apr 2026 10:33:14 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id B0E7C42310\n for <intel-wired-lan@lists.osuosl.org>; Wed, 29 Apr 2026 10:33:14 +0000 (UTC)","from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id DYJBG1pQ60uC for <intel-wired-lan@lists.osuosl.org>;\n Wed, 29 Apr 2026 10:33:13 +0000 (UTC)","from mx3.molgen.mpg.de (mx3.molgen.mpg.de [141.14.17.11])\n by smtp4.osuosl.org (Postfix) with ESMTPS id D90174230D\n for <intel-wired-lan@osuosl.org>; Wed, 29 Apr 2026 10:33:11 +0000 (UTC)","from [141.14.220.42] (g42.guest.molgen.mpg.de [141.14.220.42])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested) (Authenticated sender: pmenzel)\n by mx.molgen.mpg.de (Postfix) with ESMTPSA id BE00E4C2C37F03;\n Wed, 29 Apr 2026 12:32:53 +0200 (CEST)"],"X-Virus-Scanned":["amavis at osuosl.org","amavis at osuosl.org"],"X-Comment":"SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ","DKIM-Filter":["OpenDKIM Filter v2.11.0 smtp3.osuosl.org 69DF36119F","OpenDKIM Filter v2.11.0 smtp4.osuosl.org D90174230D"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1777458795;\n\tbh=GCALGF1sFSq0A9og39bcbq5S8AizQ4w9uO5M5kWGWGI=;\n\th=Date:To:Cc:References:From:In-Reply-To:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=mDEednAtAcLJo4S2+hV5xgyF3QUKLGqrFIpY/t8KlibOAt9IJrvObvbLFh9MTLQE+\n\t SIME6FxVkg80c8MGS06N3CWcIBK/qMgsNRHRCGxjvKfCv7sEFXMR4JvV9geh3tx9z+\n\t GwplHvZUYXSSqK4WYUDugFLrQv169fDgb3+updMApS2VFcPXPTgK5dsf6TO/6NkJBG\n\t ZhUefp2WDReijD85Itnodjs+nGjzUPNJH8QOprF2SXgH2OeXaTbkx6/al0MeWqves9\n\t yikPSWB6akobxMIRpX5DcE13+/sQ3KSClBshXApHhHu1XPqZ3WAN3BSkdiyRp2mAcU\n\t XEc5455nwPUoA==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=141.14.17.11;\n helo=mx3.molgen.mpg.de; envelope-from=pmenzel@molgen.mpg.de;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp4.osuosl.org D90174230D","Message-ID":"<89e43943-d114-4de5-8fec-efabc3cdc20e@molgen.mpg.de>","Date":"Wed, 29 Apr 2026 12:32:52 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","To":"Matt Vollrath <tactii@gmail.com>","Cc":"intel-wired-lan@osuosl.org,\n Aleksander Loktionov <aleksandr.loktionov@intel.com>","References":"<20260429014325.19136-1-tactii@gmail.com>","Content-Language":"en-US","From":"Paul Menzel <pmenzel@molgen.mpg.de>","In-Reply-To":"<20260429014325.19136-1-tactii@gmail.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-Mailman-Original-Authentication-Results":"smtp4.osuosl.org;\n dmarc=none (p=none dis=none)\n header.from=molgen.mpg.de","Subject":"Re: [Intel-wired-lan] [PATCH iwl-next v3] e1000e: Avoid DMA\n re-mapping on RX copybreak","X-BeenThere":"intel-wired-lan@osuosl.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>","List-Unsubscribe":"<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>","List-Archive":"<http://lists.osuosl.org/pipermail/intel-wired-lan/>","List-Post":"<mailto:intel-wired-lan@osuosl.org>","List-Help":"<mailto:intel-wired-lan-request@osuosl.org?subject=help>","List-Subscribe":"<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>","Errors-To":"intel-wired-lan-bounces@osuosl.org","Sender":"\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"}}]