diff options
Diffstat (limited to 'xlators/performance')
-rw-r--r-- | xlators/performance/io-cache/src/ioc-inode.c | 13 | ||||
-rw-r--r-- | xlators/performance/stat-prefetch/src/stat-prefetch.c | 7 |
2 files changed, 14 insertions, 6 deletions
diff --git a/xlators/performance/io-cache/src/ioc-inode.c b/xlators/performance/io-cache/src/ioc-inode.c index 356afc583..e647b3183 100644 --- a/xlators/performance/io-cache/src/ioc-inode.c +++ b/xlators/performance/io-cache/src/ioc-inode.c @@ -166,18 +166,23 @@ ioc_inode_wakeup (call_frame_t *frame, ioc_inode_t *ioc_inode, ioc_inode_t * ioc_inode_update (ioc_table_t *table, inode_t *inode, uint32_t weight) { - ioc_inode_t *ioc_inode = NULL; - + ioc_inode_t *ioc_inode = NULL; + unsigned long no_of_pages = 0; + ioc_inode = CALLOC (1, sizeof (ioc_inode_t)); if (ioc_inode == NULL) { goto out; } ioc_inode->table = table; - + + no_of_pages = (table->cache_size / table->page_size) + + ((table->cache_size % table->page_size) ? 1 : 0); + /* initialize the list for pages */ ioc_inode->cache.page_table = rbthash_table_init (IOC_PAGE_TABLE_BUCKET_COUNT, - ioc_hashfn, NULL); + ioc_hashfn, NULL, + no_of_pages); if (ioc_inode->cache.page_table == NULL) { FREE (ioc_inode); ioc_inode = NULL; diff --git a/xlators/performance/stat-prefetch/src/stat-prefetch.c b/xlators/performance/stat-prefetch/src/stat-prefetch.c index fe81b3e08..d6e8bad1e 100644 --- a/xlators/performance/stat-prefetch/src/stat-prefetch.c +++ b/xlators/performance/stat-prefetch/src/stat-prefetch.c @@ -20,6 +20,7 @@ #include "stat-prefetch.h" #define GF_SP_CACHE_BUCKETS 4096 +#define GF_SP_CACHE_ENTRIES_EXPECTED 1048576 int32_t sp_process_inode_ctx (call_frame_t *frame, xlator_t *this, loc_t *loc, @@ -129,7 +130,8 @@ sp_cache_init (void) if (cache) { cache->table = rbthash_table_init (GF_SP_CACHE_BUCKETS, sp_hashfn, - free); + free, + GF_SP_CACHE_ENTRIES_EXPECTED); if (cache->table == NULL) { FREE (cache); cache = NULL; @@ -170,7 +172,8 @@ sp_cache_remove_entry (sp_cache_t *cache, char *name, char remove_all) table = cache->table; cache->table = rbthash_table_init (GF_SP_CACHE_BUCKETS, sp_hashfn, - free); + free, + GF_SP_CACHE_ENTRIES_EXPECTED); if (cache->table == NULL) { cache->table = table; } else { |