Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp657719pxv; Fri, 9 Jul 2021 06:20:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyzUltXehjBtivRWim21ifsxWtWb4YOJvbDwMgMZnq/LvewH4AjAj2wFuYpsmJb2cbQS+yN X-Received: by 2002:a02:9a02:: with SMTP id b2mr26610359jal.107.1625836828050; Fri, 09 Jul 2021 06:20:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625836828; cv=none; d=google.com; s=arc-20160816; b=Om5OWIMTvP5JNf5so4c3wS1e/IaB8aSSEsKDBy6fFxbACNVs75z1OCKhXaGD5qw7LL 32GlbNOkcs0EaAkJmq4+KCqE+t2z621zwEjs3YuL1KVCDgeIuIcBy5xawFl7IfMBM2Da U5FhcGz8LRS6Jh8z03hRiKn8tR77s3Op0n0JGt7AEH5bA91Y1nOEu7NapDzqOBf0BOEU KpJElV1B3Srhd9ORdXpfrFsQV306L9q2DdLSFVF2E3Jb6s609QfIPo87bvDrSSd48vkM mjsvYQX/CQwj1BrTVFAsPe2ZL7UgxW2VykbJrHuz4NQTn1A0/2ApmCZAZ+PZtE3wIHZ9 hjYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=UGxR/fMvl+MsDYz7GLuQWjXX6QL9hCQ3+OutQnvYP7Q=; b=sMocTcdO4rhOPhiuhybipmjjN+LGl6camKfgc2PO9hsxBra3JfChUsEM0hDoewi1xC 1gUSdbXNoNRi+Y8jBSPGfUJdYyjKZTZwJs07fLkttstA2laDM7R60oHN12FahOAYZqoQ iCNg6JQsbrKfGoPNysHhon187FebvWVfcAurCkdhvI57nThQY+pFUwkPHU2lWwmgLOxG ilxbdAWXVCTNtPqpDMXwJd3dti21wX40T66FsqkRc/Ug2qvJyyx/boZnuhet505uiGC2 Q8OOs0EapallWtRCjPIIw/7eNrBTl6bJgNXr3ooScDU/xL/nuTbMEuTOp5qx4GZ6EqiT 1V3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=N0n2mm8+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v18si6175642jah.108.2021.07.09.06.20.15; Fri, 09 Jul 2021 06:20:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=N0n2mm8+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232191AbhGINWI (ORCPT + 99 others); Fri, 9 Jul 2021 09:22:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:52318 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232147AbhGINWB (ORCPT ); Fri, 9 Jul 2021 09:22:01 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 5C73B613C7; Fri, 9 Jul 2021 13:19:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1625836754; bh=XGane4wHFqjFbg02efSxrhHuNBdFgRinSrEjzZWHbaA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=N0n2mm8+8jL1WpBRQrqTjbkBy3zngFSbo2DVCo+KLB5wItEL27agSgLCzsFt5VuVV euVZPY8wyA8ke3CY806ytuK1ke1jbfse9RZ9Po/XCDn8ytFDaGMEJCT5FdrFy2dSRM SmrOd7LQ6s19y0E63vXhHiSEtR3VLq3rbqcyORRk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Miaohe Lin , Andrew Morton , Linus Torvalds , Sasha Levin Subject: [PATCH 4.14 04/25] mm/rmap: use page_not_mapped in try_to_unmap() Date: Fri, 9 Jul 2021 15:18:35 +0200 Message-Id: <20210709131630.520622822@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210709131627.928131764@linuxfoundation.org> References: <20210709131627.928131764@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Miaohe Lin [ Upstream commit b7e188ec98b1644ff70a6d3624ea16aadc39f5e0 ] page_mapcount_is_zero() calculates accurately how many mappings a hugepage has in order to check against 0 only. This is a waste of cpu time. We can do this via page_not_mapped() to save some possible atomic_read cycles. Remove the function page_mapcount_is_zero() as it's not used anymore and move page_not_mapped() above try_to_unmap() to avoid identifier undeclared compilation error. Link: https://lkml.kernel.org/r/20210130084904.35307-1-linmiaohe@huawei.com Signed-off-by: Miaohe Lin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin --- mm/rmap.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index e2506b6adb6a..e6a556fec9d1 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1624,9 +1624,9 @@ static bool invalid_migration_vma(struct vm_area_struct *vma, void *arg) return is_vma_temporary_stack(vma); } -static int page_mapcount_is_zero(struct page *page) +static int page_not_mapped(struct page *page) { - return !total_mapcount(page); + return !page_mapped(page); } /** @@ -1644,7 +1644,7 @@ bool try_to_unmap(struct page *page, enum ttu_flags flags) struct rmap_walk_control rwc = { .rmap_one = try_to_unmap_one, .arg = (void *)flags, - .done = page_mapcount_is_zero, + .done = page_not_mapped, .anon_lock = page_lock_anon_vma_read, }; @@ -1668,11 +1668,6 @@ bool try_to_unmap(struct page *page, enum ttu_flags flags) return !page_mapcount(page) ? true : false; } -static int page_not_mapped(struct page *page) -{ - return !page_mapped(page); -} - /** * try_to_munlock - try to munlock a page * @page: the page to be munlocked -- 2.30.2