From patchwork Thu Mar 28 13:38:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yunsheng Lin X-Patchwork-Id: 13608545 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 A4126C54E64 for ; Thu, 28 Mar 2024 13:41:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 329A76B008C; Thu, 28 Mar 2024 09:41:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2B5906B0092; Thu, 28 Mar 2024 09:41:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 105856B0095; Thu, 28 Mar 2024 09:41:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id E9F3E6B008C for ; Thu, 28 Mar 2024 09:40:59 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id BB021A026C for ; Thu, 28 Mar 2024 13:40:59 +0000 (UTC) X-FDA: 81946558638.17.5E7E709 Received: from szxga07-in.huawei.com (szxga07-in.huawei.com [45.249.212.35]) by imf29.hostedemail.com (Postfix) with ESMTP id 6139712000B for ; Thu, 28 Mar 2024 13:40:56 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; spf=pass (imf29.hostedemail.com: domain of linyunsheng@huawei.com designates 45.249.212.35 as permitted sender) smtp.mailfrom=linyunsheng@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711633257; 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; bh=vbKHpGj9C7ZPz3kFxumqcrbCmjjN1o6Ndlst9Wj+Kfs=; b=PFF2CoatIrT7qyCmihuKt4iM/ElJoaFuPMdsZJRPdS7n+eEOOOqtPv9+5qu9QW8RRvI58E 2TInY8HhKthtrBBOjJjKMtDSwVWRIy+Vwmz7dDvjy71ij3ibtSpJkndwCdsuIHMySQZAaD CTuiuAXgwj7ZGNbv1FzSoCcssWgT4uE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711633257; a=rsa-sha256; cv=none; b=KqtPbnlLqlT6Db8siYC1EXAV5AIjnnP8tS4KlplUGGej1/f3hhI4sbQVvtSJjIXRblG1lZ px2UJMVSb6R/lNPoLHb8iORdYaBU9YVoCThYYfgT/WciT8SMMUtrPTmYtI1yuHiI0hpdDL 3l6O1aDssfVfURXUynmqruyWAlCwobA= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; spf=pass (imf29.hostedemail.com: domain of linyunsheng@huawei.com designates 45.249.212.35 as permitted sender) smtp.mailfrom=linyunsheng@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com Received: from mail.maildlp.com (unknown [172.19.163.17]) by szxga07-in.huawei.com (SkyGuard) with ESMTP id 4V54P074DJz1R8gB; Thu, 28 Mar 2024 21:38:12 +0800 (CST) Received: from dggpemm500005.china.huawei.com (unknown [7.185.36.74]) by mail.maildlp.com (Postfix) with ESMTPS id D62381A0172; Thu, 28 Mar 2024 21:40:53 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by dggpemm500005.china.huawei.com (7.185.36.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 28 Mar 2024 21:40:53 +0800 From: Yunsheng Lin To: , , CC: , , Yunsheng Lin , Andrew Morton , Eric Dumazet , Subject: [PATCH RFC 05/10] mm: page_frag: add two inline helper for page_frag API Date: Thu, 28 Mar 2024 21:38:34 +0800 Message-ID: <20240328133839.13620-6-linyunsheng@huawei.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20240328133839.13620-1-linyunsheng@huawei.com> References: <20240328133839.13620-1-linyunsheng@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To dggpemm500005.china.huawei.com (7.185.36.74) X-Rspamd-Queue-Id: 6139712000B X-Rspam-User: X-Stat-Signature: ju9bodw5t4x8akncspdan3q69xb99p9r X-Rspamd-Server: rspam03 X-HE-Tag: 1711633256-736348 X-HE-Meta: U2FsdGVkX1/4cSyXj+PTLbgeYGRHQaCFNDMwVqaC0nFp/5/pCDZ1VdlV9jKFxoRBc9szBRk2heIxLJJMkJjt+n+hSIX4u0RkBuzgI19Exzl67XACzTHLfwF5Do4c0pZ1c5aBEgBc4Z4bUGHWpY3Ialy9gkcDgw+iN/Sm8MsC8HBTgyPY337oGiA/eE+N3soR9t6ygxoSM7A++TTDrGePsZzYOiEZpV0BlJTIwax1y2PUh3Znxpr0DAr0Bssu8wJ2hEvhD3ZJRfKYBfGOHxvtkossDPUm4IizE8sWpDelGeVXMlE5dwiZ5Ijc0lrDG9p06zx0nAsESlp7mTX3fBPHLTYhgzw/u1NJTwfv2sle8A4KRwjkoiQfGrYGLDh8iy26YXXQOTGggyta2B5Xc9NPYWOJ4Qro2VmjtXete7qLphJ/8iSgpYaq9Bax306JV4b6v8LR5jeO68X5PoIWlz2LOZJzkysq/4572z7dyp3BM+iRCOPjmkr9oA/zmVFZXiiurI5K51+hO6fUN3lIT/TNVc/yCds/hNRrBB7tPt4X8FYNpLKZKTlh9mRb660Q+avt0ze73d8wPe3vfladzUu8DcpMZxgYul1s+B5CjPOc6qqIPusPYYcXP5ce418STrGf2cvFXtrUocFG8ExIJJDdkaGlp/NkfPFTmHmszKo57fpulTt1O8UZP/jooB3YreonufvnTGBRRRKIZbmW8XgfuMzda9kj83oP8L3a0rnvEivi3wbJzsdVsPyZKynEkkl7SufK6hBPPihkrWT04SQzdbRise+Dpq/FAd8qfUTeA5vW1C882/5voBPtdoTt3YxNDskRrW0bYvgooiKUi0CE4P017EN0XGppT5g3ED29vnImULIe4nNQuL4wBLw239rSLdzBr2Rd+qRJ72j46buVMOIbWxsbaQNgC141ANQEJbVSPgD1Ai/M6IXFeRacbRaiyUynXLsB3TB1dgfXwrX YDwh3kcD qK53N4AIao3gbAfmGRNqNFIBJ5yyvTS34eMxNfhfmZ0Lnk/FDzQtsANDIanTOEUn53xF2knTIsmdY/EB/I9ADQPTFBpvrjM4HCW+DXVWRlatEqjaCDZSbGFPk8azAC3gSJtQ4QGnCTmwa6fJcZjsGj68bixft3qyvQUbJpQ++ny1F4tM5xEMH1P6n9ZJKig5mq3P7 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: Add two inline helpers for page_frag API to avoid calling accessing the field of 'struct page_frag_cache'. Signed-off-by: Yunsheng Lin --- include/linux/page_frag_cache.h | 10 ++++++++++ net/core/skbuff.c | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/linux/page_frag_cache.h b/include/linux/page_frag_cache.h index 9d5d86b2d3ab..fe5faa80b6c3 100644 --- a/include/linux/page_frag_cache.h +++ b/include/linux/page_frag_cache.h @@ -23,6 +23,16 @@ struct page_frag_cache { bool pfmemalloc; }; +static inline void page_frag_cache_init(struct page_frag_cache *nc) +{ + nc->va = NULL; +} + +static inline bool page_frag_cache_is_pfmemalloc(struct page_frag_cache *nc) +{ + return !!nc->pfmemalloc; +} + void page_frag_cache_drain(struct page_frag_cache *nc); void __page_frag_cache_drain(struct page *page, unsigned int count); void *page_frag_alloc_va(struct page_frag_cache *nc, unsigned int fragsz, diff --git a/net/core/skbuff.c b/net/core/skbuff.c index aa3adaa2c466..e6bc0dec7463 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -742,12 +742,12 @@ struct sk_buff *__netdev_alloc_skb(struct net_device *dev, unsigned int len, if (in_hardirq() || irqs_disabled()) { nc = this_cpu_ptr(&netdev_alloc_cache); data = page_frag_alloc_va(nc, len, gfp_mask); - pfmemalloc = nc->pfmemalloc; + pfmemalloc = page_frag_cache_is_pfmemalloc(nc); } else { local_bh_disable(); nc = this_cpu_ptr(&napi_alloc_cache.page); data = page_frag_alloc_va(nc, len, gfp_mask); - pfmemalloc = nc->pfmemalloc; + pfmemalloc = page_frag_cache_is_pfmemalloc(nc); local_bh_enable(); }