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 C2E12C83F1A for ; Mon, 14 Jul 2025 11:43:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 62E348D0002; Mon, 14 Jul 2025 07:43:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5DE958D0001; Mon, 14 Jul 2025 07:43:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4F4628D0002; Mon, 14 Jul 2025 07:43:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 403288D0001 for ; Mon, 14 Jul 2025 07:43:52 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 17F32B60D2 for ; Mon, 14 Jul 2025 11:43:52 +0000 (UTC) X-FDA: 83662685904.20.4F9A795 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) by imf06.hostedemail.com (Postfix) with ESMTP id 09EC6180005 for ; Mon, 14 Jul 2025 11:43:49 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=KRFpFfyM; spf=pass (imf06.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.208.47 as permitted sender) smtp.mailfrom=asml.silence@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752493430; 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=RhNvFDwY+89OVW+p/6NU499AEMOEYY2GKi9Vw3NtXRk=; b=qrKa72hnHuhk+wGPCja4PGpq05Pm0NGOh/ITwDZhTyg7w6hSSMqzLIamc6B2PXSr0B8G5B FK72c67cYqM6vTKPI8a1UH1zv6VPjFEMO4u+wT/3HxSumw8a5VyUAFVQKHE/946Nry7hva 7rSc2taCxU9VVQJvqaO+hvxcPGsxr1A= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=KRFpFfyM; spf=pass (imf06.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.208.47 as permitted sender) smtp.mailfrom=asml.silence@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752493430; a=rsa-sha256; cv=none; b=rq7mApUV54BolkgoCUUYbgxoZdxdJ0QYqfROtabXJ9/tDTbsehoPYbepu0h5yryPNNBFfe 2owrg10XOG+e+7I72rHvDfPlmZXXxgEUNZJOEMqJbQoV3eGkcg6lN7CQWleY/kjsYK4WJr d1auv/XJ2UxODUGVTBHvKFez8qNWCSM= Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-60c93c23b08so8318497a12.3 for ; Mon, 14 Jul 2025 04:43:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752493428; x=1753098228; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=RhNvFDwY+89OVW+p/6NU499AEMOEYY2GKi9Vw3NtXRk=; b=KRFpFfyMQZS0MRh2BTh65vJoaJxgEyDd/bE+zOsylOllQdo8B5PWmj1G4zryPGuNCR 4tbZ4Kd2WVGJpFwTmjoyP0Qzzrc/cbEU1naqGdH0+Fbi+jQVsXca9lU+csxkCIIRb+tb IPWpxT4J/p5CG9n2p8H0HIC9X94XH/fWQ9pCcAteWEIAwapdNMD5KcjJReVbtHUQkcyN p/fjBn63Wmw47jGErRIVMEJbnR9UtULQ9TS38UEJY3cQi67pjCfx4BiqB7D6HE0nmd7y umCn/x5qJx9ZHSiCTAUcvA+ArdelULaa7d2qFixZlid2fK51yr6mdAXDv9o2xjdTptrI +DpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752493428; x=1753098228; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RhNvFDwY+89OVW+p/6NU499AEMOEYY2GKi9Vw3NtXRk=; b=Q5G5dk4D2NrezuzDrpz3cBDoqBNtgUVdwE2SowXIPdJOMBspLdfoTtu+fW6TVbTRuM YAYq/0NgowSpBIiRI6HpegdVsYgWzcDrUIhZq7KWI128JSQDiDDqtleW9riytLBR9TRY Q6J5dTF5GM645Kc2n8hlaF4z8RBHED5mTW+G2+FiYxgC7ofFKpXZ57WUp0yl2Usv0L55 yB/HhiBhJkFSuPq+3JAF3cRMB/OzDMHYALWU9wGP3ajP79In/pQhDMKs5ORpfmYDnCb/ 1L+T5y6hmUdNTVU5tcMITj3WEzGXmczjwjPW+oEiY6/TNI1iAwbLL918OW6YlOC8Z3zD aNZw== X-Forwarded-Encrypted: i=1; AJvYcCWikVVhjqvjDJOfwkhWbluH8p4cOTDRftgS+FGV9f48gcQAjK6jqijfzdrS/QVZTKi7uo8JPvOS/w==@kvack.org X-Gm-Message-State: AOJu0YxSgBvgety7vdAZyYc5TGSdXMWQYK2Gy48LiKAE9/qN0o2YVdsy GNn5PuQC4cMMOLaxqcHXHAWrL+nl/e6tlJvBVTxZTWPG1NT2rRZc3XNA X-Gm-Gg: ASbGncvSF+oAe4q0Y5J+T+qH8ahxoHTeGknER+t6ve0Fq5UNDK+fxWjAy1uGhrRcZyB LizQVmUholZiQkGFWTCqhpe9d5I1RJ0lpg35RKsOvjQjghrkbNUUYd2a61yZqv+s/UyHILxpC8j 9/KGFH4ZlBiZlapTbVItXU8xmInwPwhgwzTeQRmad+FQylq/hcgP0/vIv40XLo67KZ/oqiLBQmo PdS/JWNaxZ2yAJ9a4EYN54NtCoUkwLKe/3a2aXyg8EGTwByHm29EnERfhrpXfWUW9cUsfbqxzE4 46d7CfwS0KYynkbPGgv0OsXJPe9eMjy5UkKDapreVhuKvAh8XUvtX6sgssKOW4aQZl5qfJMgf2R KqyfUrC5j9wMM3xYil27N/M7EkG6c7GaP4aU= X-Google-Smtp-Source: AGHT+IGEx+pgbI/Dk0bg/jaDAuvm8nSoDeCL6TnQgT5rti99cozEAJYWdcYjsGg03LSYS5a27YPlQw== X-Received: by 2002:a17:907:3d9e:b0:ae0:c0b3:5648 with SMTP id a640c23a62f3a-ae6fbe1986dmr1236283266b.1.1752493428108; Mon, 14 Jul 2025 04:43:48 -0700 (PDT) Received: from ?IPV6:2620:10d:c096:325::1ac? ([2620:10d:c092:600::1:f749]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae6e7e949f2sm816205566b.34.2025.07.14.04.43.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 14 Jul 2025 04:43:47 -0700 (PDT) Message-ID: Date: Mon, 14 Jul 2025 12:45:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next v9 2/8] netmem: introduce utility APIs to use struct netmem_desc 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, 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, hannes@cmpxchg.org, ziy@nvidia.com, jackmanb@google.com References: <20250710082807.27402-1-byungchul@sk.com> <20250710082807.27402-3-byungchul@sk.com> <4a8b0a45-b829-462c-a655-af0bda10a246@gmail.com> <20250713230752.GA7758@system.software.com> <5ee839d6-2734-41c5-b34c-8d686c910bc8@gmail.com> <20250714100551.GA44803@system.software.com> Content-Language: en-US From: Pavel Begunkov In-Reply-To: <20250714100551.GA44803@system.software.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Queue-Id: 09EC6180005 X-Rspamd-Server: rspam06 X-Stat-Signature: 5e8dxdkcw9fnihr38jokk4hsuf8u8nc9 X-HE-Tag: 1752493429-78684 X-HE-Meta: U2FsdGVkX1+a4W9kYQEIi1AubS/i8mqRRQpUBTqUtshQjfJTsVhCxE9eOmqWP6Bgr2PmB+AvXDVoC2ZRq6fwREe2fb9UvHJp2YcfX89fKXYTssThUU1hTrceRd6OErtECImlLMvTXocaVLjitRLbLqoKsdIvAvpVF/cOePxGUEbM+W4gL2GZWyRbPHS8cwIeLhvBTDE36NCsJPsg40EArMZBKk8luz6MsyiIcCHgGHFWu4SGAvclUYjA0KMK/LM+kqQMG/cSj1T1bcTtp+9ikjHvOdSChfE25IbAKTjD61Z51WTZPfdFboEtOu2/ulZd3HDgdWF7/ezYm26Pp/iVwF47VaMhDwZsOwi3m5Q9RtqOzz4E51sdXrIn89ljENtXWug8JXI3NFaNxudpnkSJ9+zIBlyH7sBhwbu+f5F06PA4FC6MipaIGPSv7btsTeB/rjmraQkNGdECBxOmc9Att3fNqcE6JPx6p/2zRVbEjWJXnCzzC6Ht99wydcBdl2br7BKkehPAZDLEXSOdSPKQkUfs4nWGmxCzC+RS4bvQCTErboW4iEAalpFjIp+YSYPWf+YTJ4vQE27QwHxN1biAh6usbku8an0qP0nd2dB8g6CQPUywt50AugOAl+N9mzrYZHkM+xNQkaKXAWEvf6PK+lE9DmwrV+czDdH2zDVM1HYSoVLba+e1iTuWM1jmzQHPlzciItMIxhxBSh64zzNV0DjcnFKUFdnSNu2M9zlWYxkuL0QxW/CTW1D+pZ1RvaHs/hLbJhUI3MTue7qEgZjTPmxb53/khyhe5YiH2zivqyNt3jk3Tt6sU57NdAPzh2EScS1xwY2+JqfMzsDSp7Bc7xLz+Jqtcb8Qq9O04F5oMZlDfhhv98O+C5OdocXH7Q/NY+GgOWa1SANwfUsWA1Zkx8+/QNYxiKeCAXTeQ4S2d/ujZZoH49JtDpmXb6PvKQgu5jhHz3j59r5qmDvgeoF RFlYP/9B Ja6+4ERyiFICdvzMHQCUWbpsoJiqCZj4Bt8rL9Oed/FSf9e+itSLutSSAZ6acrzFWNZjZ0uR5CJiZjknC4JfMih9QUqS3Lnm98XNEZDdQak1OhOol25Y21P2joCNH2rvxnUaPPZmwJEszr7fqh/WyQxFQHgUEpIJJxnVPYxoVcISDZ/UfEgkQMH7xjE1fNkAn0WL26gkTBttrNPww0fG0hPZDRWj6VIRMrPr1bt3l4dfMSCAP3z0UYO2rVnorOY36cMFpeaH4LsA+c7a0YOcBtR503mtomvKSbKFGoURubYewn3TlyWRFshpcdEUksbSowVUlWd9J6YyaWUdM2RDIMMR+6laWlKNkMjBENuxKVf9jVxnyZfPA5Bk5GQn6v3wHe1hD0Jcx7I6sFsn9L8KfvuCDF0xY7GuNQXtPZuUs7qoneUH15ckiapBoCh/96ZrlHUVyvnifvhNXHSP29oIGcmD2btiO00FuncGtHhVvvuzNiMjqnaBj3+qpQc4qLUpc5oIFYt3BIcs5t5YlKJWWf0oX2liLa9+JvRpLu30VWTZxbyRodeecl0MKa44ssdUOr7Wv00/yYnukRzWxlfYo+SP0T8S4axTk1BQyy/ypnrQKUdKHFSi/f4jqifBjr29PaKBbzEtEiukg+Zg= 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 7/14/25 11:05, Byungchul Park wrote: > On Mon, Jul 14, 2025 at 10:43:35AM +0100, Pavel Begunkov wrote: >> On 7/14/25 00:07, Byungchul Park wrote: >>> On Sat, Jul 12, 2025 at 12:59:34PM +0100, Pavel Begunkov wrote: >>>> On 7/10/25 09:28, Byungchul Park wrote: >>>> ...> + >>>>> static inline struct net_iov *netmem_to_net_iov(netmem_ref netmem) >>>>> { >>>>> if (netmem_is_net_iov(netmem)) >>>>> @@ -314,6 +340,21 @@ static inline netmem_ref netmem_compound_head(netmem_ref netmem) >>>>> return page_to_netmem(compound_head(netmem_to_page(netmem))); >>>>> } >>>>> >>>>> +#define nmdesc_to_page(nmdesc) (_Generic((nmdesc), \ >>>>> + const struct netmem_desc * : (const struct page *)(nmdesc), \ >>>>> + struct netmem_desc * : (struct page *)(nmdesc))) >>>> >>>> Considering that nmdesc is going to be separated from pages and >>>> accessed through indirection, and back reference to the page is >>>> not needed (at least for net/), this helper shouldn't even exist. >>>> And in fact, you don't really use it ... >>>>> +static inline struct netmem_desc *page_to_nmdesc(struct page *page) >>>>> +{ >>>>> + VM_BUG_ON_PAGE(PageTail(page), page); >>>>> + return (struct netmem_desc *)page; >>>>> +} >>>>> + >>>>> +static inline void *nmdesc_address(struct netmem_desc *nmdesc) >>>>> +{ >>>>> + return page_address(nmdesc_to_page(nmdesc)); >>>>> +} >>>> >>>> ... That's the only caller, and nmdesc_address() is not used, so >>>> just nuke both of them. This helper doesn't even make sense. >>>> >>>> Please avoid introducing functions that you don't use as a general >>>> rule. >>> >>> I'm sorry about making you confused. I should've included another patch >>> using the helper like the following. >> >> Ah, I see. And still, it's not a great function. There should be >> no way to extract a page or a page address from a nmdesc. >> >> For the diff below it's same as with the mt76 patch, it's allocating >> a page, expects it to be a page, using it as a page, but for no reason >> keeps it wrapped into netmem. It only adds confusion and overhead. >> A rule of thumb would be only converting to netmem if the new code >> would be able to work with a netmem-wrapped net_iovs. > > Thanks. I'm now working on this job, avoiding your concern. > > By the way, am I supposed to wait for you to complete the work about > extracting type from page e.g. page pool (or bump) type? 1/8 doesn't depend on it, if you're sending it separately. As for the rest, it might need to wait for the PGTY change, which is more likely to be for 6.18 -- Pavel Begunkov