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 E5C0BC46467 for ; Tue, 10 Jan 2023 09:47:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D10C8E0002; Tue, 10 Jan 2023 04:47:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5326A8E0001; Tue, 10 Jan 2023 04:47:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 385718E0002; Tue, 10 Jan 2023 04:47:08 -0500 (EST) 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 253C78E0001 for ; Tue, 10 Jan 2023 04:47:08 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id C8C14A0BFC for ; Tue, 10 Jan 2023 09:47:07 +0000 (UTC) X-FDA: 80338410894.28.57CD2B4 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by imf20.hostedemail.com (Postfix) with ESMTP id 10EA91C0013 for ; Tue, 10 Jan 2023 09:47:05 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=UmxTH+Ni; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf20.hostedemail.com: domain of ilias.apalodimas@linaro.org designates 209.85.218.44 as permitted sender) smtp.mailfrom=ilias.apalodimas@linaro.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673344026; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=lHERGX7BrEBZikVdtVo4/Ae6G/xz87siiQLUHU0CyFU=; b=QuCo+2bsflx0ceZYFfLv0AlHpTbDJLIU4oJolUc8MEWIiVDJzNV1ll0NKv9b94m1NDrixe 2n0Gs/LY+nNNedp4/uiRRSU1l1NTIkZdB5fMk4KKH64a4oLwonb/6L326hOEZzF+64UtPm fsWMgZhqV0tnrlCZWsxoBUiazUnKNqE= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=linaro.org header.s=google header.b=UmxTH+Ni; dmarc=pass (policy=none) header.from=linaro.org; spf=pass (imf20.hostedemail.com: domain of ilias.apalodimas@linaro.org designates 209.85.218.44 as permitted sender) smtp.mailfrom=ilias.apalodimas@linaro.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673344026; a=rsa-sha256; cv=none; b=G5Fmvlf0ZFvZJvcmuw9c5HLCoOm2rtA1SaZVTOV6qfn2RB8q41/MYnfprxWQ7Me1BJeo0q xYR+3QmVRqvs9Ta6D6DWfFb3lXmFH/9zIAI4+Hy28G1GDLpsKALb31cDHWI99PM1eT/KQP a+0iJpjTsFeAJUEDrNGLrrqfDKj0/8E= Received: by mail-ej1-f44.google.com with SMTP id hw16so15207108ejc.10 for ; Tue, 10 Jan 2023 01:47:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=lHERGX7BrEBZikVdtVo4/Ae6G/xz87siiQLUHU0CyFU=; b=UmxTH+Ni6Xl3kwtKXtwW4J/Ke0Ue7dA8lr9xZOQsi44PNOhFG34szHyYuoYlA6RLCr s3Ox8LMspPbqaZF9T5KgteNv3PmKNKpfhqLvX/KDGXbx7A9EfVjz+9WEjCNbbGe1mmPi 6zzzcD8ytUZgWLNE4Aokj8TFMHaGljgmv+xraaPHAwvKhPM891rBxFBiTjOejc8P0gbm f9aTIjAEDpLPrUOx3b6O9SNvJ+Yrpfyru9VXIqLuzm7K9OfHWn2TPBNa6wiGqiHcvkAj rj2csLMRPSG8/nmLN6g/lXsi7IG+9SlTyiHpyigXhPPlEjhNVLMS/LxTF+dxYMfOh07B T2sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lHERGX7BrEBZikVdtVo4/Ae6G/xz87siiQLUHU0CyFU=; b=0vXt5gs4U8IlnOzclvmcVYCuBJpJFOpuIVAlI0y07+NKh9KZSgcOL0ircRRFxumaTh iHFPtZFkdA4aGL5aEIq4RZ/UCD8iw523HcNiayOtqj5PDKQYv3kKPHvSH0UvzapHpriZ xgE5xEIiRdE+02NnFhKC4+fW3fpHom++hMr6Xrn33wAMaDfvqG84liEv3o203ypzzjYm KjdbAiW0pq634aZ8l0tRa+J6UgF8F18RDyFpfvPNhddlSMDNDDJsbZ2biQZGK8AJYyRG q7H7Ileymwh0SvCaA545+gP8DadCeGX+ijlz5RDD6s7ssEcceZeY/Dy9Ka92B1Qr64H1 CViw== X-Gm-Message-State: AFqh2kosETA8ddW26V6E35/fNj68hxvkpSuQfunET91QVAmGtQTRemMM rsygmHLRori/EShn7XAWaPZFow== X-Google-Smtp-Source: AMrXdXs5X4zufYlBBHo06avn75sPIvTtEUZo8PL036U/EHKUNnYtIL5lqkUSCbXosEnvuqtHFMPESQ== X-Received: by 2002:a17:907:6d98:b0:7c1:12b0:7d5d with SMTP id sb24-20020a1709076d9800b007c112b07d5dmr76045236ejc.4.1673344024622; Tue, 10 Jan 2023 01:47:04 -0800 (PST) Received: from hera (ppp079167090036.access.hol.gr. [79.167.90.36]) by smtp.gmail.com with ESMTPSA id k2-20020a170906970200b0073dbaeb50f6sm4649027ejx.169.2023.01.10.01.47.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Jan 2023 01:47:04 -0800 (PST) Date: Tue, 10 Jan 2023 11:47:02 +0200 From: Ilias Apalodimas To: "Matthew Wilcox (Oracle)" Cc: Jesper Dangaard Brouer , netdev@vger.kernel.org, linux-mm@kvack.org, Shakeel Butt Subject: Re: [PATCH v2 07/24] page_pool: Convert __page_pool_put_page() to __page_pool_put_netmem() Message-ID: References: <20230105214631.3939268-1-willy@infradead.org> <20230105214631.3939268-8-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230105214631.3939268-8-willy@infradead.org> X-Rspamd-Queue-Id: 10EA91C0013 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: c85roqm5jhggcoujmk7r6wtynrdwoyad X-HE-Tag: 1673344025-247771 X-HE-Meta: U2FsdGVkX1+QfAlKOAyIbX/6rqzTbmwH7gCzMeY9dT/dAOHady6pd9MlqpO2DpsYzcVmGKtfCcM+690QDwFhdP+kjp3Zhdqx866uD1MYzlC3EhwujCC24+lBW6H6r9rHu7JA6VHfk05UKfPXKcPBs9BSaoBiLsCQOKuCd23adBuban8m4Mu3Li1WODsbqG+F5R+xopqeFziv6Z2q2/ftBZ6AuFf22jpHT5t8NlYs9F6dHaX9FAKj4RFv4b+ZcTBEQpJb4p6dQ2pOdGkgW0jDoxqHzy47hUMKWgRt61eItUcUYVex051W4eSPzyyn/YEb/1Wg20WOj8UyNqTwzI2oJOtx9Ebhs9BR0Tuy3kwlXK2ZSDWykmtZm9UbujRzssEiHWGZoL7/tkJ0d53lnNjMrnFKbFoj+nDMEXXP4qZ9w3uq0c7mFoop2HkxIgxAORQhSUomTl78Qmv45qa0Sn1qZUti9NN5JQcDrzJ7BZQXX8LpXwiT0tOgxL/Cy7l+0Z23GxXHd5+JXur0x3M7NPiGpxzmwXiS6LiDihVKKp1nDXrsL2GIV9fBIQEWtd6Mt/yZkdqm6B/Wf3kxEWlcMukc7P34VhZpYrT6/uUlRh+kL2elzDjNpOCnri7NIVM2soDYL83TB7UwpqI9ojuk4Y78adjoqiske603QVwdn05H77llUZf7uDHC1yzCyYMiqXiEha3AjH837UH9Rq3syYmDStk5xz1q0NrxEaXjjVjwvbx+Eqf6Te3b3iiQ0KxbjKE2f1GbQogxMR9jEmN7DdcDRtS1h7SoqXwnrpe5E9eaYCsyCxIn815I1bSIeVE+lV4tGl7jCRu4CIdNCdv8SauLOJrBb2aduVoB3JnAxBQHCMz3OJbhL9/38YV74erZ7cqE73fsaYA78vkS02pnNlzro9MtOeFp9AfTNG6sC5OLfUYI2iNusUZ0edd0YZBdHmnA3wiJzJDWUIr++w0fm+e 7kz6ivAX HM0ABe8+hjR/0l2mPsVFQaouCdCkSk/sHUHB9TfGzzMbYdSFmpu0YP4sdXpy442+AQM0QtmBRjhRQtAodDVWjwEyOEiWSH1wfgw7oTNE8bQ/F7V0+INHfEm4ZUJy5jo7GktJj 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: On Thu, Jan 05, 2023 at 09:46:14PM +0000, Matthew Wilcox (Oracle) wrote: > Removes the call to compound_head() hidden in put_page() which > saves 169 bytes of kernel text as __page_pool_put_page() is > inlined twice. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > net/core/page_pool.c | 29 +++++++++++++++++++---------- > 1 file changed, 19 insertions(+), 10 deletions(-) > > diff --git a/net/core/page_pool.c b/net/core/page_pool.c > index b606952773a6..8f3f7cc5a2d5 100644 > --- a/net/core/page_pool.c > +++ b/net/core/page_pool.c > @@ -558,8 +558,8 @@ static bool page_pool_recycle_in_cache(struct page *page, > * If the page refcnt != 1, then the page will be returned to memory > * subsystem. > */ > -static __always_inline struct page * > -__page_pool_put_page(struct page_pool *pool, struct page *page, > +static __always_inline struct netmem * > +__page_pool_put_netmem(struct page_pool *pool, struct netmem *nmem, > unsigned int dma_sync_size, bool allow_direct) > { > /* This allocator is optimized for the XDP mode that uses > @@ -571,19 +571,20 @@ __page_pool_put_page(struct page_pool *pool, struct page *page, > * page is NOT reusable when allocated when system is under > * some pressure. (page_is_pfmemalloc) > */ > - if (likely(page_ref_count(page) == 1 && !page_is_pfmemalloc(page))) { > - /* Read barrier done in page_ref_count / READ_ONCE */ > + if (likely(netmem_ref_count(nmem) == 1 && > + !netmem_is_pfmemalloc(nmem))) { > + /* Read barrier done in netmem_ref_count / READ_ONCE */ > > if (pool->p.flags & PP_FLAG_DMA_SYNC_DEV) > - page_pool_dma_sync_for_device(pool, page, > + page_pool_dma_sync_for_device(pool, netmem_page(nmem), > dma_sync_size); > > if (allow_direct && in_serving_softirq() && > - page_pool_recycle_in_cache(page, pool)) > + page_pool_recycle_in_cache(netmem_page(nmem), pool)) > return NULL; > > /* Page found as candidate for recycling */ > - return page; > + return nmem; > } > /* Fallback/non-XDP mode: API user have elevated refcnt. > * > @@ -599,13 +600,21 @@ __page_pool_put_page(struct page_pool *pool, struct page *page, > * will be invoking put_page. > */ > recycle_stat_inc(pool, released_refcnt); > - /* Do not replace this with page_pool_return_page() */ > - page_pool_release_page(pool, page); > - put_page(page); > + /* Do not replace this with page_pool_return_netmem() */ > + page_pool_release_netmem(pool, nmem); > + netmem_put(nmem); > > return NULL; > } > > +static __always_inline struct page * > +__page_pool_put_page(struct page_pool *pool, struct page *page, > + unsigned int dma_sync_size, bool allow_direct) > +{ > + return netmem_page(__page_pool_put_netmem(pool, page_netmem(page), > + dma_sync_size, allow_direct)); > +} > + > void page_pool_put_defragged_page(struct page_pool *pool, struct page *page, > unsigned int dma_sync_size, bool allow_direct) > { > -- > 2.35.1 > Reviewed-by: Ilias Apalodimas