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 88E29C83F17 for ; Tue, 15 Jul 2025 19:06:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 26B926B0096; Tue, 15 Jul 2025 15:06:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 243546B0099; Tue, 15 Jul 2025 15:06:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1801B6B009A; Tue, 15 Jul 2025 15:06:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 0C5CE6B0096 for ; Tue, 15 Jul 2025 15:06:54 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id A3FD51A019B for ; Tue, 15 Jul 2025 19:06:53 +0000 (UTC) X-FDA: 83667431106.19.C6340B5 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf22.hostedemail.com (Postfix) with ESMTP id BCBE9C0002 for ; Tue, 15 Jul 2025 19:06:51 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="1/hLPSxa"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf22.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=almasrymina@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752606411; a=rsa-sha256; cv=none; b=CsYQpSXW7dqiGjKyKVAkFhE0U5Nqfy+QtJXHF82LPQNXz0p7ZsNSOaVXzYFvYWyxo9mBUi h31W/RoQNVoRMSoinwDkwIi8DtGsWvKOTRGe1b3oG4+GhUZIFIvTthpGy7tlGPH7SYYlbF 0m1tM79fv7jQYYQ5opnn3TuZJl+18DQ= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="1/hLPSxa"; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf22.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=almasrymina@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752606411; 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=YzQixld7pSKyZ/Q/HfBpbSkDP1wbVsZogbStCOaFhmk=; b=zj3PzTDIVnzr6TB0mAq7WLS8zD2ivWKVSGyDjsBNSJtGlA8lFxJaid81znlnpQHrWGBfrx fwqGfhYhM6zNMMamX9nUiZQ5hjqXvr5aDXmFRHioxVjTTzfX9bDG9HvR9UuQ3DYfSwFqEP ix9jKo/2iHC1x/7nXQEnUD7Upy3ey/Y= Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-23dd9ae5aacso36005ad.1 for ; Tue, 15 Jul 2025 12:06:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1752606410; x=1753211210; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=YzQixld7pSKyZ/Q/HfBpbSkDP1wbVsZogbStCOaFhmk=; b=1/hLPSxabSwJz5X8eMWPyninoBf4asntIyeJj3KUu0GmdAX4dWA7u1MTQhyxaU634l bZZHPjDRWY0iL/SHGQBTbdk/ItoYsSdt/mVzSIFsMkgvbr1QvjEmYaGNY3cW3mezpJ7G DY+hdmP/CPMnhs19GpAvMid76/CmsGuclEKMo5jshaQK65kcUt0Mv7YOTOnB6AAn4HZX dMYns7lx85M61Og68PgeWiPctv/uzEfipwPj+E2pJp50Tay1pW1yx5Z01iu1QoeV2qly efyOQmdGV+GhvhqCHESjqtOY/mUeYE/kaxwnAzL1B6XudIAMGB7XcBEVjWulAa1BwnWE ceIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752606410; x=1753211210; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YzQixld7pSKyZ/Q/HfBpbSkDP1wbVsZogbStCOaFhmk=; b=V8k/7waEqQE6MI1l/YZQsrN36jZjM1bfURp9ZZfJWv35g0Bosx7yAQ97EO4+TjuybU 8cBOO8Ez5vq4VtKYGj1F7CSSyCkXd/ief6+ZuIuMoEFN5cmG1jadCIuJejANn9gRSfxu FaKD70Lxg7Wn+ElCVmma0nZbwdxXB2V2ZtC35IyGanXyt6M3507Dl3y1EZX2rqO77U6Y DxPO88LDyNZl6iVwrzETCh+ZWijmWBAg7n+nSdfhOnfDxGZZR7qqkKK3gybzIjti0VVy Wi5J6B90OlEgL521pJboK9PEshp6Nk/C3hcFSRdfJED8wlvWbIKyrjZQMBOfzbCyvY5q s+Qw== X-Forwarded-Encrypted: i=1; AJvYcCX/6beMo0kfeZELXigMP2/Zt3rV9dsSFdyYnhEzQT7OOhaGxhC/FJPHF9AjCKNjYfrfzX3e2bvQEw==@kvack.org X-Gm-Message-State: AOJu0Yx/ZIlKEpLLvFjBnor6MOIA3B5C6F0oXbMjGodh5Xz9wyooSU6H fKqhh/0tmsXu94fNOrkqYHS5U176V9MwhHEynS/TnV1ZauAwk6A6efbP3Urf482tjrAVGUsuHLu KtrWqDjHOeskg1YJdsrNS+ajuN9Iog3ummPBBK7VW X-Gm-Gg: ASbGncumVaGYFEFUNYy7GBb04MdSlAYNB/ZBPR3Qyyb0ohN0+PTqzZQ45sn8VI0oV9D /++YuHhKzaD3LdOgDKjHmDWeIxH2vdlKDAFVeu9+kpetpEkMT1mLt0nt2dO7hcBpDPZnzVDVxPy g5J0EfYV1vlO/Y1oYF/ZA4NDmHuR0EQePlAlQrnYGK5L2u6tyk/gn8HnYRARxutxx67yESlGABg aiCJlJTmrI6dqclFsJcAD90ODAYfLAIIlg2Gg== X-Google-Smtp-Source: AGHT+IERW8BNAcLICEi0xDHHwbh6I9mZCyIk3Mt306+jQnPwqHCieheEaqBVCmnvb9hqZyStUnuqxe9DuyWkdC9x3QM= X-Received: by 2002:a17:902:cec3:b0:235:f298:cbbb with SMTP id d9443c01a7336-23e24c6e119mr315625ad.26.1752606409905; Tue, 15 Jul 2025 12:06:49 -0700 (PDT) MIME-Version: 1.0 References: <20250714120047.35901-1-byungchul@sk.com> <20250714120047.35901-3-byungchul@sk.com> <9bed2f6e-6251-4d0c-ad1e-f1b8625a0a10@gmail.com> In-Reply-To: <9bed2f6e-6251-4d0c-ad1e-f1b8625a0a10@gmail.com> From: Mina Almasry Date: Tue, 15 Jul 2025 12:06:36 -0700 X-Gm-Features: Ac12FXwyUUoU8xGdECWjpzai5Qr9bPwFw8HDcAUKWZbO5pnAVYeauYEt5y8_8Qs Message-ID: Subject: Re: [PATCH net-next v10 02/12] netmem: use netmem_desc instead of page to access ->pp in __netmem_get_pp() To: Pavel Begunkov Cc: Byungchul Park , willy@infradead.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel_team@skhynix.com, ilias.apalodimas@linaro.org, harry.yoo@oracle.com, akpm@linux-foundation.org, andrew+netdev@lunn.ch, toke@redhat.com, david@redhat.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, linux-rdma@vger.kernel.org, bpf@vger.kernel.org, vishal.moola@gmail.com, hannes@cmpxchg.org, ziy@nvidia.com, jackmanb@google.com, wei.fang@nxp.com, shenwei.wang@nxp.com, xiaoning.wang@nxp.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, anthony.l.nguyen@intel.com, przemyslaw.kitszel@intel.com, sgoutham@marvell.com, gakula@marvell.com, sbhatta@marvell.com, hkelam@marvell.com, bbhushan2@marvell.com, tariqt@nvidia.com, ast@kernel.org, daniel@iogearbox.net, hawk@kernel.org, john.fastabend@gmail.com, sdf@fomichev.me, saeedm@nvidia.com, leon@kernel.org, mbloch@nvidia.com, danishanwar@ti.com, rogerq@kernel.org, nbd@nbd.name, lorenzo@kernel.org, ryder.lee@mediatek.com, shayne.chen@mediatek.com, sean.wang@mediatek.com, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, aleksander.lobakin@intel.com, horms@kernel.org, m-malladi@ti.com, krzysztof.kozlowski@linaro.org, matthias.schiffer@ew.tq-group.com, robh@kernel.org, imx@lists.linux.dev, intel-wired-lan@lists.osuosl.org, linux-arm-kernel@lists.infradead.org, linux-wireless@vger.kernel.org, linux-mediatek@lists.infradead.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: BCBE9C0002 X-Stat-Signature: wr11f66b7d1s18pxx7bw44njmkc8is6r X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1752606411-352022 X-HE-Meta: U2FsdGVkX1/6gL88jtyQ+yq2bpWqCt2SgM8OEhPg+fSKAq0jwYgfyVfwDrUTO3SRMylWESXR34t1dWr5yuChJ3Sn3QA9nYPgE462LhnmOgwpV50zlIgGgs5wz2shVvOepme+2Wm4xwwltF1wufsuTtrvUV8ViMKFWZyXiilnCHvmyyAr614R+q5vvdjREJbq6Db6UHo5jCGyKERNgTaNMPRju+7UkPyx/EEKCzyw6aUM6HRXOwSlcb7YUvNiT7oq1CDxP3jSRSQZB3Rp1d1xteX6a65h/hclfekGfsDEENBX+tBSv6CRBfgtlBCMLIBpnlvESW+mKAQx9Y5H2xcXGrR5vPDIdTDQGX3ab2/SHoYiNRuSLc6Cp83g4XMvOVREe/kfSdXGn4tUduxb84zWY4hv03jIoMNcOjHVg9rZAm434H4KLh+cgDWu+CgDCbajef6XtuvdHT/k5rk4m6HwVKb39WfDz6eph95GYhz7w0yD1CIIM8l91gZQmksavOmY4hryYoA+O/Lto6bEaII9MGiITtKlUt7/826s+Yxc+rpvG0vGisFWM/HG2lT28IVGvTOnaOZOAmHByhtNBgbl94OZc3RdCPURNWkGiF3tWBHmbqs3iUoAwLW5ujkc8uX1pqejIcuIjRo7IJyhlAhwvq9ac+GIxAURNzLond0im/aXBXhkivWABRJyt7yRl5DaJ58dl3eiF7wPV07sjUpw9q7LyS260Nz83r+XonUGpm9WSGBSM1nVGTsOGSsQMuskqpCYsKL3Kxx4Rmoi4CfktSLKOuWMDfKu5avsoc0KmjoLiSnV9SgDGFaa27wwVu6UlPZYO1cD9Mr/24QXpS2dICLuzGDFkneXmtnTO9IpCQQSGw2T85rNLXqCPILNnGSXqTuAT2g5mh8JmvuS5tRToHe/PRV3PWqlfoWkahLwS9PhArW8K2aNGqwkooSqaSTXGojxRG09zORi7TWKEOB 9CBM7hHt u1PSHXjKQhnrFNmSaIsbsVuEwjJotnq+a2LGgm1Rni2es3/c6EoQQnt6eZupYPz5uACyfJBGBfJMBS8zjfgXYkB+Ne/ZRqqFBAFTF+LP879G1xXF4ti/7K2rkJcUPisFKIn19c/NU2ElKKT1a2ZeJfRiPpCs7kUEiBfaa+JoVK6Fp0coGub2IjJKjw/6vC/nfBdTo7LIFfFmGAxOvRzOyDoizmlopAFxdoXIgR2ohATvgZeM4l9Y3AvSSb8Wdo+2r0rQ3lqC9lnLplgMkCWJg63VD4qM88p5ZGBB3RTvzv7a7iV2h4EYjpg6uygkjekcntIp/6p1pz54gAD76i3GYoeliAert/fblbkR/DlfEwbmixakfmnlXgdPpjpUQ852mjIRAyGYIEdOHpkzcmkO+QK/F9Q== 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 Tue, Jul 15, 2025 at 3:36=E2=80=AFAM Pavel Begunkov wrote: > > On 7/14/25 20:37, Mina Almasry wrote: > > On Mon, Jul 14, 2025 at 5:01=E2=80=AFAM Byungchul Park wrote: > ...>> +static inline struct netmem_desc *pp_page_to_nmdesc(struct page *p= age) > >> +{ > >> + DEBUG_NET_WARN_ON_ONCE(!page_pool_page_is_pp(page)); > >> + > >> + /* XXX: How to extract netmem_desc from page must be changed, > >> + * once netmem_desc no longer overlays on page and will be > >> + * allocated through slab. > >> + */ > >> + return (struct netmem_desc *)page; > >> +} > >> + > > > > Same thing. Do not create a generic looking pp_page_to_nmdesc helper > > which does not check that the page is the correct type. The > > DEBUG_NET... is not good enough. > > > > You don't need to add a generic helper here. There is only one call > > site. Open code this in the callsite. The one callsite is marked as > > unsafe, only called by code that knows that the netmem is specifically > > a pp page. Open code this in the unsafe callsite, instead of creating > > a generic looking unsafe helper and not even documenting it's unsafe. > > > >> /** > >> * __netmem_get_pp - unsafely get pointer to the &page_pool backing = @netmem > >> * @netmem: netmem reference to get the pointer from > >> @@ -280,7 +291,7 @@ static inline struct net_iov *__netmem_clear_lsb(n= etmem_ref netmem) > >> */ > >> static inline struct page_pool *__netmem_get_pp(netmem_ref netmem) > >> { > >> - return __netmem_to_page(netmem)->pp; > >> + return pp_page_to_nmdesc(__netmem_to_page(netmem))->pp; > >> } > > > > This makes me very sad. Casting from netmem -> page -> nmdesc... > > The function is not used, and I don't think the series adds any > new users? It can be killed then. It's a horrible function anyway, > would be much better to have a variant taking struct page * if > necessary. > > > Instead, we should be able to go from netmem directly to nmdesc. I > > would suggest rename __netmem_clear_lsb to netmem_to_nmdesc and have > > it return netmem_desc instead of net_iov. Then use it here. > > Glad you liked the diff I suggested :) In either case, seems > like it's not strictly necessary for this iteration as > __netmem_get_pp() should be killed, and the rest of patches work > directly with pages. Good catch, in that case lets just delete __netmem_get_pp and there is no need to add a netmem_nmdesc unless we find some other call site that needs it. --=20 Thanks, Mina