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 B3B6BC5AD49 for ; Fri, 30 May 2025 17:50:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2CE6E6B018F; Fri, 30 May 2025 13:50:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2A5AE6B0190; Fri, 30 May 2025 13:50:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1E81C6B0191; Fri, 30 May 2025 13:50:39 -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 00EEC6B018F for ; Fri, 30 May 2025 13:50:38 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 973B2C10AB for ; Fri, 30 May 2025 17:50:38 +0000 (UTC) X-FDA: 83500314156.23.DA000F5 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by imf12.hostedemail.com (Postfix) with ESMTP id AEEC340003 for ; Fri, 30 May 2025 17:50:36 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DN5FfheM; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=almasrymina@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748627436; 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=LZxelI4d4NvZ/TF/J+tAC98NjF7+jArlYHEM3kySd7Y=; b=E0SDwX2EN62UYKaaFXAo9rVbUVoAT5IPdwoyq+tPzX2SvHaQTn/XzzhGu9TK1AmWu/ExFF ImuquYiI+XPTZdWreS16FEr7vOJLJnurDXiVmjjlVnwfYlJNAOobEg94QL4BE6dziJplYn dA+NkOAjoqmHHlewi9xJuTD7btqDFJs= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DN5FfheM; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=almasrymina@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748627436; a=rsa-sha256; cv=none; b=2tU3U9zDzUtQojRTIz1886lBGVCRAj1ajVYMoDoKGoDuq2Qf3JmYOPGToS/yICDEL/F5GU xDDxCxNuxZ/INXDBhDFW38IgCk0NFDoU75+CCUg3uDl7hSnsUYu10j2koylEe5O2x7CR9w fuQaUb6Gx52DKtNpPmh143yjMi/hGq4= Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2348ac8e0b4so16805ad.1 for ; Fri, 30 May 2025 10:50:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1748627435; x=1749232235; 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=LZxelI4d4NvZ/TF/J+tAC98NjF7+jArlYHEM3kySd7Y=; b=DN5FfheMlirzl58NU8RY8vM828uZ7CQZHsw34xi2DQh2XrJjBXLdiJR+EDx49h03iM HUBVcNAdU16qkEnirFjsPRQpvl7JNQCovfhofABzU+M+WmDxVCucZv2Z8oOxknMUnKV+ tNTHT3hj1z8JbNQcAQ3QX3mnBHGisk1eKNpZqNgOjgeMYpqyknLDI7hko5gF3ajsBqAh /JXFtVV6K1QuVvg4PEXaOJaGusiNygM9pKD+ZbNnvYkMwG2xT4suKI2xvnFNmZh09qMf MSBKaoGYA0wMV5Rz7oKYi27llbO4vS7s7jS0D9E2lWeIiF+C62q1hq7unwzJEia3Jxgo nJ9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748627435; x=1749232235; 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=LZxelI4d4NvZ/TF/J+tAC98NjF7+jArlYHEM3kySd7Y=; b=eteLb62Zmjhg8SRXcZyl85fAmPv2CN9REnXm7ghem6y7x+fRmJonQ0n/zcJovvEeAt SAKhel1wU8CU7reg7EnMM8uw/8C/yHu4IXNrpoBRWpK2mmN+P45VXeRxHdl8jgeJXUSW PL4i55pK4cPUvNybRUxMWhb1df8+L4uHkcPZ+ycTbysZZkdZHXai5EqAfFmEjIROH8Ql 6fnubdd0OouMi8hfYE+hcQaG9pWSZdXMXwlL6jIpQHowmZzVavaDw4bi6d8cmTD1zhLm J5bgkcdHmD9Nm4201J5oV48oZhMegEbAyieVf1bzSJWGubELF2cbpsswujunLNGJJGyd noMg== X-Forwarded-Encrypted: i=1; AJvYcCWzSK33DJkpW5yk0lFPX+LOVh0VSspJ9sCYCfAYPthM1gyFjFN5azbrd3LnNYbn7cFq5MFMq+TOLQ==@kvack.org X-Gm-Message-State: AOJu0YyoIS/kCDQxQkvs5bstwIyUtZX5psa5sZqSaeuReZ0fCBMHZM7J gtMrMKf0T5eb+0ppQK3DApxAv3SoHLD/nSMtSju345jCDonG4R5NVto98X3HxhZCg/BFhpWMSk8 evIbl1RW2VZGZ+NSnvztlIPfAzpmNuc7x/LkwvjhJ X-Gm-Gg: ASbGncuTpoj6S4/EprgrpRp4KyLeEsnVJkSTYbkd8G+XLGP339ouJP89BJnl5Kv7AtD rU0fRYk6LZhpKEYSeK8SrKnqw7xFdTjmaILBmIwQRz0DtMJnzHs7dn2E/J3sK+Q29jLE1fHW7S4 yMLM6eDkpgaup0ExzmuMwn6TNbgaxOccUZTjM+xidFVRbjmp+wtmoAUYHDRnC33PUnShwczq/w4 g== X-Google-Smtp-Source: AGHT+IF/dpJ3V6p0xr1UkmFfbIzfoRNakFfjWEsSzdnU9K0wExcotWGzZLbWs+c4kGKxup4uLNw2Dwpv5BnHj6UuyNs= X-Received: by 2002:a17:902:ecd2:b0:231:eedd:de3a with SMTP id d9443c01a7336-2353220f83emr3003775ad.25.1748627435241; Fri, 30 May 2025 10:50:35 -0700 (PDT) MIME-Version: 1.0 References: <20250529031047.7587-1-byungchul@sk.com> <20250529031047.7587-2-byungchul@sk.com> <20250530011002.GA3093@system.software.com> In-Reply-To: <20250530011002.GA3093@system.software.com> From: Mina Almasry Date: Fri, 30 May 2025 10:50:22 -0700 X-Gm-Features: AX0GCFvslPZ_UC7JzYeAi_Zy_ofVmEwzK1hvI1l778wh4YYuE9pFk1RpuJvt08A Message-ID: Subject: Re: [RFC v3 01/18] netmem: introduce struct netmem_desc mirroring struct page 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, 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, surenb@google.com, 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-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: AEEC340003 X-Stat-Signature: omgjco6a91ayfu6opj1a4miqpioubs7h X-Rspam-User: X-HE-Tag: 1748627436-260318 X-HE-Meta: U2FsdGVkX1958lAKKGPwbRUwvQdq3XX69jXq2hx5U66W2eLEHM8r1cCseyz8kOZ8H6y4lAPwWWnHrny0ScGnKmMAHkk5Wbdu3AnZuoIrWSbXj/ZreighOf1U7AoDLu7DSRWjpUjsKYq9PJyulvZZ/Yy/Am95g+vMRiV8VClMkhzMx2MAPQrwGwYWwlRv53wJIYsRLYrLhtaiXjnYGyUba+34MhpE9Oe+7gtIJG2YmUoU7A3LkZNHjs8LcOTkVv6WwHSoffi1xLHmZgPUPdKbhfGAgmsLt4MDQqVu8YLMHMhkeJY+3FQjjLB+KfSC08Rd/llezE6LHDZbheZ1cKAtRFR7XXfPBO8zQ8VWZqLeK/2E1h7DvrUBRhn3jTsp6NRlKn6gcaq2NrzP5kTWYpXqKxFrNPPa951rPHX0w/aJ/Sw1UA4AxHjC59mkEJ9fjiaYpkRKx0fzUVzQ/y/V6L4qBDiVbVmtU/MEYim114uD/UseE062P6k8msjW6PZsuRocPYnmXGuRmMaGFdumm5wBwMpUu8upS5QravT/vLOHt/AhsqWm34RRL1ZPYBssXQ+/Kz2cxjC8lvu/3wZ9DFUYcSt+zS31KDr7BwezkSA4uM25HQkiPABg/OMNltYcfJAKdGV0XbuoHzDE6hYeSdov4woL/3a0ZiHN97KSrID1hUosIYjS8dSPm5CHityBJIoW/x9/ArHajaU2oT82k/ZgYUiIa3jOSNltk+m8+f88bTzB2JEugmD5zkLUXgWJlAc9XKK1LiBhcGAs0Flgb0F1nJJHNugbd7AfNuJDoRu+FRszk9bzwjaSlAAGAVgSQGUy5XTxX5eIUnYdLIljTc6lcvdekU4ZrvAUgRogHibT3xkL2gNob6UlRgJPfzoMcKC+JttOBPzWe9hBZlcRmVsrdd25SaskydjlVdAokCmgw7TpUyUAuOxSBOfHpdpMe61Us/uRYP51xGqlUklJ3Sw mQ+Lrqm4 F6Aj/CK08ZX4RWMVvpjHlGpSrNHwJS4Y/wjvbAOktVz9V+VycHax/6aOomx/aLO1MXwz2y11G/06H2KPxWLnhJT5gpNhgrA2GQi4pTEGf1uogfleyBFuKBtMqtFoNcVFSLr0KXbmm/Ld+j/+FQW6LWaNqIcUXz9OkrCP7V1h1hLHwgP9ymdoiXYTjw3qK8Wg+8vVdQpFcWNIltoN2wrBBjAG6iUfpgW3FpIO7yrKGXbm7Yj09CuOWGkkcFLzm5grdetiIfw+KUDPqZGj72RRSetvjA9A8JLkNdBjcb0BmCesOOJFBqFormDnSEagcxyb+CofCSrmJXCL61rRXtjUrttT1EQ0jYUO4EYyZaOlzjVDtiIdFASoAqrT3qDwfR5IHTxBi 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 Thu, May 29, 2025 at 6:10=E2=80=AFPM Byungchul Park w= rote: > > On Thu, May 29, 2025 at 09:31:40AM -0700, Mina Almasry wrote: > > On Wed, May 28, 2025 at 8:11=E2=80=AFPM Byungchul Park wrote: > > > struct net_iov { > > > - enum net_iov_type type; > > > - unsigned long pp_magic; > > > - struct page_pool *pp; > > > - struct net_iov_area *owner; > > > - unsigned long dma_addr; > > > - atomic_long_t pp_ref_count; > > > + union { > > > + struct netmem_desc desc; > > > + > > > + /* XXX: The following part should be removed once all > > > + * the references to them are converted so as to be > > > + * accessed via netmem_desc e.g. niov->desc.pp instea= d > > > + * of niov->pp. > > > + * > > > + * Plus, once struct netmem_desc has it own instance > > > + * from slab, network's fields of the following can b= e > > > + * moved out of struct netmem_desc like: > > > + * > > > + * struct net_iov { > > > + * struct netmem_desc desc; > > > + * struct net_iov_area *owner; > > > + * ... > > > + * }; > > > + */ > > > > We do not need to wait until netmem_desc has its own instance from > > slab to move the net_iov-specific fields out of netmem_desc. We can do > > that now, because there are no size restrictions on net_iov. > > Got it. Thanks for explanation. > > > So, I recommend change this to: > > > > struct net_iov { > > /* Union for anonymous aliasing: */ > > union { > > struct netmem_desc desc; > > struct { > > unsigned long _flags; > > unsigned long pp_magic; > > struct page_pool *pp; > > unsigned long _pp_mapping_pad; > > unsigned long dma_addr; > > atomic_long_t pp_ref_count; > > }; > > struct net_iov_area *owner; > > enum net_iov_type type; > > }; > > Do you mean? > > struct net_iov { > /* Union for anonymous aliasing: */ > union { > struct netmem_desc desc; > struct { > unsigned long _flags; > unsigned long pp_magic; > struct page_pool *pp; > unsigned long _pp_mapping_pad; > unsigned long dma_addr; > atomic_long_t pp_ref_count; > }; > }; > struct net_iov_area *owner; > enum net_iov_type type; > }; > > Right? If so, I will. > Yes, sounds good. Also, maybe having a union with the same fields for anonymous aliasing can be error prone if someone updates netmem_desc and forgets to update the mirror in struct net_iov. If you can think of a way to deal with that, great, if not lets maybe put a comment on top of struct netmem_desc: /* Do not update the fields in netmem_desc without also updating the anonymous aliasing union in struct net_iov */. Or something like that. --=20 Thanks, Mina