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 2795AC83F10 for ; Sat, 12 Jul 2025 14:21:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E4496B00BE; Sat, 12 Jul 2025 10:21:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9BC176B00C4; Sat, 12 Jul 2025 10:21:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8D2476B00C6; Sat, 12 Jul 2025 10:21:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7A5866B00BE for ; Sat, 12 Jul 2025 10:21:06 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id E593D80219 for ; Sat, 12 Jul 2025 14:21:05 +0000 (UTC) X-FDA: 83655824490.25.0B48BC2 Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by imf06.hostedemail.com (Postfix) with ESMTP id E2DD218000E for ; Sat, 12 Jul 2025 14:21:03 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SMfHncAM; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.218.47 as permitted sender) smtp.mailfrom=asml.silence@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752330064; a=rsa-sha256; cv=none; b=myZOM0AxMWWQL0UjMhtej59qWnWhyTfIhZNjUjhQa0Kx73sj6yTrlns0EkNcRWQLjU83Pl t4xBqXEHgUlFQYJbI+j30Tvt19ioHZA27JczUSz89aOKKgLgrmqyFi6G0W3Od9V0joV2cG YgfBrKgCo5ea9R2yuo4kU4/ZmjUj+Io= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SMfHncAM; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of asml.silence@gmail.com designates 209.85.218.47 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=1752330064; 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=BwthC4DCRHqmcbQJTGVY9IQZfs3Qx6vlckt2VSx6Buk=; b=ckSEeF1xc4swg6SOT6nuOJ/Yyz96fjwEfu2q4JbXZZ1dl/qGW5sKw5wkdoxM2S2u88mNO+ rbroT6v+dHxpQj4gaSjN6MyhyQ5yvQEzJrizELBkHSimPR25yVDBxCz/3dksSC//hqUIOi OPJobLkoc49jkHXWoBVHYlSAlQ5xk5s= Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-ae0de1c378fso477741866b.3 for ; Sat, 12 Jul 2025 07:21:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752330062; x=1752934862; 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=BwthC4DCRHqmcbQJTGVY9IQZfs3Qx6vlckt2VSx6Buk=; b=SMfHncAMxekZ1FBKR0+DXvfYSAXP1p7+pW/cyScxNjt2mm7bVgCSzuW5GOI9pkoZoS ColhXbRspsLC6DqkGDd2uhv4khCcxfKVkDuJRAAKjGV3E1SyvQuXnsn55GftGUrSsXQ+ 60xv6fASCHsLTj5rj9LNyzx2r+rgd/aQhWdawP2M2PglIVCsHiXCYxY0ihZfT+iXASga qGmgZsVDDah1YwCJ+/UOjUPaW9npFd4Qtdleg8iCvbnfTrFs7cTw8D/lSpdkA+N5ystl ClpZ39T1XBb+6NkTpEGPj2XTVlTDQJdrfp3dcOkUNNP4Y83DNJBNfmblxGeAhBp990bv N+Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752330062; x=1752934862; 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=BwthC4DCRHqmcbQJTGVY9IQZfs3Qx6vlckt2VSx6Buk=; b=ZYF4MEX785akTe9mOmhqqAZmB0WaHQ8kp7jvC/vWr57ZQfWGhJaM4X473trZbTibUv cFF6cC6l9/4NWMdaIPCR7/L902+QOGxfSWDIpkEK5STr9bnQdiWEHj+z2MUIpasUlAic 9rIdqqxf0Ot45fLtoir0BXl9azfsYTfSXsI/+I4JjD6SSvvYmnAAKhz+xGTv0GjKXaXE 7lJIUkpMf/X1eNBg5GBRZPVaaiD5A/vDwEQ38dIdfekkf/penwTXj72dJ9QDtlRI6Eqb uAbrxmLWFNxIN2Z1YPt1EkO87m66Q/dAYuqycyfKzCkPW34+Pav/gQhaF0NwyMHK6Vzk ugbQ== X-Forwarded-Encrypted: i=1; AJvYcCUIqbLwEAGSQ6F4338pUwMRNp43blmRfrWUJ78KY4DARS1LHtpkSi5da2PD6j+FFHCvBMt40Lc+9g==@kvack.org X-Gm-Message-State: AOJu0YygQ/UMLf6jCczA07cniRAc21CTjpyAzUtCCxKEFwTrps0RwONN d4puzzKFtZbtGktsc1bbwjygdL9/ootAsj4R0dtD1PUlStVPufPWoyOD X-Gm-Gg: ASbGncuoJMojbAXTGPRRiDyETBef39qvesj8eT+ls0uieKsN+bg3bg0tBvF8R1H5KWR hxlVLj7Hs2//F/QekluS9pe9Cf2iuY3HIR01VUdD7mgFha08Ny7VEwtJ7bwbD7RMeS3WV/Z65OT OKt7rFHtQ9iKWJjyAQZeJa25AJ3ZlU/M+Zg6HNnsgrgKacMhD9+cVTca8/hi9WwsVUfH/sy/qwR TIZxZFh2Ra4Z3A+kIiDTKTlLzIX85bl/owxNMg1aGu+k1670SyjMKzrG4kHNQKyt4tYGXq5R/U9 5EAiEosoze0OxuuK7xFjbntihAtY3FGp0lbP7TDvJIBdXr1LSb4Nvxh+WFpil/rJ32vMcrx0leJ /h/v54tXPG+XMlCqgcdZpA01SYgFNN8taCRY= X-Google-Smtp-Source: AGHT+IHbC/0Ser4Z6s4ZYpIrEyyuEbBFkHDfb9uN6SgKFey4bLNkJuh1kQ6Ba8KoZ3nNXGHp32sU/Q== X-Received: by 2002:a17:906:c10b:b0:ad2:425c:27ce with SMTP id a640c23a62f3a-ae6fbc11865mr730397766b.2.1752330061920; Sat, 12 Jul 2025 07:21:01 -0700 (PDT) Received: from ?IPV6:2620:10d:c096:325::1ac? ([2620:10d:c092:600::1:b2ad]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ae6e8294bf2sm485250166b.122.2025.07.12.07.20.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 12 Jul 2025 07:21:01 -0700 (PDT) Message-ID: Date: Sat, 12 Jul 2025 15:22:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next v9 8/8] mt76: use netmem descriptor and APIs for page pool To: Byungchul Park , willy@infradead.org, netdev@vger.kernel.org Cc: 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, 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-9-byungchul@sk.com> Content-Language: en-US From: Pavel Begunkov In-Reply-To: <20250710082807.27402-9-byungchul@sk.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: E2DD218000E X-Stat-Signature: yeoemt85des3xiegbwb8asdxmojaxpsa X-Rspam-User: X-HE-Tag: 1752330063-72691 X-HE-Meta: U2FsdGVkX19V1vuCBIjLrSTsDiFKU2Bu/k7vIL64xvjZsdZzXTPXIj7PPhNhdfHNyG6reHu354K+o+Wyr5rSWhSkigRxOV4ly81H3eIfYiizY5L/MgWx2CmEBQX0c3MFbyD1xnRmQl69mQUQWzdvCLRHugnM9PzX3d9PXq8xL4G/E6Via9hstdn/Gn9UQQb0DkXFHFgN1+QyiSzz2sA+48S1QnBhkqfoKBkoZP2Co0093logep4Hrg/yzs8B6+xIA3hn9CYOC0m2O2ySdpjWXJW3ozqnPChMB1m0D8BSEmPDN30WAFyDU3kPIK7P6pEY6GMQ+Ac7Wy9Ibra6mCKyGJK6//Su3BRlbVCIK2ExserLZZz/mV3A7+t/9j2ZUue+RCI1K4QGMet/gAbxZ61xRPjQ8Kg2eE0JSccg+pWkIV5iq8keFQsPWGVFobJs1t6zGrFDiVg8DVLpKT6oM/oVqjmOOnahBrQe+sMvVAzqzbQx6eko8imNPZ6SBhfy660JjSvvdfFMTmBbUMN7eqA+9DO4sPsZT+EFqOE39ZfhVJiw3FZaKnnB4UHCQpNWbBJujLb6f5d/23pp7BOyTM7CjJHEbs0yHdmeeOC2nMHa6xDB+fqGk6H8J1L0b6kWF/gbvwJcvZ3kbzJOS+gKkuBhWhrQo24oSifNVAxvx6QS0ZnJOH6mYUMw3jjUlm3gYyUyJJPIZlOy7ID22DNPV61dazUlcXM04uYBhoJ9WQeVMVYjd1S6Qz494Q1tGTuupdEFPHhk2wTsAHzo8FJRGJC0E0YK7z1ARS4deR7LuLNsbXL/5tMHNf3ey2BzczgI5lDiJJXJVifWqlLdB/sirS5Y8xmgho9moMwmAQEwAdgJw3EKTd5oy5xnXN+X4k9zB5p/NRKer+4uuyvlhfidKJRDX6oPryDIdaqiWeq1FhlYHZaqwl0fHp9f0QSnMWUCtDz9YDWF8GHaD/I7P3MzlX3 LqPSb6hh GQJxR7Gbd95O3E+IBKY4xrI6tdAu3ikAR6bYKI4E6ahzDchAZRbvDlRAdV1cNir9XBBXX/HJWpmGEjCk2MG6mL8gE4D9PL78q89Jj4HHCUFJPgLpdxLXKCaToDQyjU7+ruk4Lvc/tJlPDog+ZGM9JKN2/HE7+m64dl4EV+bfd3U0rPFIXiulg2agNKzheRSWQa2z27KfqFjjgZvVMDNttSLovLQGREpU0iBprrORZHcwExARmEd5sVtLL15e4sdV03OH559rYFQB8jTyTUosQMFRvfgZIRpsgYSst3+A5v0Ovi7wXkf3vziTyAVAyAjp14SCD5u55S12L/uJNS/JOv3afrtKtiznQqvuuuS1iTCJhc4oHjUU+w/M9xu/ZIV3i2f91EM4UQ2IawiftEy4UofE9Y/sok8vaOsaFr9nR3F0CXcFJR/bP+Tc3BON411SK6bi0ydh4bGpwXTyw2gEBRaeRzPJernCpzf4ZfpHnZqgrgesAHh6RMmmL85loqglYTIecmGtl7Y4/AAs1oC15O3pHyA/6Qm/EXm8BCBCY7vemW5c6Tw1ezrArMcWyGXvzjEC7NkqVLmnahJRoMID1B7EVdTRkEcBVtJaU2zvwuKV9gNta6rCeIYrrZBvKFtd2TMqv 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/10/25 09:28, Byungchul Park wrote: > To simplify struct page, the effort to separate its own descriptor from > 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 > Reviewed-by: Mina Almasry > --- ...> static inline void mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked) > diff --git a/drivers/net/wireless/mediatek/mt76/sdio_txrx.c b/drivers/net/wireless/mediatek/mt76/sdio_txrx.c > index 0a927a7313a6..b1d89b6f663d 100644 > --- a/drivers/net/wireless/mediatek/mt76/sdio_txrx.c > +++ b/drivers/net/wireless/mediatek/mt76/sdio_txrx.c > @@ -68,14 +68,14 @@ mt76s_build_rx_skb(void *data, int data_len, int buf_len) > > skb_put_data(skb, data, len); > if (data_len > len) { > - struct page *page; > + netmem_ref netmem; > > data += len; > - page = virt_to_head_page(data); > - skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, > - page, data - page_address(page), > - data_len - len, buf_len); > - get_page(page); > + netmem = virt_to_head_netmem(data); > + skb_add_rx_frag_netmem(skb, skb_shinfo(skb)->nr_frags, > + netmem, data - netmem_address(netmem), > + data_len - len, buf_len); > + get_netmem(netmem); > } > > return skb; > @@ -88,7 +88,7 @@ mt76s_rx_run_queue(struct mt76_dev *dev, enum mt76_rxq_id qid, > struct mt76_queue *q = &dev->q_rx[qid]; > struct mt76_sdio *sdio = &dev->sdio; > int len = 0, err, i; > - struct page *page; > + netmem_ref netmem; > u8 *buf, *end; > > for (i = 0; i < intr->rx.num[qid]; i++) > @@ -100,11 +100,11 @@ mt76s_rx_run_queue(struct mt76_dev *dev, enum mt76_rxq_id qid, > if (len > sdio->func->cur_blksize) > len = roundup(len, sdio->func->cur_blksize); > > - page = __dev_alloc_pages(GFP_KERNEL, get_order(len)); > - if (!page) > + netmem = page_to_netmem(__dev_alloc_pages(GFP_KERNEL, get_order(len))); > + if (!netmem) > return -ENOMEM; > > - buf = page_address(page); > + buf = netmem_address(netmem); We shouldn't just blindly convert everything to netmem just for the purpose of creating a type casting hell. It's allocating a page, and continues to use it as a page, e.g. netmem_address() will fail otherwise. So just leave it to be a page, and convert it to netmem and the very last moment when the api expects a netmem. There are likely many chunks like that. > > sdio_claim_host(sdio->func); > err = sdio_readsb(sdio->func, buf, MCR_WRDR(qid), len); > @@ -112,7 +112,7 @@ mt76s_rx_run_queue(struct mt76_dev *dev, enum mt76_rxq_id qid, > > if (err < 0) { > dev_err(dev->dev, "sdio read data failed:%d\n", err); > - put_page(page); > + put_netmem(netmem); > return err; > } > > @@ -140,7 +140,7 @@ mt76s_rx_run_queue(struct mt76_dev *dev, enum mt76_rxq_id qid, > } > buf += round_up(len + 4, 4); > } > - put_page(page); > + put_netmem(netmem); > > spin_lock_bh(&q->lock); > q->head = (q->head + i) % q->ndesc; -- Pavel Begunkov