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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38CFEC71159 for ; Tue, 17 Jun 2025 02:21:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CCCC26B0089; Mon, 16 Jun 2025 22:21:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C7D526B008A; Mon, 16 Jun 2025 22:21:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B1DA46B0092; Mon, 16 Jun 2025 22:21:28 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 9CADC6B0089 for ; Mon, 16 Jun 2025 22:21:28 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 5911A161800 for ; Tue, 17 Jun 2025 02:21:28 +0000 (UTC) X-FDA: 83563291056.07.A68B69C Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf26.hostedemail.com (Postfix) with ESMTP id B8311140008 for ; Tue, 17 Jun 2025 02:21:24 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=IkowAIEg; dkim=fail ("body hash did not verify") header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=NeN6gvID; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf26.hostedemail.com: domain of harry.yoo@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=harry.yoo@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750126885; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=r5vYnadNwzN/GudwMLIVqHSadJhjhnQc+AyI4kEZ2tA=; b=pN4X+0LaWySG4RtUdKYIEUC9TJLWFJe4aISNojeyTG7wkfraHOmsWtqF5imT7YKDs0bU2r 4BBK92Agbe+J99f58Du5BOpuDUbWRn82SKnDgDSvzw6q9shRB5NDK9gEOmTLIEOMGfOoWz yRpS1bTCCO8StJa0wvMLn4Upl3HJjOg= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1750126885; a=rsa-sha256; cv=fail; b=bcRlN21+h0MyDfpQskNip7auKlO6QLO1mAhr88rtmvfshl93X6XjB885TE3EX/khNWqU/z BsgHwpF8HVFFT0bD6gahvjhhsW/wLVW1x3G7lhoJydXEmuaYAhhXdn4RINfGhPxHutcPlc jw5dtTFxVepxuoSPBdjHezClUpdmwVk= ARC-Authentication-Results: i=2; imf26.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=IkowAIEg; dkim=fail ("body hash did not verify") header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=NeN6gvID; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); spf=pass (imf26.hostedemail.com: domain of harry.yoo@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=harry.yoo@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55GLYq8d017638; Tue, 17 Jun 2025 02:20:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=r5vYnadNwzN/GudwMLIVqHSadJhjhnQc+AyI4kEZ2tA=; b= IkowAIEgN8VnJEFfPyt58/HDcNxVJPwlvqfong+v9Xp9n7eyB3zHu27dywHXFJ/+ S5IefkKsHjrzzilwG0iLv0F0hSFdR0JhzgCaWWm+YY6wMC/UOmqmHtpcM1GJFG01 GfG3kl+v30HAi84ttE2BRzb+87Srrcp9+iTwxP4060SHN/IL6powtgdMqGDqFcOW pOZC5AdQGKw2m4yNLYl3YUdHBPJJMzKREWzxMo/WHuclCUHIXH971oZzPef2oBkS /N7SqKA/XD612XNBd/0T2ry9w67SAxrdOyk35tUOD4MH3nHyaPlpHQv8IcZ4zWPq AYsuc6FiHNba44f/tKb/7Q== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 478yp4md5x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jun 2025 02:20:57 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55GNLjAB001886; Tue, 17 Jun 2025 02:20:56 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11on2074.outbound.protection.outlook.com [40.107.223.74]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 478yh8nhn9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jun 2025 02:20:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GIpH1FaZZXB34KynoIX6nS2lcQRaw2DW1GMvbnG3DJB0T36YFmmFbmVCOT+85eSiRrXD/BTusAKERsjGWJuK6yBX1piRSf6JM/WJXxT6BNveR5yvwqFyCXXWYEBxtVyJRvQw9QjB5jvefpdbiiptWqEV65qxXI7p1rXH6BOyhlzEw8UdEWzzA9qsZFlurM9h9/tXM7wcI9zhFBd1qwwBxuH5TT9wRxXauKVn1GHT/PBfR7JYThFgXuDO2e1EqcWKDxNgR9YJ9DUKxjyFOXEp8vf4wlQBSUnMyJSG+uMpVZS4e5UDYHCBe547BMTwQguL5Zb+aIdCLh8NHwrw4ysscw== 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=7wDRdmzpI8nldz54MjKKS9EUW6Z/ZPFEB4E7wfyQcoA=; b=qYa8WInU3vpjbaGgqJarc8yydGdMQX4KG/+ELsivlnkYNvoSR66T4bRLB69XFIRvyHLUPV20e28jeHddko2KgnucrNxhkm87BLriG6lXoHwmKyGpmOmxLEN2xrn7OuUlqCLpRQFv5OqZBJDF+9Vybr0uYlGpKoRQ4AmbAOzaXzgF0f+VP1GdUkyE3bkC80e5Gdiv0uxsyr9j0nUIH1S1JrXx5Dpl0kiWJXAoQAAZOCC0XtqhC+bSEYshQOWOVRCXZeeLtroN///AZeMwQirC7+b9jUiL+LB3rz1WsdZBrJ9zYQl/yjNehU5GX/Z0JBXovKSDrRObN33hb5EXPtR7PQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7wDRdmzpI8nldz54MjKKS9EUW6Z/ZPFEB4E7wfyQcoA=; b=NeN6gvID415qa6cEKmOEcFUAyNhRHR39YpAi3w3etJzo0XwjgvRCl3o1zLKaV1BiXZy4O2dO5k5SvGzbvIv32IjNmGvT6h0FtGbNILiZVmZa7TKVxb2q1vkaHpy6BnukK/yl6ozBnW06bJEzhEC3/S4k5d7lArIYlbHbE5iQOb4= Received: from CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) by LV3PR10MB8179.namprd10.prod.outlook.com (2603:10b6:408:28a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.29; Tue, 17 Jun 2025 02:20:54 +0000 Received: from CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23]) by CH3PR10MB7329.namprd10.prod.outlook.com ([fe80::f238:6143:104c:da23%4]) with mapi id 15.20.8835.027; Tue, 17 Jun 2025 02:20:53 +0000 Date: Tue, 17 Jun 2025 11:20:37 +0900 From: Harry Yoo To: Byungchul Park Cc: willy@infradead.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel_team@skhynix.com, kuba@kernel.org, almasrymina@google.com, ilias.apalodimas@linaro.org, hawk@kernel.org, akpm@linux-foundation.org, davem@davemloft.net, john.fastabend@gmail.com, andrew+netdev@lunn.ch, asml.silence@gmail.com, toke@redhat.com, tariqt@nvidia.com, edumazet@google.com, pabeni@redhat.com, saeedm@nvidia.com, leon@kernel.org, ast@kernel.org, daniel@iogearbox.net, david@redhat.com, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, horms@kernel.org, linux-rdma@vger.kernel.org, bpf@vger.kernel.org, vishal.moola@gmail.com Subject: Re: [PATCH net-next 1/9] netmem: introduce struct netmem_desc mirroring struct page Message-ID: References: <20250609043225.77229-1-byungchul@sk.com> <20250609043225.77229-2-byungchul@sk.com> Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20250609043225.77229-2-byungchul@sk.com> X-ClientProxiedBy: SE2P216CA0095.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c2::10) To CH3PR10MB7329.namprd10.prod.outlook.com (2603:10b6:610:12c::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR10MB7329:EE_|LV3PR10MB8179:EE_ X-MS-Office365-Filtering-Correlation-Id: ee461661-b1e0-4636-7e0a-08ddad45959f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?Q?E/hRH+JcuIpCHunZdOU9oT7eNI+OX+MLC+if4bGyirt7tXrT3qCilBTQx5?= =?iso-8859-1?Q?NK3TCcY+ts1butC9MalAy0jJ2qieCWhqzqUyLsYmzEEHLar3wMNoqb/RtH?= =?iso-8859-1?Q?FEJgl/g2K/LzJOkWgL8EV/BUcL20QxcKqdetCc/9dcd70ClW7E93/zGwoi?= =?iso-8859-1?Q?f4hF2xdw2tuWKAryb5YItmUH2rWLVydSIC6heSZcWavPCK1m8vnB5CUFlT?= =?iso-8859-1?Q?2p07LzsQntSOMhBsEdDZuguMRP5vJKb/SdzA/JDeIZ9DgnTiQi5BivAmsT?= =?iso-8859-1?Q?Re4s5G7VvI0VoBr9TtUxzWWH5UKJY2aTC78UeVs6EHG67QdUqtUb0qRnXe?= =?iso-8859-1?Q?VmM2NadhV3wllGErbKKgGiZiGezl9hicATow4A7ujUocwNuEpSR3uw7wSO?= =?iso-8859-1?Q?s1UZeYbFnE7nBhj7g12D1tEbwD6rdBsfC2od+iY/VfSC86VDfVvNwZ5AaZ?= =?iso-8859-1?Q?VzTCZso/W9a7ZMg+Vqf9PsSFdsw1H8UqtZe8arG3GXsjWZAsjP0g4bKLBo?= =?iso-8859-1?Q?5lDV+P7nE8Dx75i3XIEijUzp1zrQipSrVJM0Wi7qI+Di4he7Zxm/tSGREI?= =?iso-8859-1?Q?hIPbBRWE1Z7rOFX9t4DrKkXeVdhXP/0dN3LG+OKFpFQl66OtQoAl8Ipxhe?= =?iso-8859-1?Q?ueMrpjOoa/YGy2eXMoMMiBB+TkWywqQES9Ofp3E+BTn6qoBtpcZO30CFi6?= =?iso-8859-1?Q?uzK2O9prlm/8G7FE1dsjYZHJs+IEAQClmavzzMkoYj8pKyHn0HZDOXzKjR?= =?iso-8859-1?Q?8dKfiLAODYNKrY/jKpTy8UkRR8+rEZs8vZELfBqcvjfIouGDDy5CwUoYdR?= =?iso-8859-1?Q?03ihY7mek9mSXfrIAFIX8x7brYKfDPHh2V5NjlUcA0+XDQA4RDT3sff0y6?= =?iso-8859-1?Q?pWRKdmPszMRGMPl6i9mgIgEJq1oBrNRakjg4ZdGMH44d3+OMZbr5EbRIXb?= =?iso-8859-1?Q?P0XuyNnLDbmRNjC/p9VnUZLZqZ2Ytoz2ftIK+KdtdQVlJy985OGEZV+T9x?= =?iso-8859-1?Q?FNe5vftHlmUNfR1HwRVy6i0OPlkqlL2niYBpdxixDY3oUUGFI4hov7GTyX?= =?iso-8859-1?Q?2Y8JbNcRRaXrVwVt/kEeKlaNOzKLnpze/MIFt1Fyb9MAJwycIm5je+AgmK?= =?iso-8859-1?Q?cnXQlOSTqAx8edyZGqdywUEl9XFfwKyuXkBIkcXVSBOxk3uVbIWd2G35hU?= =?iso-8859-1?Q?OM5aOGrIIgXQ5W3FQknYC0Jnkag1na1wUJ94J+W4SV/zm4Krw40N8bJgf+?= =?iso-8859-1?Q?H6mQK2KZVaaaLJYK8uU74MUGW94Vgv0ydyxlgoY04W/DLLymTgO8fzd78l?= =?iso-8859-1?Q?pH6eLagkoPMka8xR06tKSC7Ygi/ZNf2fEqAyN+YAE44Tmvfz/xRZsPpIe4?= =?iso-8859-1?Q?5RYVwBsz9uv/XthA+Rz01ERlm0jQol0a5e8XK0noRMC+1ilus1jHSBGtW8?= =?iso-8859-1?Q?5yG9w9Tjur9GvOt3AOMcICWV4nU3KU4Sr812O6jJBSvHa49M+76svm+vSx?= =?iso-8859-1?Q?I=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7329.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-8859-1?Q?S4mpuVd6WPO5bbNBA8xPH4NcVuv5fUzTIWLo0wmWUP2V00xN3c/wrwhXYo?= =?iso-8859-1?Q?R0Z6LpE3AGq/YCEp5BpyY5NOyuLs568FY1o8WrR/KjwDVwv+t6gf68eRMR?= =?iso-8859-1?Q?UPEjClscaiqP5vzhho9As1focvwqQsiSEBJaK8jjrveEtQuDf6IMWULeWS?= =?iso-8859-1?Q?lQPwEsFA92j3JcAqKuceWvyeNrHphOybvZUA8vsbSp8Mq8YN1pdg0I6cPO?= =?iso-8859-1?Q?gyXaWhH3wxGtIuOv5JkBoiDAskITRM/d6khT59/oxU3n0aA3A1LlGdhKB6?= =?iso-8859-1?Q?TCS37yfZHEGvHrsuotWg/ZAuuvSTuABzc1SW+NRhn6Fdgt/tKS8wkdkxMV?= =?iso-8859-1?Q?cEmmHzZ247ZHdYVZE/jqjXIIIQKcAFJOl/MRLTLlAg51QGI3+KaVXSMrFr?= =?iso-8859-1?Q?bYQxIEUIakkNFP9jVTgxti73fzsWW+paY6ISTsEA6Fe0E2bVoeGOumxR4h?= =?iso-8859-1?Q?T+3xS2eZcvjK9rQQh4GuAJcFlKZSHzBb5OMTeEoY17erdL5Li3B6B4sI7w?= =?iso-8859-1?Q?E/muYN1mT1IUlOVf0JE7TM3mHtb2yAi7K6ERenWZ76iXT7ThJ9KzYW0zW0?= =?iso-8859-1?Q?NuJ8X0zNxU9Wj/tOhtbtF6oVccDFA14LGgA8RpAofgb9F454Gv5IHRLymc?= =?iso-8859-1?Q?iOrTVbUsO1alWg66nBtaw1PpMk4TZLwWnc61VoT+C80knSKw6/jcRs4Jj9?= =?iso-8859-1?Q?QKGAEcIjqAVCYG4zgG6DXj0SlZJnMelwKQMYk6EPQAySS+Ie1HpP/c3eMi?= =?iso-8859-1?Q?3xdjhtmF9+fjXQwHJt2CirAIgMJrkV3KYX/SU5Z5Qe4eNQ8K8p6yNvIOzU?= =?iso-8859-1?Q?5bb2hWKolCe4N0enoxXRBEjQpQYB+WDd1opxjxogJ5iAKyjcLYP5yLhHE1?= =?iso-8859-1?Q?6i/kCjTEoOG9bAA8ZSyjW/PrwZ8jREgAfl4Vf0phdY+O9Dr637GiofzkIk?= =?iso-8859-1?Q?HUMQKdzWNs9BCvh2SzlvtBR0bJqzV80vQb26dROSNiIxBA6zBVR3mpssSg?= =?iso-8859-1?Q?Le/2ZBYwu0+p7TD+ZaTlp7tnk+LXhcltFmnccQpoocFvKFGMBfHrO2Plpg?= =?iso-8859-1?Q?XUnIw23C2joArubzbJVJaez+TMhLAAEE/qvrKPMy5rcJzwIUfV4MOO31gr?= =?iso-8859-1?Q?X3RkOqfYoI5TroYz5z5WhmNap/qzV5CzVF61o0FS/5FKPGYu7DifcUPxgR?= =?iso-8859-1?Q?6oJKbnqPtiMXhw4JtrD4V6LXA0scYj9L//4nfYMnuj+J6yw/hsWYTTV/WO?= =?iso-8859-1?Q?V592wAvIkdL/wNzMJtBuqg0ln/m7qZkSR+T/uDDXY/75CmyUJOH8+siycL?= =?iso-8859-1?Q?E2qXzogTMTtLwemiQralt4looHc04XjF/Y0DxmFQ7JkBXYfSatI3FvHmN0?= =?iso-8859-1?Q?aJuKppGpCQdx9hkFxQ5dycGHGpRVjpM+3g9OhY9ry9BoPeXMd6Q3ra1Pjn?= =?iso-8859-1?Q?a892502VgHBjNcB14144XEK+sCxKAO9oxmhddVeO8pxGIeQQm6Q5BOzT4Y?= =?iso-8859-1?Q?+U5WzR8JsVBL//lmkB4tkzGgzpfbLENC/DqhkuiHZPRDE25cvVt+M9RAnJ?= =?iso-8859-1?Q?KklliEK4GPYtzecEevkHZiUFdwJn1rGVnBvn6guai3DMY0il0Sk3XVogjS?= =?iso-8859-1?Q?WUP3mefkvvyXVI809xVmQpAyg7yrt51JK/?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: VCvSwWPoWtltp7QcVjfnAwWu4uUcwUZlKe2QhmRMqjYwcDUkLPf6UDjXwJjvE/V1zfyjus5NOW17tmAo+hQKRe2O0mtIy2GOKKMOQBQyL9JB6OTnpWp9piB4J0CWrydxCam5mGEtSkHC9T53afk7MsUQjI/9YCm89HhKKFq7o4eT5n/bK+GtK4YQQHKetUJqqA52rAVRihyxTYOthXB5WtOjrosija1OniTQb6W4RyJ4sK0sBhrTsHP3usmHETWfYPdGm8qu7Drf0zhxoHIwBxk2OHvMZxnOLfTBCnzLg3y1Qq94g0f5JHa2IJ00sfFoCcX867t4pHhAM3YqW7mxgHrTudUwvqOuIybnBDH69FRVraXHloxmzM349LO/0KbZiZ9LdSF0lEfXK0icFGDuBp72Cxke0mB05y7s8oTg/5rfpxMQd6gO4hUgFSHcOCmEU00y0RdXR7XEz2fTJQ2PdnIYl275T9j2MpC63p1TO2iz4qDzVbfDKGGd+++/+gQSydrfssHX1P6OzAXoKCxovddhIM6X4jH4+pBd1i6dEzqjXVphTB8ueuc7F0sLapeVJ9rQAwmlW8a5jYvVzfXxaGroFm7waUu7sjShmqj6/sg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee461661-b1e0-4636-7e0a-08ddad45959f X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7329.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2025 02:20:53.5687 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zyAuyr5O6Ownz86cXfGjDBrAsWFOpWqzrWq2nKr/bEHV8bKAHbViY07rUGX38yCRLo8tRLZ57jZSFOaWQgkpdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR10MB8179 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-17_01,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506170019 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE3MDAxOSBTYWx0ZWRfX19vXgPwnsOLg qbw08xPuFblwgo64m1tcRBTVqySs0Flgd240Zue/1cLrG7HK/ODQQpCOtMXOpldHViminWGEH5c /xeWC3KRvufrNm+ql/kiwCBDzrkzWLwna7fb3rhZ5m5C9HRKcnvjomWhWP+dwroAH2KCIiwqCkO UdALv1cCPzpZT+dUnLcxM2g/I/8Icpv9DmqZWGKgKWBeV08NbzLs1vXfI8yjcBsvVn0wUQkHN99 ZLQci7k60aeixYfAB4LnQnR5106gwF2XD3AU1LUVISt+Cyc2xQYv1CuWbVnx19TcP/L+6QgBCak u7Ab1uE+j8YTy8xIIkDvIMnCIHVIRgB6uB2V1olCdhBMOWLG4wcNa1qJzhHFXKDuJrI+Cf/mvbj 2cCK7TWJratVbq+7PmVp8P9EVb9ySABBzjWX44q/v1gVCgzWY8YmafhD3Ri9mvMD5jguZqwt X-Authority-Analysis: v=2.4 cv=K5EiHzWI c=1 sm=1 tr=0 ts=6850d10a b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=8nJEP1OIZ-IA:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=ph6IYJdgAAAA:8 a=20KFwNOVAAAA:8 a=pGLkceISAAAA:8 a=1XWaLZrsAAAA:8 a=yPCof4ZbAAAA:8 a=U9lO-2-X6Y3eVARFeYUA:9 a=3ZKOabzyN94A:10 a=wPNLvfGTeEIA:10 a=ty6LBwuTSqq6QlXLCppH:22 cc=ntf awl=host:13206 X-Proofpoint-GUID: kX1Kf6zEtWobq_6PC2J4vAwiW2vYMZTN X-Proofpoint-ORIG-GUID: kX1Kf6zEtWobq_6PC2J4vAwiW2vYMZTN X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: B8311140008 X-Stat-Signature: 6j1md6odor9gb7b1yt37tfz4onmgckkr X-HE-Tag: 1750126884-6889 X-HE-Meta: U2FsdGVkX19xCSc/FTWBD+D7KgVYXcFLTk8OPk5LGtuXXA0qzo4xLD5T/Z5uuwnKHi8ez6HSpKili0RSJe2xVDd8DGUalPl/dXMydCSSAAkc5UrVkfhYY1UOS/v3w81ETzMcgLMLyTloX9JjC8OXp6qodn3sXrL+9XEpjO55bZFzow1yUthVkwvfsoYpBiM+u+5rljJmsOH4dasgXE+yiFCgGXJ/ZqY5UjTUOYjWrECZxSE3/tymb7EaAQmszkD9kM6eJCjB4F55lj+4SRjVsDvkt+EdNA8u8VH5RSpA0uwU540C2A2sZJn3TvfqqdJBXYC9WPENJfNGcqX+gsfreGwFf3l+nvjtGECA2QO+Iq8VDG02cZhd7oQ/ya87uVVyms3oS21F/2e7GhygJy/M+DiqEbLag9NtDfrWAfVcfPZgDBqfCeVVDLZWZ9G/X8ZTO2Mz7hTBn3m9F7kYf8QBD2ma1GmgXjaCiNZE48c9niz29nVQXw6g/nERqWdg0HfOLnzWOHKyKSVLwuZGq2b2QqOo2Bwkxy3v6EWpiUj3MiUy5rMIzBDWT+DfpK2DSzpVowy9MockRMWWce44+av2MLqBGjdWC3bDMk3c9NDcJOG6zWMzO+jC2AaQ5GCWZelY5Ldvpggc5YXqw7YTMFmtn47Wr7lahZsL8B9vCV04TrwrwOU6Tmh9v/Of5wgtHu7lcel2tZjmQjhl0PdtdiYdCSC0h0jbBFN6VRmd5hjJthxC0eha0gQ3l6KbJ2Z7FAgB7TEiCySGeDH25fHJ8wGY4T5aUGf2W12pm0GZFYY8DXkJJh/16sqSNmAKZBukURWZeHT/LbEOM7r9iDu0Q/aLRYOtdMEn+sEVnyvLZGFNEGe08FGpCU0AFeS/UQXsjDLgzSn6glypjbg2SoWHFqSRSdQnanMnWt1Y3sIMGhS/yf82AoLhQHwPsf2cJOX/F0WdM06u8IhH7XMX8mGOfEU Bh+Cp5VE N/g8d3kzakSCGDieu3KLWaoIp/NsGg3dGhC0fYVNefXwJLvFAoQCqAhTQPM+1Tzks/jXcr7BYAw7NqjhVBiVk+L5aODALqAwIWfzyHttuI/fZyHHL28D5Tilli6gzFD/aXSab8cJhlQ4YyHXjXumPHQJZ9m3Q5vxGp0o3P7g+hZ7Q//SZiV5MGgKCHU8LLn3BUXtGCa6k6v6S8AguDlXmbZIvfOU0YX8bSEvSGdlP9b8KEUWnLJjZ9ERbAs8P/IAYuVITYz9xeiE4akZtWQthOSo0Z8vYfG4FMKvTmdlFH1RbdIE1AH9Vo1zAsYWpf1gu/7egkAn5t+TO+fCy9O0nNk8lRKhG74/Uhi/hsg/9zsZqtUQkoVRlb3dyI/AEm0YgQo0JZhbb7vbTF8a7HB/hZJdAC7gLvx24LZ1cmjJmHceD5jsSI6gTeAkh9O15kw0At6y/KRk7Y6xwVP7ypH1rJUhl48gxei8FnV7WUB9AoYkRQaXv3xLI92hLP1boCSZOQ9jxWL9HqhoFQQTNzLm06dUYqEhMOLlhuH06RcAB0DxEY5rpVFpIlw8b/S6oifBenS2j8S2mLY3LiXA/7Dehz+NUDicvdv9Q0aC3sOHZRg3r5zRs7lnnKQD2F2i8EkxmLlHJEEvlMtJfa6eTgq4J3luprv+yqTN2iA7+XiCky/8Jx0rhVhEVzaTCgr68szTmAS/gS5x3MjlO3kf4LOcn+Xbu/ByjINf21R0bCPzBwxd5J+Rc7Uo6C+C1I0bcEFMiymkK6kTsOwxlSmRN0v570g+Q9wWiXiXW0H0QSgliKKjxTkQkKb5oupN/rli2wMporvU1GRxGfKXBYzpaeoQZ216UVzIENUiLCtDB/4Urox1iyH3/JBbwgHmDvf7kuudL5wanzUdsJ9UddFKndfzYd+62y+oUJ71DhUO7xX4lE3swrOAu6T6DJW9M0Y1nKEFr39HWiXJ0SmVtGOjPC/AfcE+2L22m rTL1T5OQ JxPe4VBg46FunUXvPC0xoUTpejsnyTHePT6kzEln6tybDzuKud16LrCARlEEZ53LJg8wEVvidmWlaqqTn6e52rCeaagjn/GthvHAuTE5abbg+mceCFUY+5IvjWWIznXjb3eH/mdUS1C80aNdVwdBEzgmovF2qqmc64QAfgpEJbeBNkM2exrJ5U009DH3EEhYC6l+vDMxagk= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Jun 09, 2025 at 01:32:17PM +0900, Byungchul Park wrote: > To simplify struct page, the page pool members of struct page should be > moved to other, allowing these members to be removed from struct page. > > Introduce a network memory descriptor to store the members, struct > netmem_desc, and make it union'ed with the existing fields in struct > net_iov, allowing to organize the fields of struct net_iov. > > Signed-off-by: Byungchul Park > Reviewed-by: Toke Høiland-Jørgensen > Reviewed-by: Pavel Begunkov > Reviewed-by: Mina Almasry > --- I think one point of confusion here is that net_iov mirrors some fields in netmem_desc, even though net_iov itself does not overlay struct page. Presumably the reason is because net_iovs may not be associated with specific pages, but only with DMA addresses? The only reason why it mirrors netmem_desc fields seems to be "page_pool doesn't want to care if netmem_ref is netmem_desc or net_iov when doing something with netmem_ref". Maybe it's worth clearly documenting that net_iov does not overlay (I mean, does not share storage with) struct page, and why it won't be a memdesc type in the memdesc world. Other than that, it looks good to me: Acked-by: Harry Yoo > include/net/netmem.h | 94 ++++++++++++++++++++++++++++++++++---------- > 1 file changed, 73 insertions(+), 21 deletions(-) > > diff --git a/include/net/netmem.h b/include/net/netmem.h > index 386164fb9c18..2687c8051ca5 100644 > --- a/include/net/netmem.h > +++ b/include/net/netmem.h > @@ -12,6 +12,50 @@ > #include > #include > > +/* These fields in struct page are used by the page_pool and net stack: > + * > + * struct { > + * unsigned long pp_magic; > + * struct page_pool *pp; > + * unsigned long _pp_mapping_pad; > + * unsigned long dma_addr; > + * atomic_long_t pp_ref_count; > + * }; > + * > + * We mirror the page_pool fields here so the page_pool can access these > + * fields without worrying whether the underlying fields belong to a > + * page or netmem_desc. > + * > + * CAUTION: Do not update the fields in netmem_desc without also > + * updating the anonymous aliasing union in struct net_iov. > + */ > +struct netmem_desc { > + unsigned long _flags; > + unsigned long pp_magic; > + struct page_pool *pp; > + unsigned long _pp_mapping_pad; > + unsigned long dma_addr; > + atomic_long_t pp_ref_count; > +}; > + > +#define NETMEM_DESC_ASSERT_OFFSET(pg, desc) \ > + static_assert(offsetof(struct page, pg) == \ > + offsetof(struct netmem_desc, desc)) > +NETMEM_DESC_ASSERT_OFFSET(flags, _flags); > +NETMEM_DESC_ASSERT_OFFSET(pp_magic, pp_magic); > +NETMEM_DESC_ASSERT_OFFSET(pp, pp); > +NETMEM_DESC_ASSERT_OFFSET(_pp_mapping_pad, _pp_mapping_pad); > +NETMEM_DESC_ASSERT_OFFSET(dma_addr, dma_addr); > +NETMEM_DESC_ASSERT_OFFSET(pp_ref_count, pp_ref_count); > +#undef NETMEM_DESC_ASSERT_OFFSET > + > +/* > + * Since struct netmem_desc uses the space in struct page, the size > + * should be checked, until struct netmem_desc has its own instance from > + * slab, to avoid conflicting with other members within struct page. > + */ > +static_assert(sizeof(struct netmem_desc) <= offsetof(struct page, _refcount)); > + > /* net_iov */ > > DECLARE_STATIC_KEY_FALSE(page_pool_mem_providers); > @@ -31,12 +75,25 @@ enum net_iov_type { > }; > > struct net_iov { > - enum net_iov_type type; > - unsigned long pp_magic; > - struct page_pool *pp; > + union { > + struct netmem_desc desc; > + > + /* XXX: The following part should be removed once all > + * the references to them are converted so as to be > + * accessed via netmem_desc e.g. niov->desc.pp instead > + * of niov->pp. > + */ > + struct { > + unsigned long _flags; > + unsigned long pp_magic; > + struct page_pool *pp; > + unsigned long _pp_mapping_pad; > + unsigned long dma_addr; > + atomic_long_t pp_ref_count; > + }; > + }; > struct net_iov_area *owner; > - unsigned long dma_addr; > - atomic_long_t pp_ref_count; > + enum net_iov_type type; > }; > > struct net_iov_area { > @@ -48,27 +105,22 @@ struct net_iov_area { > unsigned long base_virtual; > }; > > -/* These fields in struct page are used by the page_pool and net stack: > +/* net_iov is union'ed with struct netmem_desc mirroring struct page, so > + * the page_pool can access these fields without worrying whether the > + * underlying fields are accessed via netmem_desc or directly via > + * net_iov, until all the references to them are converted so as to be > + * accessed via netmem_desc e.g. niov->desc.pp instead of niov->pp. > * > - * struct { > - * unsigned long pp_magic; > - * struct page_pool *pp; > - * unsigned long _pp_mapping_pad; > - * unsigned long dma_addr; > - * atomic_long_t pp_ref_count; > - * }; > - * > - * We mirror the page_pool fields here so the page_pool can access these fields > - * without worrying whether the underlying fields belong to a page or net_iov. > - * > - * The non-net stack fields of struct page are private to the mm stack and must > - * never be mirrored to net_iov. > + * The non-net stack fields of struct page are private to the mm stack > + * and must never be mirrored to net_iov. > */ > -#define NET_IOV_ASSERT_OFFSET(pg, iov) \ > - static_assert(offsetof(struct page, pg) == \ > +#define NET_IOV_ASSERT_OFFSET(desc, iov) \ > + static_assert(offsetof(struct netmem_desc, desc) == \ > offsetof(struct net_iov, iov)) > +NET_IOV_ASSERT_OFFSET(_flags, _flags); > NET_IOV_ASSERT_OFFSET(pp_magic, pp_magic); > NET_IOV_ASSERT_OFFSET(pp, pp); > +NET_IOV_ASSERT_OFFSET(_pp_mapping_pad, _pp_mapping_pad); > NET_IOV_ASSERT_OFFSET(dma_addr, dma_addr); > NET_IOV_ASSERT_OFFSET(pp_ref_count, pp_ref_count); > #undef NET_IOV_ASSERT_OFFSET > -- > 2.17.1 >