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 71717C5AD49 for ; Wed, 28 May 2025 16:59:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AA8D56B0083; Wed, 28 May 2025 12:59:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A598A6B0088; Wed, 28 May 2025 12:59:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 970906B0089; Wed, 28 May 2025 12:59:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 778A56B0083 for ; Wed, 28 May 2025 12:59:31 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id EDC9B5DDE6 for ; Wed, 28 May 2025 16:59:30 +0000 (UTC) X-FDA: 83492927700.23.1808114 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by imf06.hostedemail.com (Postfix) with ESMTP id 152E0180006 for ; Wed, 28 May 2025 16:59:28 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GgzKzHTL; spf=pass (imf06.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=almasrymina@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=1748451569; 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=AU+5V0D50sosAbJkKDzKL3jVUZ5FjJivIDtXJcMadFo=; b=AhUDUz3n2+EKSsMgT0Qv5yxJjqtpwknDcX/iWA7mWoa2VKh0RUMtVoJg6sCWwxDR+0rwje wdd701tqHPHcTtRbNPjqNZF9WIPmPv+5RLymZSddtsA7h7iAmywkG4QDpnfvHJzn4WEcfO PW38qJcg+OnGNjq+CqN8ixMOYd7/0MI= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=GgzKzHTL; spf=pass (imf06.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.174 as permitted sender) smtp.mailfrom=almasrymina@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748451569; a=rsa-sha256; cv=none; b=7mivag+0G1RC6dtuWCh6kmkuEuWB3u/PH43ktwhcZ7whEuF530s3kRWA8XaqDU4q7drZDx p1h74GZVPUmipNNw8a/yEIQspdMoc6aqX/tmXUX7K2qgDFMzTG0+f+bpYNTSqlPDKfsJxP gAE9cQL+6EQteBFTeEfIfcYYrPjBtlM= Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2348ac8e0b4so1655ad.1 for ; Wed, 28 May 2025 09:59:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1748451568; x=1749056368; 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=AU+5V0D50sosAbJkKDzKL3jVUZ5FjJivIDtXJcMadFo=; b=GgzKzHTLiaU1IhCoY0dTEyJ+BJqVNW0HoJB3QsyK7xU0hkkrv/EjcUM5/QNAjpwW2+ nUlov20fZXbV0hNkpFgErljiG8hThB2vkHXojCu3blfr9/WrvYETM9z/pvZIVqh3MSpq 4IZiPIXTOAWcyd8ZxJYjAEpUEhtjbKqcHPeVUZVI2X68imXVDK0zDJl/R54MqGjVsBuj s153SlB1LGiw+GUww72q2qcSiwSloLDlkq9eLYOATPBYjzY8Pl/csVegXEQm2n9txPHf 9eEdbAT0xSo/eny8zq9M0r/roc0nezenE+KOYg7ka+bWlU/ziAu+dri2nL/lSKV2rNpB u0WA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748451568; x=1749056368; 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=AU+5V0D50sosAbJkKDzKL3jVUZ5FjJivIDtXJcMadFo=; b=q77hPy7Let6eEXaxpSfPmRI+oa2XsIM4Wb1C59YRAoKxlOzgmZMdD3SoxvG8GrTpSB yS5wicaCS6uoTagdwUQN1L9/Sa7+kv6tdN/iaLEhZBWKAxGMVnLGMNhJOyWuiu9Vz76+ HI8QILdbQ5hts2yXmgEAPhXxfg+OPwjFlqr1uc5cM4zRcvGCHYlWgnfKdcvINwChn2RO hgX3PmzYqo2GtoY+rLugMvkQr2/+lCzmr6a1+bSAFZo6c0Kp2frUSgbHFNG/Pu9dDh0r bflV0mfsZy/tlvL7IkSh0E+Rham5BTQe24wKI0j5eqtu0T1clFjySoFkNwT+MnGlBnmS cX1Q== X-Forwarded-Encrypted: i=1; AJvYcCWauxouqiqTpry21pSNAfiqH0DWCOVWZrH5J+FjVa4/toyDv9wVscacczuvY0yaiFGDt/Et3Za/Ag==@kvack.org X-Gm-Message-State: AOJu0Yz+r9d4aDIvNcFc9b31OcSy0QuKNJWW2IUp1jVo+gu89LOGXHFb 3ezCy+hXQpOCbfy74gg+jydw9h+LulYlATxPfDLDP0a5xf6jrZ1D9wgNlbXejRDCc6kAZGfgnsF 1xDlpctcJM3WVhXMbtkAQQscTIPFh78odnBF9T4FN X-Gm-Gg: ASbGncsrU4gvVEOFpeefDUO4+FCK8VR988nHeYkd0C6rjoC76uAMWbGMeI79UMT9BSi P5RS81VtI1DBcci31dI4tdv2LMrYnvUcqBKbeK7JL+haZ2KYn0eUykpQ36KnwxOU3xcMKVy/R/V hqozMurjj/Z+GEy/ouESbhlvu8shFj7P4Qjk1zzkC3mFG/WkUz8riBSOTp8B1rHYRObNi6sxeLa xFCq18UeAdY X-Google-Smtp-Source: AGHT+IGH9FRqbmLXCu8WFJb6dVN46h/TnBW/MP1T5WeV0m8oyOEBp/rxcLIB9unWYsuTueREphw7MK8d9rPrgIGIBnE= X-Received: by 2002:a17:903:1b63:b0:21f:2ded:bfc5 with SMTP id d9443c01a7336-234c55ab5aamr3548825ad.28.1748451567487; Wed, 28 May 2025 09:59:27 -0700 (PDT) MIME-Version: 1.0 References: <20250528022911.73453-1-byungchul@sk.com> <20250528022911.73453-17-byungchul@sk.com> <20250528060715.GE9346@system.software.com> <87v7plmbo9.fsf@toke.dk> In-Reply-To: <87v7plmbo9.fsf@toke.dk> From: Mina Almasry Date: Wed, 28 May 2025 09:59:14 -0700 X-Gm-Features: AX0GCFuxRFdaXnvFJo88yADv-joqzgj8xrel-S60sB-_CFIsIQuQGzHBPdDTD9k Message-ID: Subject: Re: [PATCH v2 16/16] mt76: use netmem descriptor and APIs for page pool To: =?UTF-8?B?VG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2Vu?= 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, asml.silence@gmail.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-Queue-Id: 152E0180006 X-Stat-Signature: wdrn3rz1uran8nr5tub571rdbrs4cjuo X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1748451568-910355 X-HE-Meta: U2FsdGVkX1+RNQ1ph+bki3OSJBWdHW64M97RG6r/31iEsIHwYoYS2szQMWRZPp/SQYYD154FHB7DMfOSDhKdQFS4IKuu6SDcWG2DwCR5cApO1pfp0TPJQjVG4FNeeicPoJU8ed66yLQt6Ibeg3Wb0Koh6pUfuX9+3jZWKLIVzVTDmuoQHjp5OHD55xPoj0dhkFGSnkpa/Nu1PwhGze3ZnE0v5vMPWu7l3DwNRayCIb/cbho/4GJnKBTqvkl64CTOWujjfTt09K6tLPh16Ts/n7lqwUwltGB1yMqVH1nniZRTbs8p0MhQeLPZs9P49TFnSEpbcKFNJ4A6+ja1OBei8pcIqxDavdVskdm4a4cFQbw1mI1GUVKppx2MJ2D+22B3EPhnNtCx8919Cz+QTRlvJEHmdlUTmtgk05SsWHkfdzlSXd7us2tQDxXGMAR575HBZPkospMJKDiT+Bu4BXKZ5wAJ7tzTA+yIKE7fXdSIdt4cFSd9CE0ukKOm6kkYDitAFzt8ier4VQT3JvUaiP2lp81XzcS8gmqrcsWn7QWaxbkfsAOGabW7DztOdyg3UuU6nFHZSUCVlK3AgWkfj8Xvf3QlqCJevnhR0Xb7hDGzpmUh3NHINsyyeLaoC1V5X4NvJY49czVyo6dSDA/zWl9mgJvq8BD5Qed5mv0Yw13qrYMNhBJYjgih0wFjg3eqTRwSwQnnPUhpl6Ej8Gt+5H3ocFBiNhHGGC7sJregLm4tL8a/jAgeFOm0re3scuW/JWNCa6cQOM7K0lx5Wc4VcEzwZl+s8lqaT/1EXy1yiKhvukHuOmk1M8ChEIQmwox/lLui47B4Bde32NMyUF6GtUeaQxC+byzf6idnlgubBZ4fh26J9epOgO5YoB1IoIeu2jVqGl9L+nMllD8gjruskXjLV3PfLRXmhS6XkZGzy4mqtW60FT/blW8Fdz9h82jQp845683dk+YUC7o81rCT+bX KliqWEjp DbJoTT/y3mbfwy+QYW6X5TmGwsJPhSX2t2QxliR00QQvA8m3I1sbnTIxJaqqNjkNhCy0upC9vv+K4T6uXBYsJ4ZJsNjY2a9jMSBJBAbpHrE6aKO7VEfpHXPcgAWshg/hiR+CFx4ulc7brxQXC12/BRBJerL9xHANE9/Y5RdeNNzJG3K7ANkDNYI1jIPiyG2ucDRXbxkzia/Q39xdHeKIOrQA9xxGC782BDGmHNV6cvFgf/ooVy4QvejYGQ4GaCkwsWC0kKmlZm9syOMnAXFyEUIrsme6kq7KguQPlCZddlTFsrPa9C7crPlyohjseDMQJmVqkhg1wwSFE3zhGLoManLSK28qAmzd9dGM5uZp4S6EB8PJJtayBoQEEshMGuaCf9Iyc 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 Wed, May 28, 2025 at 12:34=E2=80=AFAM Toke H=C3=B8iland-J=C3=B8rgensen <= toke@redhat.com> wrote: > > Byungchul Park writes: > > > On Wed, May 28, 2025 at 11:29:11AM +0900, Byungchul Park wrote: > >> To simplify struct page, the effort to separate its own descriptor fro= m > >> struct page is required and the work for page pool is on going. > >> > >> Use netmem descriptor and APIs for page pool in mt76 code. > >> > >> Signed-off-by: Byungchul Park > >> --- > >> drivers/net/wireless/mediatek/mt76/dma.c | 6 ++--- > >> drivers/net/wireless/mediatek/mt76/mt76.h | 12 +++++----- > >> .../net/wireless/mediatek/mt76/sdio_txrx.c | 24 +++++++++---------= - > >> drivers/net/wireless/mediatek/mt76/usb.c | 10 ++++---- > >> 4 files changed, 26 insertions(+), 26 deletions(-) > >> > >> diff --git a/drivers/net/wireless/mediatek/mt76/dma.c b/drivers/net/wi= reless/mediatek/mt76/dma.c > >> index 35b4ec91979e..cceff435ec4a 100644 > >> --- a/drivers/net/wireless/mediatek/mt76/dma.c > >> +++ b/drivers/net/wireless/mediatek/mt76/dma.c > >> @@ -820,10 +820,10 @@ mt76_add_fragment(struct mt76_dev *dev, struct m= t76_queue *q, void *data, > >> int nr_frags =3D shinfo->nr_frags; > >> > >> if (nr_frags < ARRAY_SIZE(shinfo->frags)) { > >> - struct page *page =3D virt_to_head_page(data); > >> - int offset =3D data - page_address(page) + q->buf_offset; > >> + netmem_ref netmem =3D netmem_compound_head(virt_to_netmem= (data)); > >> + int offset =3D data - netmem_address(netmem) + q->buf_off= set; > >> > >> - skb_add_rx_frag(skb, nr_frags, page, offset, len, q->buf_= size); > >> + skb_add_rx_frag_netmem(skb, nr_frags, netmem, offset, len= , q->buf_size); > >> } else { > >> mt76_put_page_pool_buf(data, allow_direct); > >> } > >> diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/w= ireless/mediatek/mt76/mt76.h > >> index 5f8d81cda6cd..f075c1816554 100644 > >> --- a/drivers/net/wireless/mediatek/mt76/mt76.h > >> +++ b/drivers/net/wireless/mediatek/mt76/mt76.h > >> @@ -1795,21 +1795,21 @@ int mt76_rx_token_consume(struct mt76_dev *dev= , void *ptr, > >> int mt76_create_page_pool(struct mt76_dev *dev, struct mt76_queue *q)= ; > >> static inline void mt76_put_page_pool_buf(void *buf, bool allow_direc= t) > >> { > >> - struct page *page =3D virt_to_head_page(buf); > >> + netmem_ref netmem =3D netmem_compound_head(virt_to_netmem(buf)); > >> > >> - page_pool_put_full_page(page->pp, page, allow_direct); > > > > To Mina, > > > > They touch ->pp field. That's why I thought they use page pool. Am I > > missing something? > > It does, since commit: 2f5c3c77fc9b ("wifi: mt76: switch to page_pool all= ocator") > I am very sorry, I was clearly hallucinating when I first looked at this. In my defence it was kinda late at night in my time zone :-D Since this driver supports page_pool, I think it's reasonable to convert it to netmem. It may not be intreseted in supporting devmem or io_uring zcrx but there may be more netmem features in the future and future proofing it sounds good to me. Reviewed-by: Mina Almasry (although I would like to see a virt_to_head_netmem helper FWIW). --=20 Thanks, Mina