From: Zhi Yong Wu
Add a workqueue per superblock and a delayed_work
to run periodic work to update map info on each superblock.
Two arrays of map list are defined, one is for hot inode
items, and the other is for hot extent items.
The hot items in the RB-tree will be at first distilled
into one
From: Zhi Yong Wu
Register a shrinker to control the amount of memory that
is used in tracking hot regions. If we are throwing inodes
out of memory due to memory pressure, we most definitely are
going to need to reduce the amount of memory the tracking
code is using, even if it means losing usefu
From: Zhi Yong Wu
Add Documentation for VFS hot tracking feature
Signed-off-by: Chandra Seetharaman
Signed-off-by: Zhi Yong Wu
---
Documentation/filesystems/00-INDEX | 2 +
Documentation/filesystems/hot_tracking.txt | 207 +
2 files changed, 209 insertion
From: Zhi Yong Wu
This patch adds read/write code paths: include read_pages(),
do_writepages(), do_generic_file_read() and __blockdev_direct_IO()
to record heat information.
When real disk i/o for an inode is done, its own hot_inode_item will
be created or updated in the RB tree for the filesyst
From: Dave Chinner
Connect up the VFS hot tracking support so XFS filesystem
can make use of it.
Signed-off-by: Dave Chinner
Signed-off-by: Zhi Yong Wu
---
fs/xfs/xfs_mount.h | 1 +
fs/xfs/xfs_super.c | 18 ++
2 files changed, 19 insertions(+)
diff --git a/fs/xfs/xfs_mount.h
From: Zhi Yong Wu
FS_IOC_GET_HEAT_INFO: return a struct containing the various
metrics collected in hot_freq_data structs, and also return a
calculated data temperature based on those metrics.
Optionally, retrieve the temperature from the hot data hash list
instead of recalculating it.
Signed-o
From: Zhi Yong Wu
Introduce one new mount option '-o hot_track',
and add its parsing support.
Its usage looks like:
mount -o hot_track
mount -o nouser,hot_track
mount -o nouser,hot_track,loop
mount -o hot_track,nouser
Reviewed-by: David Sterba
Signed-off-by: Chandra Seetharaman
Si
From: Zhi Yong Wu
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
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 7 +--
fs/hot_tracking.h| 2 --
From: Zhi Yong Wu
Introduce a /proc interface hot-mem-high-thresh and
to cap the memory which is consumed by hot_inode_item
and hot_range_item, and they will be in the unit of
1M bytes.
Signed-off-by: Chandra Seetharaman
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 31 +++
From: Zhi Yong Wu
The patchset is trying to introduce hot tracking function in
VFS layer, which will keep track of real disk I/O in memory.
By it, you will easily know more details about disk I/O, and
then detect where disk I/O hot spots are. Also, specific FS
can take use of it to do accurate
From: Zhi Yong Wu
This patch includes the basic data structure and functions needed for
VFS hot tracking.
It adds hot_inode_tree struct to keep track of frequently accessed
files, and is keyed by {inode, offset}. Trees contain hot_inode_items
representing those files and hot_range_items represen
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
include/linux/rbtree_augmented.h | 3 ++-
lib/rbtree.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
index fea49b5..7d19770 100644
-
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
include/linux/rbtree_augmented.h | 3 ++-
lib/rbtree.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
index fea49b5..7d19770 100644
-
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
include/linux/rbtree_augmented.h | 3 ++-
lib/rbtree.c | 5 +++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
index fea49b5..7d19770 100644
From: Zhi Yong Wu
Initialize csum variable to fix the build warning.
drivers/scsi/scsi_debug.c: In function ‘dif_verify’:
drivers/scsi/scsi_debug.c:1755:3: warning: ‘csum’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
LD drivers/built-in.o
CHK include/generat
From: Zhi Yong Wu
It can take a long time to run log recovery operation because it is
single threaded and is bound by read latency. We can find that it took
most of the time to wait for the read IO to occur, so if one object
readahead is introduced to log recovery, it will obviously reduce the
From: Zhi Yong Wu
It can take a long time to run log recovery operation because it is
single threaded and is bound by read latency. We can find that it took
most of the time to wait for the read IO to occur, so if one object
readahead is introduced to log recovery, it will obviously reduce the
From: Zhi Yong Wu
It can take a long time to run log recovery operation because it is
single threaded and is bound by read latency. We can find that it took
most of the time to wait for the read IO to occur, so if one object
readahead is introduced to log recovery, it will obviously reduce the
From: Zhi Yong Wu
When running the compilebench, one assertion failure was found.
This related line of code was introduced by commit 5f6bed76c0.
commit 5f6bed76c0c85cb4d04885a5de00b629deee550b
Author: Dave Chinner
Date: Thu Jun 27 16:04:52 2013 +1000
xfs: Introduce an ordered buffer it
From: Zhi Yong Wu
It can take a long time to run log recovery operation because it is
single threaded and is bound by read latency. We can find that it took
most of the time to wait for the read IO to occur, so if one object
readahead is introduced to log recovery, it will obviously reduce the
From: Zhi Yong Wu
Add one private thread for hot relocation. It will check
if there're some extents which is hotter than the threshold
and queue them at first, if no, it will return and wait for
its next turn; otherwise, it will check if nonrotating disk
ratio is beyond its usage threshold, if
From: Zhi Yong Wu
The patchset as RFC is sent out mainly to see if its design
goes in the correct development direction.
When working on this feature, i am trying to change as less
the existing btrfs code as possible. After V0 was sent out,
i carefully checked the patchset for speed profile,
From: Zhi Yong Wu
Add three proc interfaces hot-reloc-interval, hot-reloc-threshold,
and hot-reloc-max-items under the dir /proc/sys/fs/ in order to
turn HOT_RELOC_INTERVAL, HOT_RELOC_THRESHOLD, and HOT_RELOC_MAX_ITEMS
into be tunable.
Signed-off-by: Zhi Yong Wu
---
fs/btrfs/hot_relocate.c |
From: Zhi Yong Wu
Introduce one new block group BTRFS_BLOCK_GROUP_DATA_NONROT,
which is used to differentiate if the block space is reserved
and allocated from one rotating disk or nonrotating disk.
Signed-off-by: Zhi Yong Wu
---
fs/btrfs/ctree.h| 33 ---
fs/btrfs/ext
From: Zhi Yong Wu
Add one list_head field 'reloc_list' to accommodate
hot relocation support.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 1 +
include/linux/hot_tracking.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index 46d2
From: Zhi Yong Wu
Add one new mount option '-o hot_move' for hot
relocation support. When hot relocation is enabled,
hot tracking will be enabled automatically.
Its usage looks like:
mount -o hot_move
mount -o nouser,hot_move
mount -o nouser,hot_move,loop
mount -o hot_move,nou
From: Zhi Yong Wu
Register a shrinker to control the amount of memory that
is used in tracking hot regions. If we are throwing inodes
out of memory due to memory pressure, we most definitely are
going to need to reduce the amount of memory the tracking
code is using, even if it means losing use
From: Zhi Yong Wu
Introduce one ability to enable that specific FS
can register its own hot tracking functions.
Signed-off-by: Chandra Seetharaman
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 32 ++--
fs/hot_tracking.h| 19 +++
From: Zhi Yong Wu
Add Documentation for VFS hot tracking feature
Signed-off-by: Chandra Seetharaman
Signed-off-by: Zhi Yong Wu
---
Documentation/filesystems/00-INDEX | 2 +
Documentation/filesystems/hot_tracking.txt | 256 +
2 files changed, 258 ins
From: Zhi Yong Wu
Add two proc interfaces hot-age-interval and hot-update-interval
under the dir /proc/sys/fs/ in order to turn HOT_AGE_INTERVAL and
HOT_UPDATE_INTERVAL into be tunable.
Signed-off-by: Chandra Seetharaman
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 12 +
From: Zhi Yong Wu
Introduce one new mount option '-o hot_track',
and add its parsing support.
Its usage looks like:
mount -o hot_track
mount -o nouser,hot_track
mount -o nouser,hot_track,loop
mount -o hot_track,nouser
Reviewed-by: David Sterba
Signed-off-by: Chandra Seetharama
From: Zhi Yong Wu
FS_IOC_GET_HEAT_INFO: return a struct containing the various
metrics collected in hot_freq_data structs, and also return a
calculated data temperature based on those metrics. Optionally,
retrieve the temperature from the hot data hash list instead of
recalculating it.
Signed-
From: Zhi Yong Wu
The patch will introduce one set of rcu interface for seq_list.
Signed-off-by: Chandra Seetharaman
Signed-off-by: Zhi Yong Wu
---
fs/seq_file.c| 37 +
include/linux/seq_file.h | 7 +++
2 files changed, 44 insertions(+)
From: Zhi Yong Wu
Add a directory '' in /sys/kernel/debug/hot_track/
for each volume that contains four files which are 'inode_stat',
'extent_stat', 'inode_spot', and 'extent_spot'.
Signed-off-by: Chandra Seetharaman
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 455
From: Zhi Yong Wu
This rcu macro for list will be used in seq_list
rcu interfaces.
Signed-off-by: Chandra Seetharaman
Signed-off-by: Zhi Yong Wu
---
include/linux/rculist.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/include/linux/rculist.h b/include/linux/rculist.h
index 8089e
From: Zhi Yong Wu
Add a workqueue per superblock and a delayed_work
to run periodic work to update map info on each superblock.
Two arrays of map list are defined, one is for hot inode
items, and the other is for hot extent items.
The hot items in the RB-tree will be at first distilled
into
From: Zhi Yong Wu
Add i/o freq tracking hooks in real read/write code paths
which include read_pages(), do_writepages(), do_generic_file_read(),
and __blockdev_direct_IO().
Currently whole FS has one RB tree to track i/o freqs for
all inodes which had real disk i/o, while every inode has its
From: Zhi Yong Wu
One root structure hot_info is defined, is hooked
up in super_block, and will be used to hold radix tree
root, hash list root and some other information, etc.
Adds hot_inode_tree struct to keep track of
frequently accessed files, and be keyed by {inode, offset}.
Trees contai
From: Zhi Yong Wu
The patchset is trying to introduce hot tracking function in
VFS layer, which will keep track of real disk I/O in memory.
By it, you will easily know more details about disk I/O, and
then detect where disk I/O hot spots are. Also, specific FS
can take use of it to do accurate
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
man/btrfs.8.in | 37 +
1 file changed, 37 insertions(+)
diff --git a/man/btrfs.8.in b/man/btrfs.8.in
index 94f4ffe..54de60e 100644
--- a/man/btrfs.8.in
+++ b/man/btrfs.8.in
@@ -60,6 +60,18 @@ btrfs \- control
From: Zhi Yong Wu
In "[ \fB\-f\fP\fI ]", the "\fI" will result in the front half "["of
"[ -f ]" doesn't the back half "]"; When you issue the command
"man mkfs.btrfs", you will see the difference.
Signed-off-by: Zhi Yong Wu
---
man/mkfs.btrfs.8.in | 2 +-
1 file changed, 1 insertion(+), 1 de
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/btrfs/tree-log.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 451fad9..83d4e1d 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -3614,8 +3614,6 @@ static int btrfs_log_inode(
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/btrfs/file-item.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index ec16020..1ba85b4 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -356,11 +356,8 @@ i
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 49 +
fs/hot_tracking.h |6 ++
2 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index 6a5ef53..45d0164 100644
--- a
From: Zhi Yong Wu
Adds two map arrays which contains
a lot of list and is used to efficiently
look up the data temperature of a file or its
ranges.
In each list of map arrays, the array node
will keep track of temperature info.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c|
From: Zhi Yong Wu
Introduce one way to enable that specific FS
can inject its own hot tracking type.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 43 +++--
fs/hot_tracking.h|1 -
include/linux/fs.h |1 +
inc
From: Zhi Yong Wu
Add a per-superblock workqueue and a delayed_work
to run periodic work to update map info on each superblock.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 85 ++
fs/hot_tracking.h|3 +
include/linux/
From: Zhi Yong Wu
Add one doc for VFS hot tracking feature
Signed-off-by: Zhi Yong Wu
---
Documentation/filesystems/00-INDEX |2 +
Documentation/filesystems/hot_tracking.txt | 255
2 files changed, 257 insertions(+), 0 deletions(-)
create mode 10064
From: Zhi Yong Wu
Add two proc files hot-kick-time and hot-update-delay
under the dir /proc/sys/fs/ in order to turn
TIME_TO_KICK and HEAT_UPDATE_DELAY into be tunable.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 12 +---
fs/hot_tracking.h|9 --
From: Zhi Yong Wu
Add a /sys/kernel/debug/hot_track// directory for each
volume that contains two files. The first, `inode_stats', contains the
heat information for inodes that have been brought into the hot data map
structures. The second, `range_stats', contains similar information for
subfil
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 74 +
fs/hot_tracking.h | 21 +++
2 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index 5f164c8..ba4decf
From: Zhi Yong Wu
FS_IOC_GET_HEAT_INFO: return a struct containing the various
metrics collected in hot_freq_data structs, and also return a
calculated data temperature based on those metrics. Optionally, retrieve
the temperature from the hot data hash list instead of recalculating it.
Signed-
From: Zhi Yong Wu
Introduce one new mount option '-o hot_track',
and add its parsing support.
Its usage looks like:
mount -o hot_track
mount -o nouser,hot_track
mount -o nouser,hot_track,loop
mount -o hot_track,nouser
Reviewed-by: David Sterba
Signed-off-by: Zhi Yong Wu
---
From: Zhi Yong Wu
Register a shrinker to control the amount of
memory that is used in tracking hot regions - if we are throwing
inodes out of memory due to memory pressure, we most definitely are
going to need to reduce the amount of memory the tracking code is
using, even if it means losing us
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 67 +
1 files changed, 67 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index ba4decf..6a5ef53 100644
--- a/fs/hot_tracking.c
+++ b/fs/h
From: Zhi Yong Wu
Add initialization function to create some
key data structures when hot tracking is enabled;
Clean up them when hot tracking is disabled
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 117 ++
include/linux/fs.h
From: Zhi Yong Wu
Miscellaneous features that implement hot data tracking
and generally make the hot data functions a bit more friendly.
Signed-off-by: Zhi Yong Wu
---
fs/direct-io.c |6 ++
mm/filemap.c|6 ++
mm/page-writeback.c | 12
mm/readahead.
From: Zhi Yong Wu
Add some util helpers to update access frequencies
for one file or its range.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 178 ++
fs/hot_tracking.h|5 +
include/linux/hot_tracking.h |4 +
3 files
From: Zhi Yong Wu
HI, guys,
This patchset has been done scalability or performance tests
by fs_mark, ffsb and compilebench.
I have done the perf testing on Linux 3.7.0-rc8+ with Intel(R) Core(TM)
i7-3770 CPU @ 3.40GHz with 8 CPUs, 16G ram and 260G disk.
Any comments or ideas are appreciat
From: Zhi Yong Wu
One root structure hot_info is defined, is hooked
up in super_block, and will be used to hold radix tree
root, hash list root and some other information, etc.
Adds hot_inode_tree struct to keep track of
frequently accessed files, and be keyed by {inode, offset}.
Trees contai
From: Zhi Yong Wu
The new type 'vxlan' is added in the output of "ip link help"
Signed-off-by: Zhi Yong Wu
---
ip/iplink.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/ip/iplink.c b/ip/iplink.c
index d73c705..5ff8f85 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@
From: Zhi Yong Wu
In ext4_ext_in_cache(), some codes are redundant,
this patch will remove them.
Reviewed-by: Zheng Liu
Signed-off-by: Zhi Yong Wu
---
fs/ext4/extents.c |2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 7011
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/ext4/extents.c |2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 7011ac9..43ec639 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -2156,7 +2156,6 @@ ext4_ext_in_cach
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 67 +
1 files changed, 67 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index 3cb14e2..446fbd4 100644
--- a/fs/hot_tracking.c
+++ b/fs/h
From: Zhi Yong Wu
Adds two map arrays which contains
a lot of list and is used to efficiently
look up the data temperature of a file or its
ranges.
In each list of map arrays, the array node
will keep track of temperature info.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c|
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 49 +
fs/hot_tracking.h |6 ++
2 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index 446fbd4..304028d 100644
--- a
From: Zhi Yong Wu
One root structure hot_info is defined, is hooked
up in super_block, and will be used to hold radix tree
root, hash list root and some other information, etc.
Adds hot_inode_tree struct to keep track of
frequently accessed files, and be keyed by {inode, offset}.
Trees contai
From: Zhi Yong Wu
Register a shrinker to control the amount of
memory that is used in tracking hot regions - if we are throwing
inodes out of memory due to memory pressure, we most definitely are
going to need to reduce the amount of memory the tracking code is
using, even if it means losing us
From: Zhi Yong Wu
Add a /sys/kernel/debug/hot_track// directory for each
volume that contains two files. The first, `inode_stats', contains the
heat information for inodes that have been brought into the hot data map
structures. The second, `range_stats', contains similar information for
subfil
From: Zhi Yong Wu
Add one doc for VFS hot tracking feature
Signed-off-by: Zhi Yong Wu
---
Documentation/filesystems/00-INDEX |2 +
Documentation/filesystems/hot_tracking.txt | 263
2 files changed, 265 insertions(+), 0 deletions(-)
create mode 10064
From: Zhi Yong Wu
Add two proc files hot-kick-time and hot-update-delay
under the dir /proc/sys/fs/ in order to turn
TIME_TO_KICK and HEAT_UPDATE_DELAY into be tunable.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 12 +---
fs/hot_tracking.h|9 --
From: Zhi Yong Wu
Introduce one new mount option '-o hot_track',
and add its parsing support.
Its usage looks like:
mount -o hot_track
mount -o nouser,hot_track
mount -o nouser,hot_track,loop
mount -o hot_track,nouser
Reviewed-by: David Sterba
Signed-off-by: Zhi Yong Wu
---
From: Zhi Yong Wu
Introduce one way to enable that specific FS
can inject its own hot tracking type.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 43 +++--
fs/hot_tracking.h|1 -
include/linux/fs.h |1 +
inc
From: Zhi Yong Wu
FS_IOC_GET_HEAT_INFO: return a struct containing the various
metrics collected in hot_freq_data structs, and also return a
calculated data temperature based on those metrics. Optionally, retrieve
the temperature from the hot data hash list instead of recalculating it.
Signed-
From: Zhi Yong Wu
Add a per-superblock workqueue and a delayed_work
to run periodic work to update map info on each superblock.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 81 ++
fs/hot_tracking.h|3 ++
include/linux
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 74 +
fs/hot_tracking.h | 21 +++
2 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index bd2c353..3cb14e2
From: Zhi Yong Wu
Miscellaneous features that implement hot data tracking
and generally make the hot data functions a bit more friendly.
Signed-off-by: Zhi Yong Wu
---
fs/direct-io.c |6 ++
mm/filemap.c|6 ++
mm/page-writeback.c | 12
mm/readahead.
From: Zhi Yong Wu
Add some util helpers to update access frequencies
for one file or its range.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 178 ++
fs/hot_tracking.h|5 +
include/linux/hot_tracking.h |4 +
3 files
From: Zhi Yong Wu
Add initialization function to create some
key data structures when hot tracking is enabled;
Clean up them when hot tracking is disabled
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 115 ++
include/linux/fs.h
From: Zhi Yong Wu
HI, guys,
Any comments or ideas are appreciated, thanks.
NOTE:
The patchset can be obtained via my kernel dev git on github:
git://github.com/wuzhy/kernel.git hot_tracking
If you're interested, you can also review them via
https://github.com/wuzhy/kernel/commits/hot_tra
From: Zhi Yong Wu
One root structure hot_info is defined, is hooked
up in super_block, and will be used to hold radix tree
root, hash list root and some other information, etc.
Adds hot_inode_tree struct to keep track of
frequently accessed files, and be keyed by {inode, offset}.
Trees contai
From: Zhi Yong Wu
Miscellaneous features that implement hot data tracking
and generally make the hot data functions a bit more friendly.
Signed-off-by: Zhi Yong Wu
---
fs/direct-io.c |6 ++
mm/filemap.c|6 ++
mm/page-writeback.c | 12
mm/readahead.
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 67 +
fs/hot_tracking.h | 21
2 files changed, 88 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index 3fd6255..4b143a
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 56 +
fs/hot_tracking.h |6 +
2 files changed, 62 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index 4b143a4..e85eaa6 100644
--
From: Zhi Yong Wu
Introduce one way to enable that specific FS
can inject its own hot tracking type.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 43 +++--
fs/hot_tracking.h|1 -
include/linux/fs.h |1 +
inc
From: Zhi Yong Wu
Add a per-superblock workqueue and a delayed_work
to run periodic work to update map info on each superblock.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 85 ++
fs/hot_tracking.h|3 +
include/linux/
From: Zhi Yong Wu
Add a /sys/kernel/debug/hot_track// directory for each
volume that contains two files. The first, `inode_stats', contains the
heat information for inodes that have been brought into the hot data map
structures. The second, `range_stats', contains similar information for
subfil
From: Zhi Yong Wu
Add two proc files hot-kick-time and hot-update-delay
under the dir /proc/sys/fs/ in order to turn
TIME_TO_KICK and HEAT_UPDATE_DELAY into be tunable.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 12 +---
fs/hot_tracking.h|9 --
From: Dave Chinner
Connect up the VFS hot tracking support
so XFS filesystems can make use of it.
Signed-off-by: Dave Chinner
---
fs/xfs/xfs_mount.h |1 +
fs/xfs/xfs_super.c | 16
2 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/fs/xfs/xfs_mount.h b/fs/x
From: Zhi Yong Wu
Add one doc for VFS hot tracking feature
Signed-off-by: Zhi Yong Wu
---
Documentation/filesystems/00-INDEX |2 +
Documentation/filesystems/hot_tracking.txt | 263
2 files changed, 265 insertions(+), 0 deletions(-)
create mode 10064
From: Zhi Yong Wu
HI, guys,
Any comments or ideas are appreciated, thanks.
NOTE:
The patchset can be obtained via my kernel dev git on github:
g...@github.com:wuzhy/kernel.git hot_tracking
If you're interested, you can also review them via
https://github.com/wuzhy/kernel/commits/hot_trac
From: Zheng Liu
Define a new mount option to add VFS hot
tracking support in order to use it in ext4.
CC: Zhi Yong Wu
Signed-off-by: Zheng Liu
---
fs/ext4/ext4.h |3 +++
fs/ext4/super.c | 13 -
2 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/fs/ext4/ext4.h
From: Zhi Yong Wu
Introduce one new mount option '-o hot_track',
and add its parsing support.
Its usage looks like:
mount -o hot_track
mount -o nouser,hot_track
mount -o nouser,hot_track,loop
mount -o hot_track,nouser
Reviewed-by: David Sterba
Signed-off-by: Zhi Yong Wu
---
From: Zhi Yong Wu
Register a shrinker to control the amount of
memory that is used in tracking hot regions - if we are throwing
inodes out of memory due to memory pressure, we most definitely are
going to need to reduce the amount of memory the tracking code is
using, even if it means losing us
From: Zhi Yong Wu
FS_IOC_GET_HEAT_INFO: return a struct containing the various
metrics collected in hot_freq_data structs, and also return a
calculated data temperature based on those metrics. Optionally, retrieve
the temperature from the hot data hash list instead of recalculating it.
Signed-
From: Zhi Yong Wu
Adds two map arrays which contains
a lot of list and is used to efficiently
look up the data temperature of a file or its
ranges.
In each list of map arrays, the array node
will keep track of temperature info.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c|
From: Zhi Yong Wu
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c | 74 +
1 files changed, 74 insertions(+), 0 deletions(-)
diff --git a/fs/hot_tracking.c b/fs/hot_tracking.c
index 7101b73..3fd6255 100644
--- a/fs/hot_tracking.c
+++ b/fs/h
From: Zhi Yong Wu
Add some util helpers to update access frequencies
for one file or its range.
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 174 ++
fs/hot_tracking.h|5 +
include/linux/hot_tracking.h |4 +
3 files
From: Zhi Yong Wu
Add initialization function to create some
key data structures when hot tracking is enabled;
Clean up them when hot tracking is disabled
Signed-off-by: Zhi Yong Wu
---
fs/hot_tracking.c| 124 ++
include/linux/fs.h
From: Zhi Yong Wu
One root structure hot_info is defined, is hooked
up in super_block, and will be used to hold radix tree
root, hash list root and some other information, etc.
Adds hot_inode_tree struct to keep track of
frequently accessed files, and be keyed by {inode, offset}.
Trees contai
1 - 100 of 187 matches
Mail list logo