From patchwork Fri Sep 2 19:46:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 12964567 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 9E860ECAAD5 for ; Fri, 2 Sep 2022 19:47:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 03819800FC; Fri, 2 Sep 2022 15:47:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6C62A80111; Fri, 2 Sep 2022 15:47:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C91C180116; Fri, 2 Sep 2022 15:47:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 2EE10800FD for ; Fri, 2 Sep 2022 15:47:04 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 0EF3D801EA for ; Fri, 2 Sep 2022 19:47:04 +0000 (UTC) X-FDA: 79868178768.21.835B940 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf07.hostedemail.com (Postfix) with ESMTP id 9B9A34004D for ; Fri, 2 Sep 2022 19:47:03 +0000 (UTC) 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=bcSQc1s9XNVBQkJqTs0sr3KkK5kgMX7Yz0rxH26LS1Y=; b=LbdG8PpX5mVgW9mZTUDOGLVVaa jzKbf9V/BIbzm1qDEnMT+NCUd085sr5JU+xCVdJIj4ovWBQxKVtTp/ONg4haXynkkzaWI/gf9zgIt wqfPizYcUclFnWllBYJjZBvYc+LOC+GS05P2xs1K7GuI4C7GqRFvYegzLxozoInCOQodIH9jibtg1 fLzf5rg+RGYhQFlDor9ryy+hM1hORoD6R2Kxtr9P0Oed6piOC7BfFQpBrts5pvISkaUIhNrxjJr9Q Dxw4+byRhuC+pcHq+w5J3CrxLxlTWDvs/xICk7s2HMeXM7w/6Ep4mAYLBMxz6rsk3AZXC7KxgH0eF 1Ef5Fx7Q==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1oUCd5-007IgX-CA; Fri, 02 Sep 2022 19:47:03 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Subject: [PATCH v2 46/57] mm: Convert do_swap_page() to use folio_free_swap() Date: Fri, 2 Sep 2022 20:46:42 +0100 Message-Id: <20220902194653.1739778-47-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220902194653.1739778-1-willy@infradead.org> References: <20220902194653.1739778-1-willy@infradead.org> MIME-Version: 1.0 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662148023; 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=bcSQc1s9XNVBQkJqTs0sr3KkK5kgMX7Yz0rxH26LS1Y=; b=WdigpfYPHDD78ikeLpHtGC83c26npmTuPfssMkGixIocBAr5/W2kMaWVpC3fD2WGoQBARF RnxKMVJIyhpYSKGP4YiIcQOx8YkBCJVYtvZd9HKfwi7aYT/wuFo+ihX+b3BW/7ctoMNsn6 zgbAsm3ixC7o1srTHHg4z/ZwqDoyKcc= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=LbdG8PpX; dmarc=none; spf=none (imf07.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662148023; a=rsa-sha256; cv=none; b=QUh2VBEW3JQazxwSTEcp1ogCK3/PxfewwWXoVkdlqwkJpqJ8OWt19lhUmySdFoH8BRWRGK MGggrA5D2McA18/WR10L+jXaDq7ZKiAckZ4JuN1PwcWHJH1WWWU6zhFQqKa1V4EF/ZLMY7 4Z8QzvvGPZsAVEUX0mNwOtMUC7NnLTQ= X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 9B9A34004D Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=LbdG8PpX; dmarc=none; spf=none (imf07.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org X-Rspam-User: X-Stat-Signature: xfsmkpqnq4bbfpxie3og8w71ir1sr9oy X-HE-Tag: 1662148023-802996 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: Also convert should_try_to_free_swap() to use a folio. This removes a few calls to compound_head(). Signed-off-by: Matthew Wilcox (Oracle) --- mm/memory.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 4ec9827a2d37..f39dc23ddb69 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3635,14 +3635,14 @@ static vm_fault_t remove_device_exclusive_entry(struct vm_fault *vmf) return 0; } -static inline bool should_try_to_free_swap(struct page *page, +static inline bool should_try_to_free_swap(struct folio *folio, struct vm_area_struct *vma, unsigned int fault_flags) { - if (!PageSwapCache(page)) + if (!folio_test_swapcache(folio)) return false; - if (mem_cgroup_swap_full(page) || (vma->vm_flags & VM_LOCKED) || - PageMlocked(page)) + if (mem_cgroup_swap_full(&folio->page) || (vma->vm_flags & VM_LOCKED) || + folio_test_mlocked(folio)) return true; /* * If we want to map a page that's in the swapcache writable, we @@ -3650,8 +3650,8 @@ static inline bool should_try_to_free_swap(struct page *page, * user. Try freeing the swapcache to get rid of the swapcache * reference only in case it's likely that we'll be the exlusive user. */ - return (fault_flags & FAULT_FLAG_WRITE) && !PageKsm(page) && - page_count(page) == 2; + return (fault_flags & FAULT_FLAG_WRITE) && !folio_test_ksm(folio) && + folio_ref_count(folio) == 2; } static vm_fault_t pte_marker_clear(struct vm_fault *vmf) @@ -3943,8 +3943,8 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) * yet. */ swap_free(entry); - if (should_try_to_free_swap(page, vma, vmf->flags)) - try_to_free_swap(page); + if (should_try_to_free_swap(folio, vma, vmf->flags)) + folio_free_swap(folio); inc_mm_counter_fast(vma->vm_mm, MM_ANONPAGES); dec_mm_counter_fast(vma->vm_mm, MM_SWAPENTS);