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 7B894C5B543 for ; Wed, 4 Jun 2025 15:14:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1BFC26B05FE; Wed, 4 Jun 2025 11:14:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 197186B05FF; Wed, 4 Jun 2025 11:14:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0AD6C6B0600; Wed, 4 Jun 2025 11:14:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E16106B05FE for ; Wed, 4 Jun 2025 11:14:32 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 9C03AEF01C for ; Wed, 4 Jun 2025 15:14:32 +0000 (UTC) X-FDA: 83518064784.16.1C22622 Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by imf01.hostedemail.com (Postfix) with ESMTP id BD0B440011 for ; Wed, 4 Jun 2025 15:14:30 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=XNbu4o2p; spf=pass (imf01.hostedemail.com: domain of surenb@google.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749050070; 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=utxbGnGIbzF8mH+ke5le74ATfkvfWNo9bI2IYs+ukk0=; b=iWfmOOrJvVVhtH5qKt+qWgdFJekeAL0WiL+fIz0E7i5SVPbdE0hSGF+8Cwt+xOMCLZ7DjY oi5EipE2K3WxUt+ho2oUBoye8rm2gr0Ya1RM7XTYM+VqabBy7cxZ2SxBJYCwVxyhnEwOG2 O2CVPUur3bkwxL3EEzoH3+U82lavYgA= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=XNbu4o2p; spf=pass (imf01.hostedemail.com: domain of surenb@google.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749050070; a=rsa-sha256; cv=none; b=BGTeXvPoJFpAYbjjjLj9lhFyNXZEjHLJ+NfcuF5a1ekaHZD7ykhrFx1X6fhhQbcYtGooVj hw5BGGceFKHhwBEbPFpcNpTIwK3hNpvt+AdFYGGmvd7A5YVJkKi5mqHbzVKpe4/FBxAxyP 2kAUHNWBl5e9JSLifBgmfWXUlISjOLU= Received: by mail-qt1-f173.google.com with SMTP id d75a77b69052e-47e9fea29easo482021cf.1 for ; Wed, 04 Jun 2025 08:14:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1749050070; x=1749654870; 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=utxbGnGIbzF8mH+ke5le74ATfkvfWNo9bI2IYs+ukk0=; b=XNbu4o2p4tjDRisoUEGRYmYmK7xKEYaOVgP9R+JdgnrnrUwHZeYctC5GAO8nZ9xVlv Tte4fvKgf+bNGb3HzosxhHn0q82nbANJpSjmJBSrDaHYQKIKFepJnb9uSRwpAwVcMXGt CLTQK7LhUaTRcaNU5KMtyBLiYcXiuPWec110APLthYNt4zv0pgNwq5b7l3KB+M7DS1Jx 8QxQy6iRUjtX/uNH5ugfaRMXtdfpiFDQREnvf20xGMghtJ8T2zGOqlUXohg6bYvQD5jO Z1qhREuSt981w1qEjlhx8Drh8Y6ZJ6BZVOSPfttUy+HQIIEHmRk2x6uy/LAAKQ4yACqX +a4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749050070; x=1749654870; 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=utxbGnGIbzF8mH+ke5le74ATfkvfWNo9bI2IYs+ukk0=; b=U3QoW502vrDIKJE/89rqU+Xv8kqw2HoVhROJ43I4Cjn3cTTBCTaQB88hVKhRICeVwJ PpHQOyVEiH+e+4DUtpiFlRnqPxsJBXFYr985U7bYPBIjhjcKc53lMY8XkXQlhSMOvqgg d4bnW/oDgUcOBbZ5s4YLiZkiis72F3yLh9H64vu82v7H4Vz0hit7Yp8by1donOa0Biga QvXAiAgBlstBCxzFsXlMpTRPGnnUxGUcPy4wCWsSjlYPvuvuFYmosbVOS5SADshS8pQe IwwRSGgMGVGXaZlLZUCEVAslJAr9tit6yA9YerQU0KSyLh9ikTfogYSxTK5SDA0WL7Xe OEQw== X-Forwarded-Encrypted: i=1; AJvYcCWcc3/LtnplcXVJvsEcQdxlGZvxOvTu+CWmoEPYTIWEX2JWiSl31aMLq0oNCRwZD/R2Q8OE+PHoMw==@kvack.org X-Gm-Message-State: AOJu0Ywo5HVV+q5rEvuEtKaTsax7ucbuj7n6sFRBEe/xQRkrwK9Fp+1u i0KDidQmYKRvZgspXTT1G03wZRw7Fm6ftmO4MimOFs8wYktU5MfeiKz7ptUkYMrc5qLhbM/aJrF ZG9lCTJOv53hbOu93TT9wAy3siM4lXpgo2e4eQbhi X-Gm-Gg: ASbGncvhyQ2TFJkNnycJh4RtPfXjAlJ9YyPqOKMSUlDkTuDElxxsoFw8QZERQUl3p7d v2DiJWEtZWR3tw0/lLLY/admZ/INFfJqa/Kv9l5wk3pIOfxp8+MrLDu7UzrB1qkR/4NWNestTwk l46WuIVrfj+YE2HgqzQ65enkmcOknHMXGXWdVU8k1fwAG00EMG562xhxf31Zq4xXAoNI+pc+hN X-Google-Smtp-Source: AGHT+IG7WUENSnzjQt1432tk0/IC2xUBgjIJ6p1wfQtTmthhSrBkIabqQdFzCkGqvNujLDVYjt6N/VZKebcP/XvFGPs= X-Received: by 2002:a05:622a:5513:b0:477:9a4:d7ea with SMTP id d75a77b69052e-4a5a60d620fmr3781231cf.13.1749050069321; Wed, 04 Jun 2025 08:14:29 -0700 (PDT) MIME-Version: 1.0 References: <20250604025246.61616-1-byungchul@sk.com> <20250604025246.61616-3-byungchul@sk.com> In-Reply-To: <20250604025246.61616-3-byungchul@sk.com> From: Suren Baghdasaryan Date: Wed, 4 Jun 2025 08:14:18 -0700 X-Gm-Features: AX0GCFvbLYsMxCrveTLh5QRMe579FQstUyFi0HWrz3vr2pOTHdyUzOaCmMQ3Mp4 Message-ID: Subject: Re: [RFC v4 02/18] netmem: introduce netmem alloc APIs to wrap page alloc APIs 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, asml.silence@gmail.com, 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, mhocko@suse.com, horms@kernel.org, linux-rdma@vger.kernel.org, bpf@vger.kernel.org, vishal.moola@gmail.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: zxkuurqxageru3pgtobpay4rbchd1r67 X-Rspamd-Queue-Id: BD0B440011 X-Rspamd-Server: rspam11 X-HE-Tag: 1749050070-796467 X-HE-Meta: U2FsdGVkX1+TBurQkOZdc/Tu7rkq79UgHUnd11rP52G3OGB3pxu3vgEDu0Hgif3BnYmK/WQZnYHG4fzJk8a+rw2K+iVoEtM3YkSTa0dQLx+GwdQk6tx/jpZ5KMBFi1mnKmNF2MJepyZRk9R0Dn4EB0swI0Ov3l9PZHh8ErON5CH3r93uUz4+4UG6RKmIfLn6+giibzaY89nkzXr/+SvfnBNrEuM65qc3lHmFKzy47tNTbJO3QdUp9GjhdprOP89+yU4uyEMEnfBV1JtMS9PXzdHHW2YYWSXGjDUqcbjR7J2FKQTVTVUaK4D6OAUVNEjuJQzxQuOs3QIRl38WbgmlZtpyrpBx9bItYK4ecjKKoEiJbyQs5hZgYHj5B/YWsThfWBeqJlcfnDRBIl3Hj367xDO53WadWJsGzg27C2h3V9CMdDgqNnwH0ieM8f6mS9wVCGydrVzmJ5uGoOIVKJQJQ5nI5DKXJgNxxd1DURFMNe/qXC5nkPaHi8H3zM/Yn1nMrXFW1C8endPAsrCIQrOxEslc76JN9/FoSlGxiO72WqUJS0qyl3HK7S2Jta7c9EU4ygqnwcp14xjEzjSFk8JNkIOu+H0VGNCtUqH762IlWHaFpV8dsexiVC80m8g1GAy4wd748QNOnV409i3eWyFmdESbYmrM43J0YIftKmS4wqcL1/xK83xSx2ke+AF9jydNpP/rht89B1xwx/SPWvZiLotvy5mvIkcaDjluW2dKV4H8mLukkeRMfb2bM3Dic0qWXdrmE8KJapEshLHqJ+cv+8qBJk19pTLCY+NTKQwHIfrauBGJKqUUCVGzypBdhZKRFhEXOQ8UJmODeOPlJUfKDoCrHKg5j4/rgOFK3rza17xJhbs5Q6ris1+viMZN8WhKlGfeNCUeE4ht/vaOCHwrSVY2ubWvergJ1T0gLBpHR3ODKXtHq5JKAAV2Vrfcr4quY7YPMCwvDgVHrvue7/6 eHu5SYn8 GDIgVnbjlrEp5U7tX0KXkvjP5b1ULdVBl4BnCSRJzzeVAiCQ3ZUbKzTur946K3D/5uAse3rFrJMeEn/BJEzrWUbVtkjtYvAZ9vLwoOHQ+XODnSs2F71N2VXFbG/YvpJIwrtpQ2dXxtMbdr8rrmEd77log7k1Wj244dsMjbIiQn9chdYrlSstBqVuGAQPBM6uRG1O3TCLo1qPSloUnjRfo6eqLQzHoRGhD7NDTlLIjZ6n+4THV6bInYlQxfSeN/OjmvkeJ+K7I/XdXRnXUkSYrhb6l9MSPEmpB66QM4gbxC9+O9pZ+IF+Ylsyg4ajHEsgIDCw8vUIJgms4b00= 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, Jun 3, 2025 at 7:53=E2=80=AFPM Byungchul Park wr= ote: > > To eliminate the use of struct page in page pool, the page pool code > should use netmem descriptor and APIs instead. > > As part of the work, introduce netmem alloc APIs allowing the code to > use them rather than the existing APIs for struct page. > > Signed-off-by: Byungchul Park > --- > net/core/netmem_priv.h | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/net/core/netmem_priv.h b/net/core/netmem_priv.h > index cd95394399b4..32e390908bb2 100644 > --- a/net/core/netmem_priv.h > +++ b/net/core/netmem_priv.h > @@ -59,4 +59,18 @@ static inline void netmem_set_dma_index(netmem_ref net= mem, > magic =3D netmem_get_pp_magic(netmem) | (id << PP_DMA_INDEX_SHIFT= ); > __netmem_clear_lsb(netmem)->pp_magic =3D magic; > } > + > +static inline netmem_ref alloc_netmems_node(int nid, gfp_t gfp_mask, > + unsigned int order) > +{ > + return page_to_netmem(alloc_pages_node(nid, gfp_mask, order)); > +} > + > +static inline unsigned long alloc_netmems_bulk_node(gfp_t gfp, int nid, > + unsigned long nr_netm= ems, > + netmem_ref *netmem_ar= ray) > +{ > + return alloc_pages_bulk_node(gfp, nid, nr_netmems, > + (struct page **)netmem_array); > +} Note: if you want these allocations to be reported in a separate line inside /proc/allocinfo you need to use alloc_hooks() like this: static inline unsigned long alloc_netmems_bulk_node_noprof(gfp_t gfp, int n= id, unsigned long nr_netmems= , netmem_ref *netmem_array= ) { return alloc_pages_bulk_node_noprof((gfp, nid, nr_netmems, (struct page **)netmem_array); } #define alloc_netmems_bulk_node(...) \ alloc_hooks(alloc_netmems_bulk_node_noprof(__VA_ARGS__)) > #endif > -- > 2.17.1 >