[RFC PATCH 0/5] Btrfs: Add hot data tracking functionality

2010-07-27 Thread bchociej
INTRODUCTION: This patch series adds experimental support for tracking data temperature in Btrfs. Essentially, this means maintaining some key stats (like number of reads/writes, last read/write time, frequency of reads/writes), then distilling those numbers down to a single temperature value

[RFC PATCH 1/5] Btrfs: Add experimental hot data hash list index

2010-07-27 Thread bchociej
From: Ben Chociej bccho...@us.ibm.com Adds a hash table structure to efficiently lookup the data temperature of a file. Also adds a function to calculate that temperature based on some metrics kept in custom frequency data structs. Signed-off-by: Ben Chociej bccho...@us.ibm.com Signed-off-by:

[RFC PATCH 4/5] Btrfs: Add debugfs interface for hot data stats

2010-07-27 Thread bchociej
From: Ben Chociej bccho...@us.ibm.com Adds a ./btrfs_data/device_name/ directory in the debugfs directory for each volume. The directory 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,

[RFC PATCH 3/5] Btrfs: 3 new ioctls related to hot data features

2010-07-27 Thread bchociej
From: Ben Chociej bccho...@us.ibm.com BTRFS_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 PATCH 5/5] Btrfs: Add hooks to enable hot data tracking

2010-07-27 Thread bchociej
From: Ben Chociej bccho...@us.ibm.com Miscellaneous features that enable hot data tracking features, open the door for future hot data migration to faster media, and generally make the hot data functions a bit more friendly. ctree.h: Add the root hot_inode_tree and heat hashlists. Defines some

[RFC v2 PATCH 1/6] Btrfs: Add experimental hot data hash list index

2010-08-12 Thread bchociej
From: Ben Chociej bchoc...@gmail.com Adds a hash table structure to efficiently lookup the data temperature of a file. Also adds a function to calculate that temperature based on some metrics kept in custom frequency data structs (in the next patch). Signed-off-by: Ben Chociej bchoc...@gmail.com

[RFC v2 PATCH 2/6] Btrfs: Add data structures for hot data tracking

2010-08-12 Thread bchociej
From: Ben Chociej bchoc...@gmail.com Adds hot_inode_tree and hot_range_tree structs to keep track of frequently accessed files and ranges within files. Trees contain hot_{inode,range}_items representing those files and ranges, each of which contains a btrfs_freq_data struct with its frequency of

[RFC v2 PATCH 5/6] Btrfs: 3 new ioctls related to hot data features

2010-08-12 Thread bchociej
From: Ben Chociej bchoc...@gmail.com BTRFS_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 PATCH 4/6] Btrfs: Add debugfs interface for hot data stats

2010-08-12 Thread bchociej
From: Ben Chociej bchoc...@gmail.com Add a /sys/kernel/debug/btrfs_data/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', contains

[RFC v2 PATCH 3/6] Btrfs: Add hot data relocation facilities

2010-08-12 Thread bchociej
From: Ben Chociej bchoc...@gmail.com The relocation code operates on the heat hash lists to identify hot or cold data logical file ranges that are candidates for relocation. The triggering mechanism for relocation is controlled by a global heat threshold integer value (fs_root-heat_threshold).

[PATCH 0/2] Btrfs-progs: Add support for hot data migration

2010-08-12 Thread bchociej
This patch set introduces functionality into btrfsctl and mkfs.btrfs to support the kernel patches for hot data tracking and migration to SSD with Btrfs. New functionality includes a -h option to mkfs.btrfs to preallocate approrpiate block group types for SSD data migration, and also includes

[PATCH 2/2] Btrfs-progs: Add hot data support in mkfs

2010-08-12 Thread bchociej
From: Ben Chociej bchoc...@gmail.com Modified mkfs.btrfs to add hot data relocation option (-h) which preallocates BTRFS_BLOCK_GROUP_DATA_SSD and BTRFS_BLOCK_GROUP_METADATA_SSD at mkfs time for future use by hot data relocation code. Also added a userspace function to detect whether a block