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 X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EFFD5C433DB for ; Mon, 11 Jan 2021 20:59:01 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6366D22CF8 for ; Mon, 11 Jan 2021 20:59:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6366D22CF8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 577AE6B0088; Mon, 11 Jan 2021 15:59:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 528376B012A; Mon, 11 Jan 2021 15:59:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 418596B012C; Mon, 11 Jan 2021 15:59:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0103.hostedemail.com [216.40.44.103]) by kanga.kvack.org (Postfix) with ESMTP id 2A19B6B0088 for ; Mon, 11 Jan 2021 15:59:00 -0500 (EST) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id E1EE0824556B for ; Mon, 11 Jan 2021 20:58:59 +0000 (UTC) X-FDA: 77694708798.03.pear70_160bbed2750f Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin03.hostedemail.com (Postfix) with ESMTP id C44B228A4E8 for ; Mon, 11 Jan 2021 20:58:59 +0000 (UTC) X-HE-Tag: pear70_160bbed2750f X-Filterd-Recvd-Size: 4467 Received: from so254-31.mailgun.net (so254-31.mailgun.net [198.61.254.31]) by imf36.hostedemail.com (Postfix) with ESMTP for ; Mon, 11 Jan 2021 20:58:59 +0000 (UTC) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1610398739; h=Content-Transfer-Encoding: MIME-Version: Message-Id: Date: Subject: Cc: To: From: Sender; bh=FejdcNeskbNijKqbe186xVWD9/tCQ7On7jSIGSIFwSc=; b=VtdEckGACb0mqrRckeNek6mc65axLGAeiwb3h3Y/cXvtESMrTWHYhfBRFbMBcZ/Hdaw72woR pEyNdR06yPWNr/uz7+td0gPSGJSqlRg4dxJkG/rucluVcMhN0Rzp6Nn5ZFbX8nuFUuvkaXmF o92XqJb8ubiF8Xu4Z0S8kUgRqQ0= X-Mailgun-Sending-Ip: 198.61.254.31 X-Mailgun-Sid: WyIwY2Q3OCIsICJsaW51eC1tbUBrdmFjay5vcmciLCAiYmU5ZTRhIl0= Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n10.prod.us-east-1.postgun.com with SMTP id 5ffcbc12f1be2d22c42bc898 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Mon, 11 Jan 2021 20:58:58 GMT Received: by smtp.codeaurora.org (Postfix, from userid 1001) id D802AC433C6; Mon, 11 Jan 2021 20:58:57 +0000 (UTC) Received: from th-lint-014.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: sudaraja) by smtp.codeaurora.org (Postfix) with ESMTPSA id 2156EC433CA; Mon, 11 Jan 2021 20:58:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 2156EC433CA Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: aws-us-west-2-caf-mail-1.web.codeaurora.org; spf=fail smtp.mailfrom=sudaraja@codeaurora.org From: Sudarshan Rajagopalan To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, akpm@linux-foundation.org Cc: Sudarshan Rajagopalan Subject: [PATCH] mm: vmscan: support equal reclaim for anon and file pages Date: Mon, 11 Jan 2021 12:58:43 -0800 Message-Id: X-Mailer: git-send-email 2.25.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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: When performing memory reclaim support treating anonymous and file backed pages equally. Swapping anonymous pages out to memory can be efficient enough to justify treating anonymous and file backed pages equally. Signed-off-by: Sudarshan Rajagopalan Cc: Andrew Morton --- mm/vmscan.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 257cba79a96d..ec7585e0d5f5 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -169,6 +169,8 @@ struct scan_control { */ int vm_swappiness =3D 60; =20 +bool balance_anon_file_reclaim =3D false; + static void set_task_reclaim_state(struct task_struct *task, struct reclaim_state *rs) { @@ -201,6 +203,13 @@ static DECLARE_RWSEM(shrinker_rwsem); static DEFINE_IDR(shrinker_idr); static int shrinker_nr_max; =20 +static int __init cmdline_parse_balance_reclaim(char *p) +{ + balance_anon_file_reclaim =3D true; + return 0; +} +early_param("balance_reclaim", cmdline_parse_balance_reclaim); + static int prealloc_memcg_shrinker(struct shrinker *shrinker) { int id, ret =3D -ENOMEM; @@ -2291,9 +2300,11 @@ static void get_scan_count(struct lruvec *lruvec, = struct scan_control *sc, =20 /* * If there is enough inactive page cache, we do not reclaim - * anything from the anonymous working right now. + * anything from the anonymous working right now. But when balancing + * anon and page cache files for reclaim, allow swapping of anon pages + * even if there are a number of inactive file cache pages. */ - if (sc->cache_trim_mode) { + if (!balance_anon_file_reclaim && sc->cache_trim_mode) { scan_balance =3D SCAN_FILE; goto out; } --=20 Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project