diff options
author | Vivek Haldar <haldar@google.com> | 2011-05-22 21:24:16 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2011-05-22 21:24:16 -0400 |
commit | 77f4135f2a219a2127be6cc1208c42e6175b11dd (patch) | |
tree | 8f85549d2354c5a69a5b29197f68a554daad1324 /fs/ext4/super.c | |
parent | 93917411be8db5d21abf15c781dfa43c5cc6edf2 (diff) |
ext4: count hits/misses of extent cache and expose in sysfs
The number of hits and misses for each filesystem is exposed in
/sys/fs/ext4/<dev>/extent_cache_{hits, misses}.
Tested: fsstress, manual checks.
Signed-off-by: Vivek Haldar <haldar@google.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r-- | fs/ext4/super.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index fdce4eebce0c..874dd25b7481 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -2439,6 +2439,18 @@ static ssize_t lifetime_write_kbytes_show(struct ext4_attr *a, | |||
2439 | EXT4_SB(sb)->s_sectors_written_start) >> 1))); | 2439 | EXT4_SB(sb)->s_sectors_written_start) >> 1))); |
2440 | } | 2440 | } |
2441 | 2441 | ||
2442 | static ssize_t extent_cache_hits_show(struct ext4_attr *a, | ||
2443 | struct ext4_sb_info *sbi, char *buf) | ||
2444 | { | ||
2445 | return snprintf(buf, PAGE_SIZE, "%lu\n", sbi->extent_cache_hits); | ||
2446 | } | ||
2447 | |||
2448 | static ssize_t extent_cache_misses_show(struct ext4_attr *a, | ||
2449 | struct ext4_sb_info *sbi, char *buf) | ||
2450 | { | ||
2451 | return snprintf(buf, PAGE_SIZE, "%lu\n", sbi->extent_cache_misses); | ||
2452 | } | ||
2453 | |||
2442 | static ssize_t inode_readahead_blks_store(struct ext4_attr *a, | 2454 | static ssize_t inode_readahead_blks_store(struct ext4_attr *a, |
2443 | struct ext4_sb_info *sbi, | 2455 | struct ext4_sb_info *sbi, |
2444 | const char *buf, size_t count) | 2456 | const char *buf, size_t count) |
@@ -2496,6 +2508,8 @@ static struct ext4_attr ext4_attr_##name = __ATTR(name, mode, show, store) | |||
2496 | EXT4_RO_ATTR(delayed_allocation_blocks); | 2508 | EXT4_RO_ATTR(delayed_allocation_blocks); |
2497 | EXT4_RO_ATTR(session_write_kbytes); | 2509 | EXT4_RO_ATTR(session_write_kbytes); |
2498 | EXT4_RO_ATTR(lifetime_write_kbytes); | 2510 | EXT4_RO_ATTR(lifetime_write_kbytes); |
2511 | EXT4_RO_ATTR(extent_cache_hits); | ||
2512 | EXT4_RO_ATTR(extent_cache_misses); | ||
2499 | EXT4_ATTR_OFFSET(inode_readahead_blks, 0644, sbi_ui_show, | 2513 | EXT4_ATTR_OFFSET(inode_readahead_blks, 0644, sbi_ui_show, |
2500 | inode_readahead_blks_store, s_inode_readahead_blks); | 2514 | inode_readahead_blks_store, s_inode_readahead_blks); |
2501 | EXT4_RW_ATTR_SBI_UI(inode_goal, s_inode_goal); | 2515 | EXT4_RW_ATTR_SBI_UI(inode_goal, s_inode_goal); |
@@ -2511,6 +2525,8 @@ static struct attribute *ext4_attrs[] = { | |||
2511 | ATTR_LIST(delayed_allocation_blocks), | 2525 | ATTR_LIST(delayed_allocation_blocks), |
2512 | ATTR_LIST(session_write_kbytes), | 2526 | ATTR_LIST(session_write_kbytes), |
2513 | ATTR_LIST(lifetime_write_kbytes), | 2527 | ATTR_LIST(lifetime_write_kbytes), |
2528 | ATTR_LIST(extent_cache_hits), | ||
2529 | ATTR_LIST(extent_cache_misses), | ||
2514 | ATTR_LIST(inode_readahead_blks), | 2530 | ATTR_LIST(inode_readahead_blks), |
2515 | ATTR_LIST(inode_goal), | 2531 | ATTR_LIST(inode_goal), |
2516 | ATTR_LIST(mb_stats), | 2532 | ATTR_LIST(mb_stats), |