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 ABBC3C5AE59 for ; Wed, 28 May 2025 08:17:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4B34C6B008C; Wed, 28 May 2025 04:17:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4632D6B0092; Wed, 28 May 2025 04:17:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3A08A6B0093; Wed, 28 May 2025 04:17:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 1B7226B008C for ; Wed, 28 May 2025 04:17:47 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id AD7EFC0629 for ; Wed, 28 May 2025 08:17:46 +0000 (UTC) X-FDA: 83491612932.19.F8B16B2 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf16.hostedemail.com (Postfix) with ESMTP id 60D7818000D for ; Wed, 28 May 2025 08:17:44 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748420264; 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: in-reply-to:in-reply-to:references:references; bh=iBNAN73EbpR80AvemtqExtfZQUdD7s5gx0ktL5DH1O0=; b=ep1H8AsoKstkOZXsEk7Ajb/+VnylmbigmsOSc16T7RrFVRUiyM5bjvQnah/hUNTP3WDFpy oEVscaqUHBg7KniPH6LBAcH1ZO0MA4188+hWoSPneZu0oQWpsl2dJSSPvEiuL1Io3HY1cG RJN6u2lFHztag5WjchPp8pchy2t6awk= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748420264; a=rsa-sha256; cv=none; b=r1z/d6V+QMvlA+wNpsFuMtr4RU6fp084aD5XH5Lv8xdqFfwKrcJ3fSJoZ09LeHrKTnRz0g S3EZUHhcKaYXx+814ykJLSD5yP5rGOA7IZyAAZU+iJKxj1ZEn9Ra0ThzCh8z6N56YK1sYX pnQ0RyYODs+l8LxE1RE5Me/zxiUhftQ= X-AuditID: a67dfc5b-669ff7000002311f-a1-6836c6a6c04e Date: Wed, 28 May 2025 17:17:37 +0900 From: Byungchul Park To: Pavel Begunkov Cc: Mina Almasry , willy@infradead.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel_team@skhynix.com, kuba@kernel.org, ilias.apalodimas@linaro.org, harry.yoo@oracle.com, hawk@kernel.org, akpm@linux-foundation.org, davem@davemloft.net, john.fastabend@gmail.com, andrew+netdev@lunn.ch, 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 01/18] netmem: introduce struct netmem_desc struct_group_tagged()'ed on struct net_iov Message-ID: <20250528081737.GC28116@system.software.com> References: <20250523032609.16334-1-byungchul@sk.com> <20250523032609.16334-2-byungchul@sk.com> <20250527025047.GA71538@system.software.com> <20250528012152.GA2986@system.software.com> <20250528050346.GA59539@system.software.com> <4d7a307f-d595-4020-8060-f3bc2f8f72ca@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4d7a307f-d595-4020-8060-f3bc2f8f72ca@gmail.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0iTYRTHed7nvW04elq3J6OiRURadpcTdIOCHiooqL50f8m3Npoa05Ya hZpQrVwXo8taNLPyUrRYMi+I5BS1G9rCXGkaVlZUCzNF026vEfXtx/9/+J3z4cjYeEyIlC0J yaotQbGaRD2v/xSROyO/NtY8a/COCG7vTRFu9KVA/stSAdxFfgRf+1sk6K6pEyEvtxeDuyGL hx7vNwxvajskaL/eyUPF4RIMHSfqRcjOGsCQWVrAQaPfKcCZb9cwlKS/lOBJuVuEtps/BegM ZPNwz1XIQ7tzKdR6RkPvg48IarwlHPQevyRCTtAjwqusdgTB6g4eLmY4EXgrQwIM9LnFpZNY ceEzjpW5XkjM49vL7hREMUcoiJmv6KjIfF9OS6z1aYXI6s8P8KystJtj2YfCIut685xnnyub ROYtbuLZQ0+NxLp9E9aSjfqFcarVYldtMxdv15u7Tp7Fex5FpFRXXkXp6KrOgXQyJfOo84WD dyB5iL/3LNRinkyhF2u7OI1FMpWGQv1Y45Ekmn5oDkgOpJcx+ShQ72E/rxUjiJVeyRkcYgMB mtHgFrQhI7mFaV/nO/FPMZzeu/B6aAiTKBr68Z7TFmMyjub/kLVYRxbRnodupPEoMpne9ddx moeSQpkeaakW/hw9llYVhPiTiLj+07r+07r+aT0IFyGjJcEer1is82LMqQmWlJgdifE+9PtF rh8Y3FSKvjSuCyAiI1OEgd2ebzYKij0pNT6AqIxNIw2ZS2LNRkOckpqm2hK32fZa1aQAGifz pjGGOb374oxkl5Ks7lbVPartb8vJush0FFsX32yP3LGS6IMOHUsLTYuskNfmWZqLHqxudZYP lrWd+Jqj2E/Pd6esn4i3HJtcVXVAWrZ/FT33+T73NiNDWnV51vSd4eeXmwyNdftal4f9QWtD +OClzv5D4VD0mu7sxw5pWeaCysDWDeP9wz5tzt04tzr51GKl5vaKqQVRW/MTTXySWZkdhW1J yi/HgA13HgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTcRjG+Z/bjsPFcZkdlD60LMN7mvFCZhKUfwykixDVh1x5aMs5ZTPT IFBTpJFaWVJzxvKu2VbLvISITfFSiuEy18U0UzEy07xgalYror79eJ7nx/vlZUnpFOXOKtVJ gkYtV8kYMSWO2nnRr7x9hyIw72ogGMw1DNxdTIGK4QYaDNV1COa+vRHBbFsHAyV3Fkgw9GZS MG9eImGsfUQEQ+XjFDRl15MwktfJQE7mMgkZDZUEtBZ10fC8LpeG60tlJNSnDYvA9tjAwLua HzSMW3Mo6NJXUTCUGw7tRjdYeDaJoM1cT8DC5SIG8vuMDHzIHELQ1zpCQWF6LgJzs52G5UUD Ey7DtVWvCNyoHxRho+UsfljpjXX2PhJbqi8x2PL1mgi/fdnE4M6byxRubJglcM7FKQbPjL2m 8JfmfgaXTEwT2FzbT+FuY5vogMsxcWisoFImC5qAsBixYuZKAZnY45zS2lyK0lCpkw6xLM9t 57/Ph+qQE0txm/nC9hnCwQznxdvt30gHu3I+/KcBq0iHxCzJTdK8ObuOchRrORVfnL/ymyUc 8Om9BtoxknImkl8cn2D+FC58163R3yOS8+btqx8Jx2GS8+ArVllH7MTt4ue7DcjB67hNfEtd B3EFSfT/2fr/bP0/24jIauSqVCfHy5WqEH9tnCJVrUzxP5UQb0G/vqD8wsrVBjRni7AijkUy Zwm+H6KQ0vJkbWq8FfEsKXOVZOzeoZBKYuWp5wVNwgnNWZWgtSIPlpKtl0QeEWKk3Gl5khAn CImC5m9LsE7uaSg6DdzPeVCmBKX0QfCLzGcn8/LfW0Y8C4KittiykgZbgw9HuNnCZ72yA47a 7pXt1T7JimxKmDjDHt93UH6jJ3L/oWxdccmesK1Ta6oCXa557I4YnaT9fC3K2xk+ps++LUGD j+iKxLLoMuTjt8E6FzStfmpLXhrwzJ8rpU0bn843yyitQr7Nm9Ro5T8B9lLpoQEDAAA= X-CFilter-Loop: Reflected X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 60D7818000D X-Stat-Signature: nyjwnxiyy5z8w1ydaxphjm478cz4j334 X-Rspam-User: X-HE-Tag: 1748420264-996764 X-HE-Meta: U2FsdGVkX18cCLm8uta4PhZLJjKX1TPHqBaMNEa1+bN+6DSO5d5Ku0ujAUzc1uxRjVvsZUetPS8q8NY6SkVUEYz9zgBT7x7DX1Vc0lXF2aU9myw/lp6I73H3BvjuyqXrmJrJAta8docu5M62FbrYPuAAHSx5pc9/TreenarzTU9eSNXxRtyjzBJZir1NpLYqiOhGX4eZNFROeDWkQVf2nVUMiMxTPet82N1DPqkcTArV75RgK71cDtv7rVmSk/m8uVkJOU7O7uvaYMrbbWS1HOFOjwetBfAzh7V0yJAb8zcbGjDQXkc+shFyFgVBKh2F9u3StAx+/sWU2G9NWouUEP9Oek1J2Xa5QHgz3NP+1J9ma+I11a9gasJWHssA4qQuLD0BmBgoUtfYXzMpXNjIINUiWnha5JpuIPU84c+aIjPXLFP05XGSGUc5A49mbwFQSwVB3fRda34al1itlku6gx0rBY2filUg/Ooq+061Rvb1rdX8YIQ0aBNCLb0vl5f0h9P08BjCmLwHpCQaAB1SARGQ6TUcneMc+H1QTuao6Ku2/j4CrZiEuB0eA6LPWdeA48z/weGRScap98khF7vibERKEQWVcNo4+0Sqs4mUiiQKbOGQAdVq3bb5LaLSil7A//2hFbqdIYIl2vMdA1Dhx1OiHAmo7IuYwRes6vhS8PEzGf92QDBvo97CO1+J5YubngALpv33Pz9KQ1sLWBtZyecK84h7pyotvqibNu6kKW8oDuf/MYy0ga1zbDOUM9cnuhrli489XOXbJRmjCl/o/kGGsjStQLbUXyruEDhwjhCJ9TXGDHOx0y4OUQ5Yg4ExuOZMAG62hzpeUS0/0vnm8gMbiRsbTpJzymNrb7AmN7HtAJyJ43mOwhKU+ZjHffoK5Zr1xMaPENYc9yER1mYr4gYSZvr5TqcSE9SHkhs4ISHWgst6PMUal10gwdvY6sdew4vu3MyPNMNCLYLYNPA NuDv5jdB Rlr49GJafzXjTla2fqkHUHV9X4lzzMYdMGluG7Zyv0FllA6yoM066oUbmQrOjR12+lQav 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 Wed, May 28, 2025 at 08:43:34AM +0100, Pavel Begunkov wrote: > On 5/28/25 06:03, Byungchul Park wrote: > ...>> Thus abstractly different things maybe should not share the same > > > in-kernel struct. > > > > > > One thing that maybe could work is if struct net_iov has a field in it > > > which tells us whether it's actually a struct page that can be passed > > > to mm apis, or not a struct page which cannot be passed to mm apis. > > > > > > > Or I should introduce another struct > > > > > > maybe introducing another struct is the answer. I'm not sure. The net > > > > The final form should be like: > > > > struct netmem_desc { > > struct page_pool *pp; > > unsigned long dma_addr; > > atomic_long_t ref_count; > > }; > > > > struct net_iov { > > struct netmem_desc; > > enum net_iov_type type; > > struct net_iov_area *owner; > > ... > > }; > > > > However, now that overlaying on struct page is required, struct > > netmem_desc should be almost same as struct net_iov. So I'm not sure if > > we should introduce struct netmem_desc as a new struct along with struct > > net_iov. > > Yes, you should. Mina already explained that net_iov is not the same > thing as the net specific sub-struct of the page. They have common > fields, but there are also net_iov (memory provider) specific fields > as well. Okay then. I will introduce a separate struct, netmem_desc, that has similar fields to net_iov, and related static assert for the offsets. Byungchul > > -- > Pavel Begunkov