From patchwork Sat Dec 31 21:45:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13086168 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 75E18C4167B for ; Sat, 31 Dec 2022 21:46:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 26B018E0005; Sat, 31 Dec 2022 16:46:11 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1EF6C8E0001; Sat, 31 Dec 2022 16:46:11 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 09B938E0006; Sat, 31 Dec 2022 16:46:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E21F28E0001 for ; Sat, 31 Dec 2022 16:46:10 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B5B20120308 for ; Sat, 31 Dec 2022 21:46:10 +0000 (UTC) X-FDA: 80303934900.05.46A8389 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf02.hostedemail.com (Postfix) with ESMTP id 4327780009 for ; Sat, 31 Dec 2022 21:46:08 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Jwv9mI0X; spf=none (imf02.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=1672523169; 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=yBZlY4uyFwVGuYu5A8b/2I8OZtf7kPM6YGWYSUCHHcg=; b=7pcj/Rq2HZziCNAtutG7iuB93jI9GKTCVInyZBLDNw793haDVjQye0BOWFLzFChmgE+wfi A2r+0aeOD4yurV3w7mTRPEIDdBbTxAWIzA0zA+x5Fq0BVvSNldzv0F34loe9tgriQzvgAi VD7ZDMIMZw03dP7m4tuQi1a8TxOtxbw= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Jwv9mI0X; spf=none (imf02.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=1672523169; a=rsa-sha256; cv=none; b=RKEVpGkXylBgDvv44wF/l4z1t44OkgJgHXPWNUSQx2gMEwTOooqqJlJ766nQ7qleMGSbzs 6j8qId2/OX4ZhcHKpEAbJ+JeeeIgDuXNAj6UmRGcwiPJqK8dIDAWxSoBQ5ti2hV585zNvR Jd/bBEzibxFAF0CsPybNwVWmKo5YAG4= 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=yBZlY4uyFwVGuYu5A8b/2I8OZtf7kPM6YGWYSUCHHcg=; b=Jwv9mI0X4ElTQsfgEYMuhU1ZQX yKA9ZdzeI2GbO/JFKOjEOaQUtLg2kRnVGA+aX8LaTXHcrDyGSHDW15XeQ836Ox+WU3LsFkXz6ja6W Nq55Qtc/DuBmN1HX7lj/dToEo0SxjPm6DicX/tNFmVZ18kfDoqccnMhyYzQ9T5sRuaO6RJgGsz0NW Hk9n0w+yvf04AGGhkFGMiQnD4+gV39YRjlRFL5ORxx3H9z+j5hH8Txl1wEKeuxMmQ/aMdEDv8vYm+ l0fGP0b/XyjLAsgTeFm+245SP2lttUUuiBhAxJS1DYLaGgIIjlFG+WFM0LWAuO0xiIUKM0wmxMK0I jBfxwUEQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pBjgD-00Bkal-Fr; Sat, 31 Dec 2022 21:46:13 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Hugh Dickins Subject: [PATCH 10/22] mm: Use a folio in hugepage_add_anon_rmap() and hugepage_add_new_anon_rmap() Date: Sat, 31 Dec 2022 21:45:58 +0000 Message-Id: <20221231214610.2800682-11-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20221231214610.2800682-1-willy@infradead.org> References: <20221231214610.2800682-1-willy@infradead.org> MIME-Version: 1.0 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 4327780009 X-Rspam-User: X-Stat-Signature: aux3hy9pzjm4m6itr1e1xa8picg1b44x X-HE-Tag: 1672523168-268502 X-HE-Meta: U2FsdGVkX19cVEa0c4DKuXzD8HhcXBMePUus/oqRjXUQqorhhD/0ffuOn41bNS8v1uUd1HAe8x/HsaYEhmwl1RlUSvb2a2wjSIoF3Nole7efd1R31CXr+on/bpsO14eNEolttpwTPd5Ngr12SAVzJlnbSAodiZiIEe7T8oW1+NxX/L7+UJPYZYilPRztaSIZp80BL1PsXjUeLLYIi6VyIlRTsSUqVmZ3XhkkcZQjLPUSLp97kciCtspbUj2QX45VtELVP53XZGZGjtMAd9gW62oPxo36ADwGIz78IiAA48ESPDP8nTh9yJpDIHKoMpuqdL1dv/3GUkJ83vsbYFdzU79HnMIamtv2lVbPoxNfitBu3d//Reb4I+iUScWFZ2WRs20USsaz7ZsjG9io0VXA7PBKleEAxTCrKRyR5rmvEACps5D/FaJICBE8JGMaky1PGg2HTg72FnpuhF1Q1xuGHHtdU7ppaN4F4KVPzZjyP0DY/P1a4FNZwnLSXjoj+oD20amKmNAkQn0V+eVByruygvvHqFNR6/AZ45LXQBzRbfTWPhhG+7E7XNQ8eFPE/E9+PY51aGBzuOkCBPzLOb96TuopKWu1A1wSwNFFnNtiLJtBE3WHhhYDdW1bBGncxZnX/I/Q/r7M7arQu4zq2GE9dc86Ts2RDFbI0YvyJYDcTDfAnjQssNleRis5VlbrTXdkEeFsj/54O6eU3dAR/z3IsnJMd0zVgG4MskGgNiRR+mCeWIiHaGyz7m6+3HqKVslLtbuOg1p3fNW737BTlH29bhlISgWQThngcTYoTP/25fLQyshGeaFwfBw6+1oN8+RKRMe0iOZ7BDNVQu1aD6c7W0Dbp2mXxKFAUzTiE+0HHLzk+bxDERRXpmxsAcGcz4bbYLf2ZDK3oSXjz7eETQBZ8oEnjuhRm+bbzPSngxyAF+v8xiIywXn3oA== 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: Remove uses of compound_mapcount_ptr() Signed-off-by: Matthew Wilcox (Oracle) --- mm/rmap.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index 3297b88b5698..d658f4316bcd 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -2545,13 +2545,14 @@ void rmap_walk_locked(struct folio *folio, struct rmap_walk_control *rwc) void hugepage_add_anon_rmap(struct page *page, struct vm_area_struct *vma, unsigned long address, rmap_t flags) { + struct folio *folio = page_folio(page); struct anon_vma *anon_vma = vma->anon_vma; int first; - BUG_ON(!PageLocked(page)); + BUG_ON(!folio_test_locked(folio)); BUG_ON(!anon_vma); /* address might be in next vma when migration races vma_adjust */ - first = atomic_inc_and_test(compound_mapcount_ptr(page)); + first = atomic_inc_and_test(&folio->_entire_mapcount); VM_BUG_ON_PAGE(!first && (flags & RMAP_EXCLUSIVE), page); VM_BUG_ON_PAGE(!first && PageAnonExclusive(page), page); if (first) @@ -2562,10 +2563,12 @@ void hugepage_add_anon_rmap(struct page *page, struct vm_area_struct *vma, void hugepage_add_new_anon_rmap(struct page *page, struct vm_area_struct *vma, unsigned long address) { + struct folio *folio = page_folio(page); + BUG_ON(address < vma->vm_start || address >= vma->vm_end); /* increment count (starts at -1) */ - atomic_set(compound_mapcount_ptr(page), 0); - ClearHPageRestoreReserve(page); + atomic_set(&folio->_entire_mapcount, 0); + folio_clear_hugetlb_restore_reserve(folio); __page_set_anon_rmap(page, vma, address, 1); } #endif /* CONFIG_HUGETLB_PAGE */