[PATCH v2 10/12] VFS hot tracking, btrfs: add hot tracking support

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[PATCH v2 11/12] VFS hot tracking: add documentation

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add Documentation for VFS hot tracking feature Signed-off-by: Chandra Seetharaman sekha...@us.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- Documentation/filesystems/00-INDEX | 2 +

[PATCH v2 12/12] VFS hot tracking: add fs hot type support

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Introduce one ability to enable that specific FS can register its own hot tracking functions. Signed-off-by: Chandra Seetharaman sekha...@us.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 32

[PATCH v2 00/12] VFS hot tracking

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[PATCH v2 01/12] VFS hot tracking: introduce some data structures

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[PATCH v2 02/12] VFS hot tracking: add i/o freq tracking hooks

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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,

[PATCH v2 03/12] VFS hot tracking: add one workqueue to update hot map

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[PATCH v2 05/12] VFS hot tracking, rcu: introduce one rcu macro for list

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com This rcu macro for list will be used in seq_list rcu interfaces. Signed-off-by: Chandra Seetharaman sekha...@us.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- include/linux/rculist.h | 5 + 1 file changed, 5 insertions(+) diff

[PATCH v2 06/12] VFS hot tracking, seq_file: introduce one set of rcu seq_list interfaces

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com The patch will introduce one set of rcu interface for seq_list. Signed-off-by: Chandra Seetharaman sekha...@us.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/seq_file.c| 37 +

[PATCH v2 07/12] VFS hot tracking: add debugfs support

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add a directory 'dev_name' 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 sekha...@us.ibm.com Signed-off-by: Zhi Yong

[PATCH v2 08/12] VFS hot tracking: add one ioctl interface

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[PATCH v2 09/12] VFS hot tracking, procfs: add two proc interfaces

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 sekha...@us.ibm.com Signed-off-by: Zhi Yong Wu

[PATCH v2 04/12] VFS hot tracking: register one shrinker

2013-05-13 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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,

[RFC PATCH v1 1/5] BTRFS hot reloc, vfs: add one list_head field

2013-05-20 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add one list_head field 'reloc_list' to accommodate hot relocation support. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 1 + include/linux/hot_tracking.h | 1 + 2 files changed, 2 insertions(+) diff --git

[RFC PATCH v1 2/5] BTRFS hot reloc: add one new block group

2013-05-20 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com ---

[RFC PATCH v1 5/5] BTRFS hot reloc: add hot relocation support

2013-05-20 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC PATCH v1 4/5] BTRFS hot reloc, procfs: add three proc interfaces

2013-05-20 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC PATCH v1 0/5] BTRFS hot relocation support

2013-05-20 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC PATCH v1 3/5] BTRFS hot reloc: add one hot reloc thread

2013-05-20 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC PATCH v2 5/5] BTRFS hot reloc: add hot relocation support

2013-06-21 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC PATCH v2 0/5] BTRFS hot relocation support

2013-06-21 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com This patchset can work well with the patchset v3 for VFS hot tracking in RAID single mode now. 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

[RFC PATCH v2 1/5] BTRFS hot reloc, vfs: add one list_head field

2013-06-21 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add one list_head field 'reloc_list' to accommodate hot relocation support. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 1 + include/linux/hot_tracking.h | 1 + 2 files changed, 2 insertions(+) diff --git

[RFC PATCH v2 3/5] BTRFS hot reloc: add one hot reloc thread

2013-06-21 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC PATCH v2 2/5] BTRFS hot reloc: add one new block group

2013-06-21 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com ---

[RFC PATCH v2 4/5] BTRFS hot reloc, procfs: add three proc interfaces

2013-06-21 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[PATCH] btrfs-progs: rework the code logic

2012-07-05 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- extent-cache.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extent-cache.c b/extent-cache.c index 3dd6434..a5084ee 100644 --- a/extent-cache.c +++ b/extent-cache.c @@

[RFC v2 00/10] vfs: hot data tracking

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com NOTE: The patchset is currently post out mainly to make sure it is going in the correct direction and hope to get some helpful comments from other guys. For more infomation, please check hot_tracking.txt in Documentation TODO List: 1.) Need to do

[RFC v2 01/10] vfs: introduce private rb structures

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com One root structure hot_info is defined, is hooked up in super_block, and will be used to hold rb trees 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

[RFC v2 08/10] vfs: add 3 new ioctl interfaces

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com FS_IOC_GET_HEAT_INFO: return a struct containing the various metrics collected in btrfs_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

[RFC v2 07/10] vfs: fork one kthread to update data temperature

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Fork and run one kernel kthread to calculate that temperature based on some metrics kept in custom frequency data structs, and store the info in the hash table. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c|

[RFC v2 09/10] vfs: add debugfs support

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add a /sys/kernel/debug/hot_track/device_name/ directory for each volume that contains two files. The first, `inode_data', contains the heat information for inodes that have been brought into the hot data map structures. The second, `range_data',

[RFC v2 06/10] vfs: enable hot data tracking

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Miscellaneous features that implement hot data tracking and generally make the hot data functions a bit more friendly. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/direct-io.c | 10 ++

[RFC v2 05/10] vfs: introduce one hash table

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Adds a hash table structure which contains a lot of hash list and is used to efficiently look up the data temperature of a file or its ranges. In each hash list of hash table, the hash node will keep track of temperature info. Signed-off-by: Zhi

[RFC v2 03/10] vfs: add one new mount option '-o hottrack'

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Introduce one new mount option '-o hottrack', and add its parsing support. Its usage looks like: mount -o hottrack mount -o nouser,hottrack mount -o nouser,hottrack,loop mount -o hottrack,nouser Signed-off-by: Zhi Yong Wu

[RFC v2 04/10] vfs: add init and exit support

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com --- fs/hot_tracking.c | 60

[RFC v2 10/10] vfs: add documentation

2012-09-23 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- Documentation/filesystems/hot_tracking.txt | 106 1 files changed, 106 insertions(+), 0 deletions(-) create mode 100644 Documentation/filesystems/hot_tracking.txt

[PATCH v2 2/2] btrfs-progs: Fix up memory leakage

2012-09-24 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Some code pathes forget to free memory on exit. Changelog from v1: Fix the variable is used uncorrectly. [Ram Pai] Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- cmds-filesystem.c |6 -- 1 files changed, 4 insertions(+), 2

[resend][PATCH v2 0/2] btrfs-progs: some bugfixes

2012-09-24 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Some misc bugs are found when i work on other tasks. Now send out them for interview, thanks. Zhi Yong Wu (2): btrfs-progs: Close file descriptor on exit btrfs-progs: Fix up memory leakage cmds-filesystem.c | 16 1 files

[PATCH v2 1/2] btrfs-progs: Close file descriptor on exit

2012-09-24 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Need to close fd on exit. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- cmds-filesystem.c | 10 -- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cmds-filesystem.c b/cmds-filesystem.c index b1457de..e62c4fd 100644

[RFC v3 01/13] btrfs: add one new mount option '-o hot_track'

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 Signed-off-by: Zhi Yong Wu

[RFC v3 06/13] vfs: add hooks to enable hot data tracking

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Miscellaneous features that implement hot data tracking and generally make the hot data functions a bit more friendly. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/direct-io.c |8 fs/hot_tracking.h |5 +

[RFC v3 08/13] vfs: add aging function for old map info

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c | 57 + fs/hot_tracking.h |6 + 2 files changed, 63 insertions(+), 0 deletions(-) diff --git a/fs/hot_tracking.c

[RFC v3 10/13] vfs: register one memory shrinker

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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,

[RFC v3 12/13] vfs: add debugfs support

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add a /sys/kernel/debug/hot_track/device_name/ directory for each volume that contains two files. The first, `inode_data', contains the heat information for inodes that have been brought into the hot data map structures. The second, `range_data',

[RFC v3 13/13] vfs: add documentation

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- Documentation/filesystems/00-INDEX |2 + Documentation/filesystems/hot_tracking.txt | 165 2 files changed, 167 insertions(+), 0 deletions(-) create mode

[RFC v3 07/13] vfs: add function for updating map arrays

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c | 153 + fs/hot_tracking.h | 60 + 2 files changed, 213 insertions(+), 0 deletions(-) diff --git

[RFC v3 09/13] vfs: add one wq to update map info periodically

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add a per-superblock workqueue and a work_struct to run periodic work to update map info on each superblock. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 94 ++

[RFC v3 04/13] vfs: add function for collecting raw access info

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add some utils helpers to update access frequencies for one file or its range. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 190 ++ fs/hot_tracking.h| 12

[RFC v3 02/13] vfs: introduce private radix tree structures

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC v3 03/13] vfs: Initialize and free main data structures

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com --- fs/btrfs/super.c |8 +++

[RFC v3 05/13] vfs: add two map arrays

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC v3 00/13] vfs: hot data tracking

2012-10-10 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com NOTE: The patchset is currently post out mainly to make sure it is going in the correct direction and hope to get some helpful comments from other guys. For more infomation, please check hot_tracking.txt in Documentation TODO List: 1.) Need to do

[RFC v4 00/15] vfs: hot data tracking

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 can review them via https://github.com/wuzhy/kernel/commits/hot_tracking For more infomation,

[RFC v4 07/15] vfs,hot_track: add the aging function

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c | 56 + fs/hot_tracking.h |6 + 2 files changed, 62 insertions(+), 0 deletions(-) diff --git a/fs/hot_tracking.c

[RFC v4 06/15] vfs,hot_track: add the function for updating map arrays

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c | 164 + fs/hot_tracking.h | 54 + 2 files changed, 218 insertions(+), 0 deletions(-) diff --git

[RFC v4 04/15] vfs,hot_track: add two map arrays

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC v4 10/15] vfs,hot_track: add one new ioctl interface

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC v4 15/15] vfs,hot_track: add the documentation

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- Documentation/filesystems/00-INDEX |2 + Documentation/filesystems/hot_tracking.txt | 164 2 files changed, 166 insertions(+), 0 deletions(-) create mode

[RFC v4 14/15] xfs: add hot tracking support

2012-10-25 Thread zwu . kernel
From: Dave Chinner dchin...@redhat.com Connect up the VFS hot tracking support so XFS filesystems can make use of it. Signed-off-by: Dave Chinner dchin...@redhat.com --- fs/xfs/xfs_mount.h |1 + fs/xfs/xfs_super.c | 16 2 files changed, 17 insertions(+), 0 deletions(-)

[RFC v4 13/15] btrfs: add hot tracking support

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 Signed-off-by: Zhi Yong Wu

[RFC v4 12/15] vfs,hot_track: turn some Micro into be tunable

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Turn TIME_TO_KICK and HEAT_UPDATE_DELAY into be tunable via /proc/sys/fs/hot-kick-time and /proc/sys/fs/hot-update-delay. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 12 +--- fs/hot_tracking.h

[RFC v4 03/15] vfs,hot_track: add the function for collecting I/O frequency

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add some utils helpers to update access frequencies for one file or its range. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 191 ++ fs/hot_tracking.h|9

[RFC v4 01/15] vfs,hot_track: introduce private radix tree structures

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC v4 09/15] vfs,hot_track: register one memory shrinker

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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,

[RFC v4 11/15] vfs,hot_track: add debugfs support

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add a /sys/kernel/debug/hot_track/device_name/ 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',

[RFC v4 05/15] vfs,hot_track: add hooks to enable hot data tracking

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Miscellaneous features that implement hot data tracking and generally make the hot data functions a bit more friendly. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/direct-io.c |6 ++ mm/filemap.c|6 ++

[RFC v4 02/15] vfs,hot_track: initialize and free key data structures

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 125

[RFC v4 08/15] vfs,hot_track: add one work queue

2012-10-25 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add a per-superblock workqueue and a work_struct to run periodic work to update map info on each superblock. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 85 ++

[RFC v4+ hot_track 16/19] btrfs: add hot tracking support

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 Signed-off-by: Zhi Yong Wu

[RFC v4+ hot_track 18/19] ext4: add hot tracking support

2012-10-28 Thread zwu . kernel
From: Zheng Liu wenqing...@taobao.com Define a new mount option to add VFS hot tracking support in order to use it in ext4. CC: Zhi Yong Wu zwu.ker...@gmail.com Signed-off-by: Zheng Liu wenqing...@taobao.com --- fs/ext4/ext4.h |3 +++ fs/ext4/super.c | 13 - 2 files

[RFC v4+ hot_track 19/19] vfs: add documentation

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add one doc for VFS hot tracking feature Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- Documentation/filesystems/00-INDEX |2 + Documentation/filesystems/hot_tracking.txt | 262 2 files changed, 264

[RFC v4+ hot_track 15/19] sysfs: add two hot_track proc files

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 12

[RFC v4+ hot_track 13/19] debugfs: introduce one function

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com The debugfs function is used to get expected dentry. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/debugfs/inode.c | 26 ++ include/linux/debugfs.h |9 + 2 files changed, 35 insertions(+), 0

[RFC v4+ hot_track 17/19] xfs: add hot tracking support

2012-10-28 Thread zwu . kernel
From: Dave Chinner dchin...@redhat.com Connect up the VFS hot tracking support so XFS filesystems can make use of it. Signed-off-by: Dave Chinner dchin...@redhat.com --- fs/xfs/xfs_mount.h |1 + fs/xfs/xfs_super.c | 16 2 files changed, 17 insertions(+), 0 deletions(-)

[RFC v4+ hot_track 14/19] vfs: add debugfs support

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add a /sys/kernel/debug/hot_track/device_name/ 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',

[RFC v4+ hot_track 04/19] vfs: add two map arrays

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC v4+ hot_track 06/19] vfs: add temp calculation function

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- 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

[RFC v4+ hot_track 07/19] vfs: add map info update function

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c | 66 + fs/hot_tracking.h | 21 + 2 files changed, 87 insertions(+), 0 deletions(-) diff --git

[RFC v4+ hot_track 12/19] vfs: add one ioctl interface

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC v4+ hot_track 09/19] vfs: add one work queue

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 85 ++

[RFC v4+ hot_track 10/19] vfs: introduce hot func register framework

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Introduce one framwork to enable that specific FS can register its own hot tracking functions. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 78 ++

[RFC v4+ hot_track 05/19] vfs: add hooks to enable hot tracking

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Miscellaneous features that implement hot data tracking and generally make the hot data functions a bit more friendly. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/direct-io.c |6 ++ mm/filemap.c|6 ++

[RFC v4+ hot_track 03/19] vfs: add I/O frequency update function

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add some util helpers to update access frequencies for one file or its range. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 179 ++ fs/hot_tracking.h|7

[RFC v4+ hot_track 00/19] vfs: hot data tracking

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 can review them via https://github.com/wuzhy/kernel/commits/hot_tracking For more info, please

[RFC v4+ hot_track 01/19] vfs: introduce private radix tree structures

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC v4+ hot_track 02/19] vfs: initialize and free data structures

2012-10-28 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 124

[PATCH] btrfs-progs: update mkfs.btrfs help info for raid5/6

2013-03-03 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Since raid5/6 support was introduced, we should update mkfs.btrfs help info. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- mkfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkfs.c b/mkfs.c index 5ece186..f9f26a5

[PATCH 2/2] btrfs: Cleanup some redundant codes in btrfs_log_inode()

2013-03-18 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- 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

[PATCH 1/2] btrfs: Cleanup some redundant codes in btrfs_lookup_csums_range()

2013-03-18 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- 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

[PATCH] btrfs-progs: fix one bracket issue in mkfs.btrfs manpage

2013-03-21 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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 wu...@linux.vnet.ibm.com --- man/mkfs.btrfs.8.in | 2 +-

[PATCH] btrfs-progs: add missing qgroup synopsis in btrfs

2013-03-21 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- 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 +++

[RFC 0/5] BTRFS hot relocation support

2013-05-06 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com The patchset as RFC is sent out mainly to see if it goes in the correct development direction. The patchset is trying to introduce hot relocation support for BTRFS. In hybrid storage environment, when the data in HDD disk get hot, it can be

[RFC 1/5] vfs: add one list_head field

2013-05-06 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add one list_head field 'reloc_list' to accommodate hot relocation support. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 1 + include/linux/hot_tracking.h | 1 + 2 files changed, 2 insertions(+) diff --git

[RFC 2/5] btrfs: add one new block group

2013-05-06 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com Introduce one new block group BTRFS_BLOCK_GROUP_DATA_SSD, which is used to differentiate if the block space is reserved and allocated from one HDD disk or SSD disk. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/btrfs/Makefile | 3

[RFC 4/5] procfs: add three proc interfaces

2013-05-06 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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

[RFC 5/5] btrfs: add hot relocation support

2013-05-06 Thread zwu . kernel
From: Zhi Yong Wu wu...@linux.vnet.ibm.com 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