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 32AF6C83F20 for ; Sat, 12 Jul 2025 12:15:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A5B368D0002; Sat, 12 Jul 2025 08:15:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A0C968D0001; Sat, 12 Jul 2025 08:15:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8D4198D0002; Sat, 12 Jul 2025 08:15:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 799458D0001 for ; Sat, 12 Jul 2025 08:15:41 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 076B4C01E9 for ; Sat, 12 Jul 2025 12:15:41 +0000 (UTC) X-FDA: 83655508482.03.8FCC275 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by imf05.hostedemail.com (Postfix) with ESMTP id F2B32100009 for ; Sat, 12 Jul 2025 12:15:38 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="EjL//T/t"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=asml.silence@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752322539; a=rsa-sha256; cv=none; b=5zTw8aPyuwCPR+jgxiObkWh1ANmPc750+RS8aNmUREuBxxFVDgFuOVCR74f/RFGp5Po9mq oHzIQ3KYhlW4ctS5TV7XnCey+l1WeNMLH/mtGihiGmqfiXSH8RW1i9GESbtoyfGXH486G7 +mnN1A4utrmTp+7Mn8QPY6hSGc3xypE= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="EjL//T/t"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.218.51 as permitted sender) smtp.mailfrom=asml.silence@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752322539; 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=lIlBxNsjrpmodh9tkNQitFEn68o43sL9ZK7c1JYdDH8=; b=CSXKdoRFZUNkl/Tb8X9aV5prpO2yB724rAZ8eHFswJ7A968q96fHg4yBcd1Q9R6WEpLkMi 6vl06TuzQNXSkcVJVllE/27Wic7YRNuVoSctQGPVzyyKOxBfeU/UJRpO7zUePvdg/ae4Dp 3akYa/Zu9O87hBm1L+T9IpH3lkTEdSw= Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-ae0bde4d5c9so579082466b.3 for ; Sat, 12 Jul 2025 05:15:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752322537; x=1752927337; 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=lIlBxNsjrpmodh9tkNQitFEn68o43sL9ZK7c1JYdDH8=; b=EjL//T/tamTPyVDuC++G2qGGRrfQk1HcVzn+9Nr+VQGr3966mZT/vD7RvsMZvWi17s YylHxIvhW7Yk8vHUiN/kwGKL0k/SUVC1bOeK6oUvBHUZehTCoBUm5mX20GvJLxWBO187 H1V3+vZh6xSxcdQG9HQ4OIXE46DNgA22FiaT4Nd7P12jS9QiaRXo6Y8rLBE1vrwaf5n0 uACjh2fdcGe5zC8EHHIAdgEbQ83cOSRMm55VORSPaiOXgBW3GkKEmhzhQMJf7mICM6RX ZqO780it0/7A22ZSJp1kWtrqTJ7hgFkqgYVqM1d0uLvkJzK3X2wfB6xgduDMepE2N7ir SW3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752322537; x=1752927337; 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=lIlBxNsjrpmodh9tkNQitFEn68o43sL9ZK7c1JYdDH8=; b=Nj/Hl5MebCYEWfFjsXLgU7C+uBtJ/eVBlaYIBtO/rJSIfwL7gGN5WcdcGP6U1JkpBf XYKCM6RWQh3c5Mq5/z9mAEYsMH/UtdRqeZIhIS+SoE1N5Z+RyFa0xxwxH2M/0XhcDs6p YaoQySxXmWSs6qTs5buzFEgFUhQdLch+BuhJ10j1/O6y8EfIFRECk2ZwmBzJ/eacoaaN WVJkK7D1vJdE6ZQdlrjQU2i5v2CXRdPkXr5Xll/ZkYztKpMODEFr2UZFTuLRky65/TCh Y8rRq2R8oBecrCevlJx+IJKCGIlzAffdZk2G89rTgy+WIslV8SpeHLhSzqFKG4ts/EjS YHzg== X-Forwarded-Encrypted: i=1; AJvYcCW6029TLR+aaRzqkKFJRUWTDrGFXZgnWR1beBYU5QWYcr2A1kvsDzccJcTq3ecJo+ygjON2s6OwNw==@kvack.org X-Gm-Message-State: AOJu0YzYiazGgAWUHX24jZdFpYjYVDQqvYrIyA7V7psE9q/v09lcgWsa Oa3TC6PDk7ZoFaJRqhx444K5QPLmN7NZJ5G5iUNdkky8qi+xVgR8ZdQU X-Gm-Gg: ASbGncucAsrct855UpW82bnKsfQTLLvM4hQJQcbocT7zo4sxERRjyLl513U76wt/+Kz DwI4/n4Bq3v3kHqa+5mVjnsS7UCu51nCyW7a4jZ73fgfLU/jTIy3Uye8rWZOl6AMasohKUx80gq 85n966KYx3hnPA3uAZJ3ZYANTu3LNoczC5vHx4hUX6MgcVx/ADYxiwZbRQ14I1ZiLaErrC2MDHN faGEmm2jd0oRyx4cbJbnwqLOGfkh259Gj/wtPRXSWEYGxDFgatv80LI2EB95JTONRxhydhxRBli iEY31Vc3xk1lAEPEa8znv+k6agFSbojWlKubpzQqKWmTeuz8WhG7KNr3oGZpboaCPADesYMNGZk WrRW6rvA567WnX++qVyeGBGYLO4QYD66BmAQ= X-Google-Smtp-Source: AGHT+IGEWzsOMo077sRXBsSB87WRFAej1CYNdPdtGOYOxUbDnztKlTxvP80Dv1WoqEx6QTThQTV7hg== X-Received: by 2002:a17:907:1b1e:b0:ae3:bb0a:1cc6 with SMTP id a640c23a62f3a-ae6fbdc90e9mr664046366b.16.1752322537176; Sat, 12 Jul 2025 05:15:37 -0700 (PDT) Received: from ?IPV6:2620:10d:c096:325::1ac? ([2620:10d:c092:600::1:b2ad]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae6e7e90388sm485231566b.16.2025.07.12.05.15.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 12 Jul 2025 05:15:36 -0700 (PDT) Message-ID: Date: Sat, 12 Jul 2025 13:16:54 +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 , 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, hannes@cmpxchg.org, ziy@nvidia.com, jackmanb@google.com References: <20250710082807.27402-1-byungchul@sk.com> <20250710082807.27402-3-byungchul@sk.com> <20250711010253.GB40145@system.software.com> Content-Language: en-US From: Pavel Begunkov In-Reply-To: <20250711010253.GB40145@system.software.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: F2B32100009 X-Stat-Signature: b179rrz8rmm87yrd6ifkfdbuczzn5r75 X-Rspam-User: X-HE-Tag: 1752322538-688046 X-HE-Meta: U2FsdGVkX18KyQc4ZSX+usCM5aW1jjfzBrwlIuxqfkPGPkMnqPhMyV7pnVn0xAOsKW9mpOQEhdcWj02UqptkunX16iIhELd4FpFqXNmJkFWpHg30VQ1sN2SQxh2dwCUB9XPU9Fz1vRZXPKrSv5O7ZhaVx+YB5GPMyxzh2H3iM/UjfD6qbrd0PPRrlT4d7THeCVFEmouCrcH3S4VOdTecfzBuC615UjJdKOR1ROwksnRLczCfD4Cb+Uhui80XE+y7oefzVrfz7G0jQF2A4GMSD72Bnfq/Nonn+QGhatGfdgNKt3DsNoVjZrKzRRqS7bE/LeS5/vgD+YJ+wRssJbUOn17ULQiU4bXpdVANMEkFuCSsFWDpB3x8fJBKb7ZTKrQ/f2Q9PhX1Tpu1IUDpS/6DdSGNzX60txdaNHi7kxrKarwiP+ri2uMuOug2c6SlP/403G7Lttr8fCW79TTvTXDeV7JyuwdMFy5GkLJqjyAredKVeycOXoYQA0KjfxjATSvIp0ICl1+ohOFrP02fGJIYrKSuIgzvgWR5/IfVpECfu+uJWy9YyY2OGir1NysMeoi51AcuyRhklxCpggzqMu0dro3rXHEFklwRuQmN2vdqU73E5Iz2rkBDTfZIgkrNczrmU4J60Y0+vxaC4oZkOET/ywITwam8d6mj3lVMYtXAyZcqvm+UGak7zG/tsiRV+ryN+PZ3zR78o+TRyUxDffXn5HFXOxPSPD/AYeZ3PxV/57JOY6s/EvBxfw+olXM2QzAPGZzpBg0SgpEqqbspwu7zsBGwnSYeg00+jHc09KaEkVsyWGeuIPGldmzPZC3J2j3TseP58jesXcWjFu+glLRKCbqwCvdvKGKw7BvYtMag4PAI55VFnwsgfehO7dJdzAcja2hljJuIuGSBrtMy73IdHDC6RRCqGdNZwGlJ74V2Qv5AS6OmnDF7nmZN/ncmcz0F6k5K/YVNI9qeG/9rGBT D0ajrZv0 jez4f5H4qndDl95YHZXRYUKgcO84cjpmWwe+mwYSOMsg//6asWOQELV5MDVVfV0v7JdLag5rc78clMpkJJsiuRXSW/NSDVwQk7Zwl2GdkPk/NNW1PJjf5z4ZiWnZOD7ERNTF5GCUtlGPu3SItCi8rIOFdYLeKlCTTudzZI5eZeliibJTdeZhrxftfZUv+nBJiFu0yvEnWzxuxPoZLGmi6Yu41Xyz1kmKK+2NJ/AbnQooWs6foHcn53EhTsjX2KFCNJKQP9cHPzrKrPTg5Tk3V7kKKtCXkSFWYCrYCE/zDM+9tEKZ/YiIWMJ40ScmyR86KvgYNZXl8kWWwLfnNNtF84pk/+coou+aH29WSJKC8bK+Ttcpumzf4F/n7O/szBR8fr0+w8ihvtWjZq5tobLE8uoEN1Zf7mD+3PWjUTVjewNr3xsLe+F45Eb1aByDkVyM6JcH6HAP1KAg0w/Xh+W0d83MZXSpe4lZX2bxf7/MRch9XEpmcnWQ8k8+LrrE1EM+M8GRV2xFwRdCUK8hYqTU6BdQIR3R05eio93ga8OF5NydrtOe3N9iFdtNvEl0j8SonBAx+kHpjB7wr+QJJiBksSDLQHBmmKIP7P06RrnwYsFVeQAP15J3kFZSx7zft+tnhE7/T5R0j6Pbn0rc= 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/11/25 02:02, Byungchul Park wrote: > On Thu, Jul 10, 2025 at 11:11:51AM -0700, Mina Almasry wrote: ...>>> +#define nmdesc_to_page(nmdesc) (_Generic((nmdesc), \ >>> + const struct netmem_desc * : (const struct page *)(nmdesc), \ >>> + struct netmem_desc * : (struct page *)(nmdesc))) >>> + >>> +static inline struct netmem_desc *page_to_nmdesc(struct page *page) >>> +{ >>> + VM_BUG_ON_PAGE(PageTail(page), page); >>> + return (struct netmem_desc *)page; >>> +} >>> + >> >> It's not safe to cast a page to netmem_desc, without first checking if >> it's a pp page or not, otherwise you may be casting random non-pp >> pages to netmem_desc... I'd suggest to rename it to sth like pp_page_to_nmdesc() and add: DEBUG_NET_WARN_ON_ONCE(!page_pool_page_is_pp(page)); ... > Agree, but page_to_nmdesc() will be used in page_pool_page_is_pp() to > check if it's a pp page or not: > > static inline bool page_pool_page_is_pp(struct page *page) > { > struct netmem_desc *desc = page_to_nmdesc(page); > > return (desc->pp_magic & PP_MAGIC_MASK) == PP_SIGNATURE; > } > > Hm.. maybe, it'd be better to resore the original code and remove this > page_to_nmdesc() helper. FYI, the original code was: > > static inline bool page_pool_page_is_pp(struct page *page) > { > struct netmem_desc *desc = (struct netmem_desc *)page; > > return (desc->pp_magic & PP_MAGIC_MASK) == PP_SIGNATURE; > } ... And use this version. It's supposed to be temporary anyway. It'd be great to add a build check that the page still has space to alias with for now. -- Pavel Begunkov