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 59E90C83F17 for ; Tue, 15 Jul 2025 10:00:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EBF006B00AE; Tue, 15 Jul 2025 05:59:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E6F8B6B00B0; Tue, 15 Jul 2025 05:59:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D37586B00B3; Tue, 15 Jul 2025 05:59:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id BE7F86B00AE for ; Tue, 15 Jul 2025 05:59:59 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 6C36D1A0379 for ; Tue, 15 Jul 2025 09:59:59 +0000 (UTC) X-FDA: 83666052918.16.DD4C03B Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by imf11.hostedemail.com (Postfix) with ESMTP id 6E2EF40013 for ; Tue, 15 Jul 2025 09:59:57 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=AvBSVQ6N; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.208.54 as permitted sender) smtp.mailfrom=asml.silence@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752573597; a=rsa-sha256; cv=none; b=8CvVlJ1LtnZxSzBV3MKIa3kS6SX7rsNVRYhh+pR2+GDmrmTnqdNR8ASnaBoGBEKacGV+0D sz7e7felnYARnZ6qBdFDnZT+fgNhjH22ne2MqTYJgfI0me+okT/3amHL8EQfYO9RDzLNo3 NsuSIPiAvY5YHvu4kbOaPFiT0UkPJZI= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=AvBSVQ6N; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.208.54 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=1752573597; 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=PYOMLk8TERJztvlhTETYqkHUNW747NVR3GmboO+0P6E=; b=yHyjuIHwKRrYgLquJUx6wZMxf4nwnJHoMiufXTg+PcIc3P9+Gp6+HYMLzLX8Qq4Fdsd4aJ aVlVbu8wnCG2JEoAgbHRIv3Tw/u9Am1eU4cJHw6nQLmZn3HDKSyNQHEUpBZQYT9FTRRSTU PFzGHYFA7CmlcACN2GTcd7b+0UKHSqs= Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-60c9d8a16e5so10034854a12.0 for ; Tue, 15 Jul 2025 02:59:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752573596; x=1753178396; 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=PYOMLk8TERJztvlhTETYqkHUNW747NVR3GmboO+0P6E=; b=AvBSVQ6NMsDbaZ3hdetjZTc/rvcSbITTgc0tmQi4dMWuKR9PpdWtOCC1ffWH/JryX0 FDEjH35Z4b1y3cI09DcLxxU/aq/nn3Ihrzd68YiJSsqjUWJgpiwfVzSz7G7+k5reheRJ ZzcCAMms/WvyJDRLs+EK5+LsAfPWNiIdZ4FW6iuP4CZ4QmE1I++zR1Q1swNIF8HoZKnh M/SdbjZ3YB57tvgl9BYSQvt4BU2No1j6W29wTnriziSUzUoN09jSGMuyrzRSK5wLqHQo j55oOFjQ5o1nhtM9g/oR0RH/ekQ3Rn/d88r7TLvBQjY7d4Cvv+a8wh4xwjTEXlFMAneU uyiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752573596; x=1753178396; 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=PYOMLk8TERJztvlhTETYqkHUNW747NVR3GmboO+0P6E=; b=i5Qg4wPLse7iUyBXqszNSaDRndcKEL4KT+GQZ3Zb93cIgbgX/joSekjEowkmWTRbpT iL+kCxbJh0rePiq80APhD6RKTrptNLJBuE1gvSTptVBz2mkzC/7/mcg6yq9i3bV6yBuL 6CTmHsNx8fYTNBF2xglz393FQCmfAwNG+DCz/j9OMZXiyZMBXZT+6oFeHQ7sgR0q/GwY 0I3SnCkBMj0xaDJG727NRf8QZ/k9KSdBPF4d28MrFOIES7G/E+yFyRciQwGDvCb7C68p dkrwIMFMB5oCRAeSTwT9kV+XTj/pwZXVaGP5ZmpR+sCAW2sK1aCGKR14LZZ+g2gXK/b3 cvYA== X-Forwarded-Encrypted: i=1; AJvYcCUIEBz3qyyDv135hHkS6hAF70Upaui4s0w/zLbJw2Gy4cHwYmMDREZJ9uqdYW3LWf6losYLezcqUw==@kvack.org X-Gm-Message-State: AOJu0YyQpqDDljIZyyvXzZij/TmdWkGSTy5yoKcRxjzBoU40DZUts9KQ HinD/yC8PraWEP6XHXupPYH14Db3MAL74NNsHDJqGZ1ma+VdP+s79h++ X-Gm-Gg: ASbGncsGYaycZGvmZ+S8u3qz50VW/NjeM0EwpxWBXfM6At7sRMkV83HvcyDVqYsT26f QkRMeUn99tbwwxrM2CHrjCVe7dazSf4W6BXQeBhVXtcpLy+EpqGIQO4M3zD8tW+CBpjosGi2MEs AzT6jMVAimdlPA2wz/HmCg/Rj7SKC4kNqBvTURAEnzEiF+hlwSULwiW5mzv4a58XumjFIUfX5Ah 8E8Rq5VyLi2n+8s8gVgjJ9qH/gZSeGiaO80sjlRFeNAE71VDymV0uzbKzf8zDOjzvsKQLxwCH3r UtZxwEOHDXHvolPnlLyJZWDVL8sDUTZJ29/KB248NQ1wj9TfDQKajvm6tZZjeEgG0S+i4vFf1mI VT+5G6pvpcEylEaQqDf0lsiq2Jd49e6ecOiE= X-Google-Smtp-Source: AGHT+IEClANar98EqQcH01HezY8+daSMVOJbnjooC+tE4RrQapF+6luAQA+hn2S+9tC3xu75GcdOmg== X-Received: by 2002:a17:907:d2d5:b0:ae7:ec3:ef41 with SMTP id a640c23a62f3a-ae70ec3f087mr1332966566b.45.1752573595500; Tue, 15 Jul 2025 02:59:55 -0700 (PDT) Received: from ?IPV6:2620:10d:c096:325::1ac? ([2620:10d:c092:600::1:a4c1]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae6e7e910d2sm973242366b.2.2025.07.15.02.59.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 15 Jul 2025 02:59:54 -0700 (PDT) Message-ID: Date: Tue, 15 Jul 2025 11:01:22 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next v9 1/8] netmem: introduce struct netmem_desc mirroring struct page To: Mina Almasry Cc: Byungchul Park , 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-2-byungchul@sk.com> <20250714042346.GA68818@system.software.com> Content-Language: en-US From: Pavel Begunkov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 6E2EF40013 X-Stat-Signature: r3kufkuq8aguhjxq1ho89qf9wd8rgq7h X-HE-Tag: 1752573597-57072 X-HE-Meta: U2FsdGVkX195P7J7ry7ERQpqNgxZBDFF5yhJNB/G3LqRozWVPRBYDn2xv0m4hLWPb67uMNTz5IDDeGwehM+nC2ctaqPD28pgNpQnFBmnTxQcMYkdV7TY3m9eIFkpDFLYbO5ROhbE6cD5pbmCIWniq40d0QbBM8sddH2mw4cf3AUFjpCO6n6W+oOu437bzXpSGiLFfiotsAk83TOgLxCbXY9sH4Y7wAm87A/y8dBG8rQcSPWPEBrnLyd4WdzU4Ij0qLnKJg5+1mlPn8Ea3kHmzukKgP40sRi3OmAXoxEe5mmyaK2GLN3wfSd9AYeEJgnd/WUeGVGzYseqLM/Y+C4P9VEayCSX0uQlYOJ9/tw2Yht+QnKXjvSdYq1U/D6wksFXv+jg4sd6tVSTTmXmvtc4Qra6Y5PAbzzYcMwjId4DLjoVnb76VTqZ9xYlEoOmrAqDisQ5AK/tzMNn7kq1n39+ttkVFRqfks4UmIfp53mMBoMIGRmMZETg7gBKTnphKE4qD4+Rp6aZPmTgqCtSTzs8hcTdvo7VhUGp5qnyPgYXLgStV8GKrmdAitDmiKKn2IR05/FcQ8483zmYBLrff5i53bcChV2pUZb1heBRYaJxFocgUWkE4v318RFBMib1dQQPpXodWkpXyHETx8uffKdDPxrR7IzMwG08/VNR5ZDr2BmLZusWQ5GU7pBafHQgwgRq/boIL7u1xoeEMSPeSwBFRpQKFN7zPLBd4Z7M1JZ13TEBuriKdXW/PgzxJq8SEjWDSm8vJ/lxBm6B8+BT+BacCORrs2J7YAJB2SROvpPjDBX4PgJQha/r+Zict5sEVP3Phbp5Sei15qxVzZCoIJqU2a/3TPxsr5WGZGEon/ADU2/agd8jywZmpmjY5oNmopcTS9oqLcWbfxWIb9eYXc7jKTH2TnBYukoVPSBcNSln024IUith5YReKmPujnRH2umkNkthVMVzH7e8okFe0Yb 6KzWGPfH WEPVngzKpCAQjKxDdnZgPZ6MXQBblsLhPdd7azMeRLGWpFrgBHU3/BHN/Ah7rnS0FsZto5INMPhLW8oXCXzBHAmCFE/6jdJnuxn3xnABwGGGvRHoLvlGBm2KXhL9z4A8kjbkfDZID2c15SFs9qffkDHMjdOHtQeCefhwIIS8Hcnu65BKy68YEWmTreXmKPwfMvXRZXuOzVidqvsdXn0rO8/yTEanevo5WOZwhZpgTeSHjnLSZFWumAAXvcpCqSQh4QBKoYy+K//Gk2ykGulowAu5OrUwyWS/CppOa/K1ieNKA4jJVuUHmtqbTUM3LppA6/JeE9cOGE5l0ZaK0HKvPqIoAibGk9Bpvo8cJBpLy0pv3kXEASbyI95gjwwvsrKrm1U6DAS0ThRfaMoitbM82pVxnaD5bbog118DX+xj72sVPw7vKycWsq8nLiRNU4sUwMnyQRtfJNZvPTAnwFjkGVBAx8y3UigcUq2PUksSAUfCB6/qSrlTVM9f7AXAytsI5G7cFHMiS3aDA8qKgnEyYCAtPTHN0uPrs7pJnXvUlJNS6cvMEC7CqHk5UiMy7J8JRvs8x9v3vQ0/jms5u1dvKsqkGPJ6Ymg0vwZhXqZP1ue4Pc/XMTNPNgekUrIkQyLQnRaNLgiGZ1KVmr9LueSei6sOQOg== 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 20:17, Mina Almasry wrote: > On Mon, Jul 14, 2025 at 4:28 AM Pavel Begunkov wrote: ...>> diff --git a/include/net/netmem.h b/include/net/netmem.h >> index 535cf17b9134..41f3a3fd6b6c 100644 >> --- a/include/net/netmem.h >> +++ b/include/net/netmem.h >> @@ -247,6 +247,8 @@ static inline unsigned long netmem_pfn_trace(netmem_ref netmem) >> return page_to_pfn(netmem_to_page(netmem)); >> } >> >> +#define pp_page_to_nmdesc(page) ((struct netmem_desc *)(page)) >> + >> /* __netmem_clear_lsb - convert netmem_ref to struct net_iov * for access to >> * common fields. >> * @netmem: netmem reference to extract as net_iov. >> @@ -262,11 +264,18 @@ static inline unsigned long netmem_pfn_trace(netmem_ref netmem) >> * >> * Return: the netmem_ref cast to net_iov* regardless of its underlying type. >> */ >> -static inline struct net_iov *__netmem_clear_lsb(netmem_ref netmem) >> +static inline struct net_iov *__netmem_to_niov(netmem_ref netmem) >> { >> return (struct net_iov *)((__force unsigned long)netmem & ~NET_IOV); >> } >> >> +static inline struct netmem_desc *netmem_to_nmdesc(netmem_ref netmem) >> +{ >> + if (netmem_is_net_iov(netmem)) >> + return &__netmem_to_niov(netmem)->desc; >> + return pp_page_to_nmdesc(__netmem_to_page(netmem)); >> +} >> + > > I think instead of netmem_to_nmdesc, you want __netmem_clear_lsb to > return a netmem_desc instead of net_iov. Same thing, the diff just renames __netmem_clear_lsb -> netmem_to_nmdesc on top. > __netmem_clear_lsb returning a net_iov was always a bit of a hack. The > return value of __netmem_clear_lsb is clearly not a net_iov, but we > needed to access the pp fields, and net_iov encapsulates the pp > fields. Right, and netmem_desc nicely solves that. I remember suggesting such a common type during review to the initial netmem / niov patches as well. -- Pavel Begunkov