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 49077C3DA7A for ; Thu, 5 Jan 2023 21:47:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 08A54940008; Thu, 5 Jan 2023 16:46:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EDF93940007; Thu, 5 Jan 2023 16:46:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D8224940008; Thu, 5 Jan 2023 16:46:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id BE5F4940007 for ; Thu, 5 Jan 2023 16:46:41 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 9C904140930 for ; Thu, 5 Jan 2023 21:46:41 +0000 (UTC) X-FDA: 80322080202.14.37A7DFE Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf04.hostedemail.com (Postfix) with ESMTP id EE27240008 for ; Thu, 5 Jan 2023 21:46:39 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="YDs+Z/ZM"; spf=none (imf04.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672955200; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=m2s/8OmWFp4OOxmIx+VnG8M6Dr4CWRucDCtkklQeocI=; b=5fuqH7hUJay6Eh2I2pnJUsKca7JXhty65e4u6n44by/zttvUdN3l0Z1KJKytq4w1OjFaRM Zj0cz50QJr0/tD6SiQdbUa/BwfH3eerlKm72kGYIRKfrVi2FJ64h9M2PGLTk32QgL7vs8O JM7nRYGa7j1/eWJzsrUlcwu81tnllJM= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="YDs+Z/ZM"; spf=none (imf04.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672955200; a=rsa-sha256; cv=none; b=O8EfB46fjeFIXzb+SMgWS/q7ugrT6vrBcIbkoZ+H0FbP15weUfPFOY9ts7lwxdEgwnU+ZA oHP3A+ekeKwPSeAaTZohmgONHme7q3+yLDcOQtxtCs1c+Z/v6HDYvxg+Wx1lPbtygGNEla E5iGhJ0G/Wy9UMmn+9mt17as6q7xUNs= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=m2s/8OmWFp4OOxmIx+VnG8M6Dr4CWRucDCtkklQeocI=; b=YDs+Z/ZMgVKmuPMKqkqEJsty1B A1FgDypFwF+s8OqORQz2gfE0byyC6ttEJOSy/A3Brovfffu+CCpHUC2z9ntVMzE1kI2kv4kqlRrTh Y1l0H6sdJzcxuY+NldXWw/oOkzkIrS2qHdRDbK6UORmUKiAmDCCHJcrO+qvQ0eDjZqBaBBll20qea eCv0L+rQKZt3bLtTztxVMECB6tO55V4mWnQDPLzwsGevmrTXaBNBH4rYFtYtlEimLEQgTTnrh0jw1 rFEQL5ZTwGzcOSa3O+IVFSOuR2tow2xdkB9HuW17LZaslvuFrzB/qVMqTBmSy8VYYFuYq6QUUUzaE BfaV415A==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pDY4H-00GWnB-Vh; Thu, 05 Jan 2023 21:46:34 +0000 From: "Matthew Wilcox (Oracle)" To: Jesper Dangaard Brouer , Ilias Apalodimas Cc: "Matthew Wilcox (Oracle)" , netdev@vger.kernel.org, linux-mm@kvack.org, Shakeel Butt Subject: [PATCH v2 09/24] page_pool: Convert page_pool_defrag_page() to page_pool_defrag_netmem() Date: Thu, 5 Jan 2023 21:46:16 +0000 Message-Id: <20230105214631.3939268-10-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230105214631.3939268-1-willy@infradead.org> References: <20230105214631.3939268-1-willy@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: EE27240008 X-Stat-Signature: 1iq8nt1hhym6jbd6zzi8npsszryhru98 X-Rspam-User: X-HE-Tag: 1672955199-980715 X-HE-Meta: U2FsdGVkX19xCgbfO2xFXB61r54qcsrS+6fSvFvZWpts/7cesMlZN4ryrOEcpVSc7Nux+aKNON/jvrI5NsbNPysIh1bZ9lNXBNHWIT+ATE4bNoA1pg40ffdyV4xIZaXUREnVFk/avj7oSCRXOw5hrF8KYgkygIiZlu3sPUsc9681Y8IhO+rT+5Qr0yWK3MPHfBt2pGPZAA7G1NVKUZevtHs1FZWBKaeaPtVVMolPs1YWImr5q+fKpxELFnre9LkaAGCxy+Ebvzgx9xuRpB0IIfDL9juZFwmMiUS9ResiUiPhHGuNaKy8BwQOSAsKRTKyX4QFRxblsa+wjB7W6Wo0W4glWbqIqrr+/Lx3LCghzlFAWWUxmCnXS0bIXGP1ButR6SduvGHvd/rpS1ueUoNFg1IHfjqrmEUlXc3b55JDgRAIl94ZA7M1gXP92BAKbbHl00Yk4hINzWQD2NGiYP8ZDxEYbClMJAN5pibqBvCUuplpaugexwnarqrzGzRU5zZSFy5i0BnXlT9CyCpE8jZ0MKoiyzNyhvrKJWqc+E/Aaaq2l4tAJ1i0ZMtKVCrgHTBJ/uq4jDCXuTf2ZBGOEhsbpL+r8KP7peGh6ZxsGuYVVnOopHVKmz/gspkSfxed0hK4Pset1Nq/IqRIVPBYiUQtsi2bfvT6YYzGmtliQy45OSDeuVJVLyF6s+gQUHE5p77zUY3xJkmVY4wwwQJwT8KxZ88KJSZMNrvclXhuQYDGHFIwfL2boRZ+lnNe6PXyCa/E05dM4f3GM4bOfAvreEHnSaO/+AWzsZHSqL+Nu2BBCupqup07+ZLF1eVEz98hPgbYJJD9PydwfRw1w+jIyctcDtTS35tPiAh5lSHgXyztihrsJ6BSAcJQUOstvxYckFkamKyc7IGgaGc6xePJHddnIdijzxe3OmaYGWQ0JcvcjfBpFMxTB5DUrg== 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: Add a page_pool_defrag_page() wrapper. Signed-off-by: Matthew Wilcox (Oracle) --- include/net/page_pool.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/include/net/page_pool.h b/include/net/page_pool.h index 63aa530922de..8fe494166427 100644 --- a/include/net/page_pool.h +++ b/include/net/page_pool.h @@ -393,7 +393,7 @@ static inline void page_pool_fragment_page(struct page *page, long nr) atomic_long_set(&page->pp_frag_count, nr); } -static inline long page_pool_defrag_page(struct page *page, long nr) +static inline long page_pool_defrag_netmem(struct netmem *nmem, long nr) { long ret; @@ -406,14 +406,19 @@ static inline long page_pool_defrag_page(struct page *page, long nr) * especially when dealing with a page that may be partitioned * into only 2 or 3 pieces. */ - if (atomic_long_read(&page->pp_frag_count) == nr) + if (atomic_long_read(&nmem->pp_frag_count) == nr) return 0; - ret = atomic_long_sub_return(nr, &page->pp_frag_count); + ret = atomic_long_sub_return(nr, &nmem->pp_frag_count); WARN_ON(ret < 0); return ret; } +static inline long page_pool_defrag_page(struct page *page, long nr) +{ + return page_pool_defrag_netmem(page_netmem(page), nr); +} + static inline bool page_pool_is_last_frag(struct page_pool *pool, struct page *page) { -- 2.35.1