178 lines
7.5 KiB
Diff
178 lines
7.5 KiB
Diff
From mboxrd@z Thu Jan 1 00:00:00 1970
|
|
Return-Path: <linux-kernel-owner@kernel.org>
|
|
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=-26.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED,
|
|
DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,
|
|
INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,
|
|
USER_AGENT_GIT,USER_IN_DEF_DKIM_WL autolearn=unavailable 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 1B6E6C433B4
|
|
for <linux-kernel@archiver.kernel.org>; Thu, 20 May 2021 06:54:47 +0000 (UTC)
|
|
Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
|
|
by mail.kernel.org (Postfix) with ESMTP id 01DA3613BA
|
|
for <linux-kernel@archiver.kernel.org>; Thu, 20 May 2021 06:54:46 +0000 (UTC)
|
|
Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
|
|
id S231250AbhETG4G (ORCPT <rfc822;linux-kernel@archiver.kernel.org>);
|
|
Thu, 20 May 2021 02:56:06 -0400
|
|
Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37952 "EHLO
|
|
lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
|
|
with ESMTP id S231130AbhETGzn (ORCPT
|
|
<rfc822;linux-kernel@vger.kernel.org>);
|
|
Thu, 20 May 2021 02:55:43 -0400
|
|
Received: from mail-yb1-xb49.google.com (mail-yb1-xb49.google.com [IPv6:2607:f8b0:4864:20::b49])
|
|
by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 38C6EC061574
|
|
for <linux-kernel@vger.kernel.org>; Wed, 19 May 2021 23:54:22 -0700 (PDT)
|
|
Received: by mail-yb1-xb49.google.com with SMTP id e138-20020a25e7900000b029050df4b648fcso15235225ybh.7
|
|
for <linux-kernel@vger.kernel.org>; Wed, 19 May 2021 23:54:22 -0700 (PDT)
|
|
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
|
d=google.com; s=20161025;
|
|
h=date:in-reply-to:message-id:mime-version:references:subject:from:to
|
|
:cc;
|
|
bh=RJZRi3A5hgCw5vurGae674wlMdAubVgl39rxTDtDyVU=;
|
|
b=JLF6ekZqpQB+K5YXwsizPGhNysHViGntJ8r9yptD6ne6XqGKoI0Wr7dT82jfftMw45
|
|
KOQGieGgRV+BKuZtTbu4cD96tkttpjfquqm9xT5G1x+H3lcXyVbFnA/e0Iz2BGxOx/oJ
|
|
BP1OK9ib2xvMirn2ogaiMLLuQUMqUVLP4SPszQpLdYUpmsyvtcBjEJsyZiQXMIULinqi
|
|
S2oaVggbJoWpCxB/3pF4W62fMm5D/LXGAxEWoOTfyY0Ng+NdQ206TROqcoNsbbncUKfa
|
|
mpyuoyCTOYlALfoNN1kP2lNPrNTUz+UQK31nuEwEnfTBGdsmWTsTelrdxl+7zutfQ7Vh
|
|
E6Ag==
|
|
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
|
d=1e100.net; s=20161025;
|
|
h=x-gm-message-state:date:in-reply-to:message-id:mime-version
|
|
:references:subject:from:to:cc;
|
|
bh=RJZRi3A5hgCw5vurGae674wlMdAubVgl39rxTDtDyVU=;
|
|
b=I4OJloc251SYLj8eJFPP7eJ7uA2r6NXUj5S3hGT6Cv3INg/pbFfz6U56wMbDKeUUx2
|
|
PFZUxNbewINRi+Xyu0XORumSFYK8cRNAA2xJjsiB/Mi20wJutqQp8eggHjJ4klnT3Arg
|
|
fC/Qi7JDEKR9akyObrL1SszlU1EyBRMRlSuA56tL8Ayw3KSXAha5WNL73FfjPvnDX4Jn
|
|
bmGmhKmr4OxIJyYH+35RFfAEzVEoAkRi3miAuWb8eWC6T+GXdpovk6EqvlqSAS4RZyph
|
|
hWXp4amXtIPmK3meD1g4aF/hJ6IDATp3RWD8SfDV+tNQHU5Wvz3exLpVhhmIWwqq93UL
|
|
V4jg==
|
|
X-Gm-Message-State: AOAM532JcEmtEayMiu5r4FpU7325mYFfTWklXmMaEvDn+KHT0zqmqSZv
|
|
de4I079gO1eY+8FLxSzEABlOF2R4isA=
|
|
X-Google-Smtp-Source: ABdhPJxxpSuYeOHDU9e04y/REOjF/gJdL+d+nc25sd9W9QvVBy/CaC3vEGm8uybifzDpCi76iP47Kw7dnfI=
|
|
X-Received: from yuzhao.bld.corp.google.com ([2620:15c:183:200:595d:62ee:f08:8e83])
|
|
(user=yuzhao job=sendgmr) by 2002:a05:6902:4b3:: with SMTP id
|
|
r19mr5173987ybs.290.1621493661349; Wed, 19 May 2021 23:54:21 -0700 (PDT)
|
|
Date: Thu, 20 May 2021 00:53:54 -0600
|
|
In-Reply-To: <20210520065355.2736558-1-yuzhao@google.com>
|
|
Message-Id: <20210520065355.2736558-14-yuzhao@google.com>
|
|
Mime-Version: 1.0
|
|
References: <20210520065355.2736558-1-yuzhao@google.com>
|
|
X-Mailer: git-send-email 2.31.1.751.gd2f1c929bd-goog
|
|
Subject: [PATCH v3 13/14] mm: multigenerational lru: Kconfig
|
|
From: Yu Zhao <yuzhao@google.com>
|
|
To: linux-mm@kvack.org
|
|
Cc: Alex Shi <alexs@kernel.org>, Andi Kleen <ak@linux.intel.com>,
|
|
Andrew Morton <akpm@linux-foundation.org>,
|
|
Dave Chinner <david@fromorbit.com>,
|
|
Dave Hansen <dave.hansen@linux.intel.com>,
|
|
Donald Carr <sirspudd@gmail.com>,
|
|
Hillf Danton <hdanton@sina.com>, Jens Axboe <axboe@kernel.dk>,
|
|
Johannes Weiner <hannes@cmpxchg.org>,
|
|
Jonathan Corbet <corbet@lwn.net>,
|
|
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
|
|
Konstantin Kharlamov <hi-angel@yandex.ru>,
|
|
Marcus Seyfarth <m.seyfarth@gmail.com>,
|
|
Matthew Wilcox <willy@infradead.org>,
|
|
Mel Gorman <mgorman@suse.de>,
|
|
Miaohe Lin <linmiaohe@huawei.com>,
|
|
Michael Larabel <michael@michaellarabel.com>,
|
|
Michal Hocko <mhocko@suse.com>,
|
|
Michel Lespinasse <michel@lespinasse.org>,
|
|
Rik van Riel <riel@surriel.com>,
|
|
Roman Gushchin <guro@fb.com>,
|
|
Tim Chen <tim.c.chen@linux.intel.com>,
|
|
Vlastimil Babka <vbabka@suse.cz>,
|
|
Yang Shi <shy828301@gmail.com>,
|
|
Ying Huang <ying.huang@intel.com>, Zi Yan <ziy@nvidia.com>,
|
|
linux-kernel@vger.kernel.org, lkp@lists.01.org,
|
|
page-reclaim@google.com, Yu Zhao <yuzhao@google.com>,
|
|
Konstantin Kharlamov <Hi-Angel@yandex.ru>
|
|
Content-Type: text/plain; charset="UTF-8"
|
|
Precedence: bulk
|
|
List-ID: <linux-kernel.vger.kernel.org>
|
|
X-Mailing-List: linux-kernel@vger.kernel.org
|
|
List-Archive: <https://lore.kernel.org/lkml/>
|
|
|
|
Add configuration options for the multigenerational lru.
|
|
|
|
Signed-off-by: Yu Zhao <yuzhao@google.com>
|
|
Tested-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
|
|
---
|
|
mm/Kconfig | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 58 insertions(+)
|
|
|
|
diff --git a/mm/Kconfig b/mm/Kconfig
|
|
index 02d44e3420f5..da125f145bc4 100644
|
|
--- a/mm/Kconfig
|
|
+++ b/mm/Kconfig
|
|
@@ -901,4 +901,62 @@ config KMAP_LOCAL
|
|
# struct io_mapping based helper. Selected by drivers that need them
|
|
config IO_MAPPING
|
|
bool
|
|
+
|
|
+# the multigenerational lru {
|
|
+config LRU_GEN
|
|
+ bool "Multigenerational LRU"
|
|
+ depends on MMU
|
|
+ help
|
|
+ A high performance LRU implementation to heavily overcommit workloads
|
|
+ that are not IO bound. See Documentation/vm/multigen_lru.rst for
|
|
+ details.
|
|
+
|
|
+ Warning: do not enable this option unless you plan to use it because
|
|
+ it introduces a small per-process and per-memcg and per-node memory
|
|
+ overhead.
|
|
+
|
|
+config LRU_GEN_ENABLED
|
|
+ bool "Turn on by default"
|
|
+ depends on LRU_GEN
|
|
+ help
|
|
+ The default value of /sys/kernel/mm/lru_gen/enabled is 0. This option
|
|
+ changes it to 1.
|
|
+
|
|
+ Warning: the default value is the fast path. See
|
|
+ Documentation/static-keys.txt for details.
|
|
+
|
|
+config LRU_GEN_STATS
|
|
+ bool "Full stats for debugging"
|
|
+ depends on LRU_GEN
|
|
+ help
|
|
+ This option keeps full stats for each generation, which can be read
|
|
+ from /sys/kernel/debug/lru_gen_full.
|
|
+
|
|
+ Warning: do not enable this option unless you plan to use it because
|
|
+ it introduces an additional small per-process and per-memcg and
|
|
+ per-node memory overhead.
|
|
+
|
|
+config NR_LRU_GENS
|
|
+ int "Max number of generations"
|
|
+ depends on LRU_GEN
|
|
+ range 4 31
|
|
+ default 7
|
|
+ help
|
|
+ This will use order_base_2(N+1) spare bits from page flags.
|
|
+
|
|
+ Warning: do not use numbers larger than necessary because each
|
|
+ generation introduces a small per-node and per-memcg memory overhead.
|
|
+
|
|
+config TIERS_PER_GEN
|
|
+ int "Number of tiers per generation"
|
|
+ depends on LRU_GEN
|
|
+ range 2 5
|
|
+ default 4
|
|
+ help
|
|
+ This will use N-2 spare bits from page flags.
|
|
+
|
|
+ Larger values generally offer better protection to active pages under
|
|
+ heavy buffered I/O workloads.
|
|
+# }
|
|
+
|
|
endmenu
|
|
--
|
|
2.31.1.751.gd2f1c929bd-goog
|
|
|
|
|