From: Zhi Yong Wu <zwu.kernel@gmail.com>
To: viro@zeniv.linux.org.uk
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>,
Chandra Seetharaman <sekharan@us.ibm.com>
Subject: [PATCH v6 06/11] VFS hot tracking: Add a /proc interface to make the interval tunable
Date: Wed, 6 Nov 2013 21:45:39 +0800 [thread overview]
Message-ID: <1383745544-391-7-git-send-email-zwu.kernel@gmail.com> (raw)
In-Reply-To: <1383745544-391-1-git-send-email-zwu.kernel@gmail.com>
From: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Add a /proc interface hot-update-interval under the dir
/proc/sys/fs/ in order to turn HOT_UPDATE_INTERVAL into
a tunable parameter.
Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
---
fs/hot_tracking.c | 6 ++++--
fs/hot_tracking.h | 2 --
include/linux/hot_tracking.h | 3 +++
kernel/sysctl.c | 7 +++++++
4 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index ac0cdda..7a9bd4f 100644
--- a/fs/hot_tracking.c
+++ b/fs/hot_tracking.c
@@ -15,6 +15,8 @@
#include <linux/sched.h>
#include "hot_tracking.h"
+int sysctl_hot_update_interval __read_mostly = 150;
+
/* kmem_cache pointers for slab caches */
static struct kmem_cache *hot_inode_item_cachep __read_mostly;
static struct kmem_cache *hot_range_item_cachep __read_mostly;
@@ -556,7 +558,7 @@ static void hot_update_worker(struct work_struct *work)
/* Instert next delayed work */
queue_delayed_work(root->update_wq, &root->update_work,
- msecs_to_jiffies(HOT_UPDATE_INTERVAL * MSEC_PER_SEC));
+ msecs_to_jiffies(sysctl_hot_update_interval * MSEC_PER_SEC));
}
/*
@@ -696,7 +698,7 @@ static struct hot_info *hot_tree_init(struct super_block *sb)
/* Initialize hot tracking wq and arm one delayed work */
INIT_DELAYED_WORK(&root->update_work, hot_update_worker);
queue_delayed_work(root->update_wq, &root->update_work,
- msecs_to_jiffies(HOT_UPDATE_INTERVAL * MSEC_PER_SEC));
+ msecs_to_jiffies(sysctl_hot_update_interval * MSEC_PER_SEC));
/* Register a shrinker callback */
root->hot_shrink.count_objects = hot_track_shrink_count;
diff --git a/fs/hot_tracking.h b/fs/hot_tracking.h
index 4a89fdb..6a6971e 100644
--- a/fs/hot_tracking.h
+++ b/fs/hot_tracking.h
@@ -15,8 +15,6 @@
#include <linux/workqueue.h>
#include <linux/hot_tracking.h>
-#define HOT_UPDATE_INTERVAL 150
-
/* size of sub-file ranges */
#define RANGE_BITS 20
#define FREQ_POWER 4
diff --git a/include/linux/hot_tracking.h b/include/linux/hot_tracking.h
index 0ee9ca2..43df1b9 100644
--- a/include/linux/hot_tracking.h
+++ b/include/linux/hot_tracking.h
@@ -85,6 +85,9 @@ struct hot_info {
struct shrinker hot_shrink;
};
+/* set how often to update temperatures (seconds) */
+extern int sysctl_hot_update_interval;
+
/*
* Hot data tracking ioctls:
*
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index b2f06f3..e0b062a 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1631,6 +1631,13 @@ static struct ctl_table fs_table[] = {
.proc_handler = &pipe_proc_fn,
.extra1 = &pipe_min_size,
},
+ {
+ .procname = "hot-update-interval",
+ .data = &sysctl_hot_update_interval,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
{ }
};
--
1.7.11.7
next prev parent reply other threads:[~2013-11-06 13:45 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-06 13:45 [PATCH v6 00/11] VFS hot tracking Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 01/11] VFS hot tracking: Define basic data structures and functions Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 02/11] VFS hot tracking: Track IO and record heat information Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 03/11] VFS hot tracking: Add a workqueue to move items between hot maps Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 04/11] VFS hot tracking: Add shrinker functionality to curtail memory usage Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 05/11] VFS hot tracking: Add an ioctl to get hot tracking information Zhi Yong Wu
2013-11-06 13:45 ` Zhi Yong Wu [this message]
2013-11-06 13:45 ` [PATCH v6 07/11] VFS hot tracking: Add a /proc interface to control memory usage Zhi Yong Wu
2013-11-11 22:15 ` Dave Hansen
2013-11-11 22:45 ` Zhi Yong Wu
2013-11-12 17:05 ` Dave Hansen
2013-11-12 20:38 ` Zhi Yong Wu
2013-11-12 21:02 ` Dave Hansen
2013-11-12 21:56 ` Zhi Yong Wu
2013-12-11 15:44 ` Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 08/11] VFS hot tracking: Add documentation Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 09/11] VFS hot tracking, btrfs: Add hot tracking support Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 10/11] VFS hot tracking, xfs: " Zhi Yong Wu
2013-11-06 13:45 ` [PATCH v6 11/11] MAINTAINERS: add the maintainers for VFS hot tracking Zhi Yong Wu
2013-11-11 15:43 ` [PATCH v6 00/11] " Zhi Yong Wu
2013-11-13 18:33 ` Zhi Yong Wu
2013-11-21 13:57 ` Zhi Yong Wu
2013-11-30 9:55 ` Zhi Yong Wu
2013-12-03 20:16 ` Zhi Yong Wu
2013-12-11 15:45 ` Zhi Yong Wu
2014-07-17 19:35 ` The VFS hot tracking debacle Daniel Poelzleithner
2014-07-17 21:34 ` Martin Steigerwald
2014-07-17 21:52 ` Dave Chinner
2014-07-18 8:25 ` Martin Steigerwald
2014-07-20 0:02 ` Dave Chinner
2014-07-25 8:43 ` Steven Whitehouse
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1383745544-391-7-git-send-email-zwu.kernel@gmail.com \
--to=zwu.kernel@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sekharan@us.ibm.com \
--cc=viro@zeniv.linux.org.uk \
--cc=wuzhy@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.