The commit is pushed to "branch-rh7-3.10.0-123.1.2-ovz" and will appear on ssh://g...@git.sw.ru/vzs/vzkernel.git after rh7-3.10.0-123.1.2.el7.ovz.4.8 ------> commit 21c8fbe7ffe311f2d830065273a475a61a3b3600 Author: Vladimir Davydov <vdavy...@parallels.com> Date: Tue Apr 28 16:48:56 2015 +0400
mm/tcache: change API to conform to tswap Since tswap cannot be built as a module, let us forbid building tcache as a module too. Now the API looks like: - To enable the cleancache backend, pass tcache.enabled=1 at boot - To activate/deactivate tcache, write Y/N to /sys/module/tcache/parameters/active https://jira.sw.ru/browse/PSBM-31915 Signed-off-by: Vladimir Davydov <vdavy...@parallels.com> --- config.OpenVZ | 2 +- mm/Kconfig | 2 +- mm/tcache.c | 18 +++++++++++------- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/config.OpenVZ b/config.OpenVZ index 3df8b50..7275b27 100644 --- a/config.OpenVZ +++ b/config.OpenVZ @@ -5289,7 +5289,7 @@ CONFIG_MPILIB_EXTRA=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_MEM_SOFT_DIRTY=y -CONFIG_TCACHE=m +CONFIG_TCACHE=y # # User resources diff --git a/mm/Kconfig b/mm/Kconfig index 7d17e35..d91c9a6 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -523,7 +523,7 @@ config MEM_SOFT_DIRTY See Documentation/vm/soft-dirty.txt for more details. config TCACHE - tristate "Transcendent file cache" + bool "Transcendent file cache" depends on CLEANCACHE default n help diff --git a/mm/tcache.c b/mm/tcache.c index 88bf82a..bc740f0 100644 --- a/mm/tcache.c +++ b/mm/tcache.c @@ -124,9 +124,15 @@ static struct tcache_lru *tcache_lru_node; * - tcache_lru->lock is independent */ -/* Enable/disable populating the cache */ +/* Enable/disable tcache backend (set at boot time) */ static bool tcache_enabled __read_mostly; +module_param_named(enabled, tcache_enabled, bool, 0444); + +/* Enable/disable populating the cache */ +static bool tcache_active __read_mostly; +module_param_named(active, tcache_active, bool, 0644); +/* Total number of pages cached */ static DEFINE_PER_CPU(long, nr_tcache_pages); static inline u32 key_hash(const struct cleancache_filekey *key) @@ -831,7 +837,7 @@ static void tcache_cleancache_put_page(int pool_id, struct tcache_node *node; struct page *cache_page; - if (!tcache_enabled) + if (!tcache_active) return; cache_page = tcache_alloc_page(); @@ -928,12 +934,7 @@ static int param_get_nr_pages(char *buffer, const struct kernel_param *kp) static struct kernel_param_ops param_ops_nr_pages = { .get = param_get_nr_pages, }; - -module_param_named(enabled, tcache_enabled, bool, 0644); -MODULE_PARM_DESC(enabled, "Activate/deactivate tcache"); - module_param_cb(nr_pages, ¶m_ops_nr_pages, NULL, 0444); -MODULE_PARM_DESC(nr_pages, "Number of pages cached"); static int __init tcache_lru_init(void) { @@ -955,6 +956,9 @@ static int __init tcache_init(void) { int err; + if (!tcache_enabled) + return 0; + err = tcache_lru_init(); if (err) goto out_fail; _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel