X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Ffile.c;h=5c4b157febaf6956dd2c55d524184e9691a55c0c;hb=f596f1356cc523ace9ae6d2f91f08f982bae455b;hp=a4a8108a1b93ca2b36905dade9bf28a7350870d9;hpb=e9da632729d04d23ae7f4be4c3fcdd7c1c432e85;p=bluesky.git diff --git a/bluesky/file.c b/bluesky/file.c index a4a8108..5c4b157 100644 --- a/bluesky/file.c +++ b/bluesky/file.c @@ -166,32 +166,10 @@ void bluesky_file_read(BlueSkyInode *inode, uint64_t offset, g_return_if_fail(offset < inode->size); g_return_if_fail(len <= inode->size - offset); -#if 0 - /* Start fetches on any data blocks that we will need for this read. */ - BlueSkyStoreAsync *barrier = bluesky_store_async_new(inode->fs->store); - barrier->op = STORE_OP_BARRIER; - uint64_t start_block, end_block; - start_block = offset / BLUESKY_BLOCK_SIZE; - end_block = (offset + len - 1) / BLUESKY_BLOCK_SIZE; - if (bluesky_verbose) { - g_log("bluesky/file", G_LOG_LEVEL_DEBUG, - "Start prefetch on blocks %"PRIi64" .. %"PRIi64, - start_block, end_block); - } - for (uint64_t i = start_block; i <= end_block; i++) { - BlueSkyBlock *b = &g_array_index(inode->blocks, BlueSkyBlock, - i); - if (b->type == BLUESKY_BLOCK_REF) - bluesky_block_fetch(inode, b, barrier); - } - bluesky_store_async_submit(barrier); - bluesky_store_async_wait(barrier); - bluesky_store_async_unref(barrier); - if (bluesky_verbose) { - g_log("bluesky/file", G_LOG_LEVEL_DEBUG, "Prefetch complete."); - } -#endif + BlueSkyProfile *profile = bluesky_profile_get(); + bluesky_profile_add_event(profile, + g_strdup_printf("Start file read prefetch")); uint64_t start_block, end_block; start_block = offset / BLUESKY_BLOCK_SIZE; end_block = (offset + len - 1) / BLUESKY_BLOCK_SIZE; @@ -202,6 +180,9 @@ void bluesky_file_read(BlueSkyInode *inode, uint64_t offset, bluesky_cloudlog_prefetch(b->ref); } + bluesky_profile_add_event(profile, + g_strdup_printf("End file read prefetch")); + while (len > 0) { uint64_t block_num = offset / BLUESKY_BLOCK_SIZE; gint block_offset = offset % BLUESKY_BLOCK_SIZE; @@ -226,6 +207,9 @@ void bluesky_file_read(BlueSkyInode *inode, uint64_t offset, buf += bytes; len -= bytes; } + + bluesky_profile_add_event(profile, + g_strdup_printf("BlueSky read complete")); } void bluesky_block_fetch(BlueSkyInode *inode, BlueSkyBlock *block,