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 08163C5AE59 for ; Wed, 28 May 2025 07:50:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9AF5F6B0089; Wed, 28 May 2025 03:50:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9876D6B008A; Wed, 28 May 2025 03:50:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89C636B008C; Wed, 28 May 2025 03:50:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 6B1AF6B0089 for ; Wed, 28 May 2025 03:50:41 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 16D2B805F0 for ; Wed, 28 May 2025 07:50:41 +0000 (UTC) X-FDA: 83491544682.03.BBC5022 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by imf28.hostedemail.com (Postfix) with ESMTP id 12ED1C0004 for ; Wed, 28 May 2025 07:50:38 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=RdYcxsSD; spf=pass (imf28.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.218.51 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=1748418639; 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=PFDvh+xhYK9vwsPou+GJtGwXTTWho/iEsaQhsuFcYPk=; b=NcE6FQIujXAwxvTMQ1xQJtJ0zXZofEnckTNm3IUV50hGphoFU/OoVIJ01a433Rr37FqolD ArnP5KNLklKhbBnY2do73iEn5FKA+VmZHqCIde5FeqsZdVcBj9UrA9eyc8zhX+x5phvBI5 IMfB9MyH48W26kvZ3kt8D3+W7oelAeM= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=RdYcxsSD; spf=pass (imf28.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.218.51 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=1748418639; a=rsa-sha256; cv=none; b=w9B7l+Un4tL5ZnH5U+f1WrHUzMOIvxo6D6GYtjCYYV91x9f5GYRIpRfyrQGDhhFuD2wvZa bWHrpkxEGRRSa2I2zJH36H1um/kbyRr4AgGhiFN8Ek6wVgJ5VgbXajOXzz/DM0tXZq9EnR mYqnL3tW/XGtB0GLlykzqX3F8ElQWGQ= Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-ad8826c05f2so388435666b.3 for ; Wed, 28 May 2025 00:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748418637; x=1749023437; 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=PFDvh+xhYK9vwsPou+GJtGwXTTWho/iEsaQhsuFcYPk=; b=RdYcxsSDQ4grVOE5vgE1I8z2U1EddnWhLPaHV1qGJ3u2iv8QeNnWCtgjZO1OgtHZMy AWTA5dl+NzRZUbwetu7x61xWlKD2wI40MyHe+BxVDV/B+XDs6ZwQruSWUBoZ4JscD3fp l434LSf2yEUDgkGlj4OS4PXNxvg7D76GwwQOLDw4U47D0q0tNqEhxUuuZ/lWG9VxFPq1 4yIkO77QmveCzXe8wy5WnPj5rlMeXOxcWMTnxydYir6VdjeMbDxI4xfFxGZ2dXd9viGB jXBvsA2UIZ7U4J9mPc1BJyu3EcyiH98eXCsXggG7ZKbsyDpA3iTOgmYT/+9sW5Oyz5pm 8Fxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748418637; x=1749023437; 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=PFDvh+xhYK9vwsPou+GJtGwXTTWho/iEsaQhsuFcYPk=; b=RtAIqRET9LPrnqKSWuLMIiw7nvq3FUyszkgR7ETMQI82/4Spy8ZDYYKDhIhj+HtfNM oxm7/KFiGVwuk9tJT6S5eACXKSa/SVO5oJLqzIAyHFFBbgLpbxOMXjqkYlCWFieJTJ9r tdhN/1aq3k20OE6DJurA0+m5YyDL1eVNlMnnt5Y7+jS13kcvso1cHbvvJ6Cfk2kbUaOi b/MsYmjV66/AiQx1XFKwal8hys3kWgLdMyD+RwvxxC33p18JPnoTCXseAKujXBL5FI77 eaLSqqyEoCWW9pRlgmuUydSEDDM318QfJd9RXJSkO7X++rzBHYWKRF5SX2LCvdjVvuiS +ugg== X-Forwarded-Encrypted: i=1; AJvYcCVxITAMngJnXzB/6fx3QxigaLdgWmFnBQUq7bZGv3V/fiOu2qoGTKIwFgwHRL2NQuAPZ6Uyp2cQgA==@kvack.org X-Gm-Message-State: AOJu0YwiDO4X+ytl9UoNG3oons0WHkCbLgqHketo3iC/QCf7GhBEQodv 8Ta1ZiMxEsiYpdo8Nolw+ShOgzUYd/pdVCzkqE09xJwRk6yLVDtIZama X-Gm-Gg: ASbGncvpp5hbeGulbB2VM6gFeXvZ4DQeNd7X0f32gnDw/LGrRmZnJPso61Vtc0LMwzh 7uHz9JSyoGjRa1OWBDwx4hxonc6lx3h4L3fKe/r4zYyEgpYZ9U7FqoTdQRjQbjH9DfIpXHnQLsn blRiDbKGQwZNuT9VuHX8WbnMqwRtXGQmIkACwaznBBOzmBprK+7sC4d9VMWayLMUcrv9LQZbAfe 5812aqaiBczkmLxvEDqQbCbqV3Mdk5ABhQLMg44wS9456echZVLIGcWPiK8l7dS3VFnhbCvjbNK LjlOdVlQ8amgp+QvSCl9GrNXMM5GbsSfcjp+CGcyzJ5mekGljQVkojCErYCb6Qo2Xj9loon8pQ= = X-Google-Smtp-Source: AGHT+IHzIvt1GsZdZ9b+8NwHHnVvWWl+yKTgbs8TGJXB/bYOk6vqqvJWk7DJJKDVW+H4h0XE0+Ln5g== X-Received: by 2002:a17:907:9688:b0:ad5:2a24:7c09 with SMTP id a640c23a62f3a-ad85b2b55e8mr1294527966b.60.1748418637260; Wed, 28 May 2025 00:50:37 -0700 (PDT) Received: from ?IPV6:2620:10d:c096:325::6f? ([2620:10d:c092:600::1:c447]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6051d79e78asm399291a12.65.2025.05.28.00.50.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 May 2025 00:50:36 -0700 (PDT) Message-ID: Date: Wed, 28 May 2025 08:51:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 12/18] page_pool: use netmem APIs to access page->pp_magic in page_pool_page_is_pp() To: Byungchul Park , Mina Almasry Cc: 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 References: <20250523032609.16334-1-byungchul@sk.com> <20250523032609.16334-13-byungchul@sk.com> <20250526022307.GA27145@system.software.com> Content-Language: en-US From: Pavel Begunkov In-Reply-To: <20250526022307.GA27145@system.software.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 12ED1C0004 X-Stat-Signature: tkz6cbfku5aitaitsaypdqpghszekc9u X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1748418638-284753 X-HE-Meta: U2FsdGVkX18/7gg8NA7pzpFs0y6X1NX3nSSfajsstdfj7OkyT7HmyMmtYhaVIzK7q2KYKF4lZ8b5ApjDEAELEJkIC0Ku6Crk/AW++QGgJltLegZbsvBUYUr+wTPG3ApFPZGr5WIv7ZsR3ndD+UDEjZzQGshnewRBzDpeKZcyeJSK10gZgjdmMvqCcLF9hutWwVcOmK2LQecDC8a+tT3FD7/9mguOHJun22CiakAEQAbVih2gKpf9Suir1fvOAiBm142fdN1t7skzHQNxbwuxhzR891Yi+0R9V2lEWxCkTGiT3dfwr+38uQlSHntqy4t/O0HkLmg9XHGDED4CtsWmjLpUkvmhQL35/+joYq6ShKf8C/3dlCpwjxFQnfUNMm2v4YrULSu7S3g0DOEop5je4o9WwgPG7e047w0DJA6XgZOUNM4in/KA/G/Inkxb4VRiXSKk0keX9fqztvGtjK7Fvin5EIPzUZg4rDjZ1M+vDrxlMCx+vNbzaGjxUEdi+sHKFFGc8U9kUM0oJRZnmMJzuaIyPV9gFXpUaL/o7djr0ORis7ACmcAz9GS00OJZkahkBjDFrtX+j2bVUq1UA7tgApgyzIbbUM3Pk3zs7F2BENmyzc2342MCCjTGya5Z5Z0sC1GmpP8tqbdAjqIdaBmSpc3OZmqeb+thTm4LkyQ1eO7xiJWomZb+Zj97na0VWBPIDvdJ5bub5yR/vzdfIsDo3fWUss95+FHKmGCGfdgGrYO96bgkx+9mQteR/pMJrqPbuS3YBx3WhegtUyhKVn11PISs0PxOLeyIx2hZUowtg2YwcxZ42KhmHta9vyz84tJNN3ddw0V63Sidqc5ZJX1cFSoIng8tsvJnB0G/mOqKW1oD5+0EHrAjBR3wrX738weoK+Dc28RELN24wnxUdYueVbCGi0oWN8drgQOWqbIQXYqrPglP4Qy51tGeiRuU5DBVtBZYF0whsSmCfhUuJv3 qP76mx+a wkfglhHc/5LqJtOHdBe7AlUPRm57Cfz0G3mZe1OJq+FTCg6/9pfobPWDs86yFriDQMfUR6ybFuwzXKMcXFHubB53ghfjfTwl3T7SkvDigYfmGAIQpRMOXP23PmO2g29a8Og48eBUoO/RHxYfHFrU6/jB3L+zoP6IwaPLpkiCDw4TE0mn0Bz2+m2mAN0IfdjlNbXaQ7XhYvPWHbWhBAG1U46zHmX4WlswZMTXFlnV+Unb33cuIf5iqXDEgTGClsT8yUVV3pBrVT/V1iLLYSTP7AnDSA9TgZ+/9zOWjoEn0PFB+9pwOx2rGCqRvde3d7tCOMOD7s06A/0TVsSsBmkryDzCLY5WQK/00heR92JsCZAoO/m5wTJeFpShojXfBW+rEOf9U7Cnx4Si+FnZYOWrJSw9++LLR32vSkAkRGPcSKaPZs78/zlXphVTxsD0pG78OBEqhQKR98dgbauOTgVTOLqIN9/1YM5ncfb9PhheoRzzzUS0P1STBfFKns8kiZJQHzdBxIuaV06mPPgnh+HVKLVkSd7itT++kDFjoDZR/RXYUt/3UPMtX3PWIFSISacbmDoWPR1fUvUF8fomzDkCzhS5iMw9HuxPneO5SuQEymRqq3oA0B1pt9QTxuuB6WVV2puGk4cT00qdplTh48QtyCOHpWg== 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 5/26/25 03:23, Byungchul Park wrote: > On Fri, May 23, 2025 at 10:21:17AM -0700, Mina Almasry wrote: >> On Thu, May 22, 2025 at 8:26 PM Byungchul Park wrote: >>> >>> To simplify struct page, the effort to seperate its own descriptor from >>> struct page is required and the work for page pool is on going. >>> >>> To achieve that, all the code should avoid accessing page pool members >>> of struct page directly, but use safe APIs for the purpose. >>> >>> Use netmem_is_pp() instead of directly accessing page->pp_magic in >>> page_pool_page_is_pp(). >>> >>> Signed-off-by: Byungchul Park >>> --- >>> include/linux/mm.h | 5 +---- >>> net/core/page_pool.c | 5 +++++ >>> 2 files changed, 6 insertions(+), 4 deletions(-) >>> >>> diff --git a/include/linux/mm.h b/include/linux/mm.h >>> index 8dc012e84033..3f7c80fb73ce 100644 >>> --- a/include/linux/mm.h >>> +++ b/include/linux/mm.h >>> @@ -4312,10 +4312,7 @@ int arch_lock_shadow_stack_status(struct task_struct *t, unsigned long status); >>> #define PP_MAGIC_MASK ~(PP_DMA_INDEX_MASK | 0x3UL) >>> >>> #ifdef CONFIG_PAGE_POOL >>> -static inline bool page_pool_page_is_pp(struct page *page) >>> -{ >>> - return (page->pp_magic & PP_MAGIC_MASK) == PP_SIGNATURE; >>> -} >> >> I vote for keeping this function as-is (do not convert it to netmem), >> and instead modify it to access page->netmem_desc->pp_magic. > > Once the page pool fields are removed from struct page, struct page will > have neither struct netmem_desc nor the fields.. > > So it's unevitable to cast it to netmem_desc in order to refer to > pp_magic. Again, pp_magic is no longer associated to struct page. > > Thoughts? Once the indirection / page shrinking is realized, the page is supposed to have a type field, isn't it? And all pp_magic trickery will be replaced with something like page_pool_page_is_pp() { return page->type == PAGE_TYPE_PP; } -- Pavel Begunkov