From: Dominik Bruhn Date: Mon, 23 Apr 2012 12:30:02 +0000 (+0200) Subject: Fix accounting for write-all operations X-Git-Tag: ceph_v1.0~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c6362f0722495b1a5b3f6383a9a1e93328a6a75a;p=ffsb.git Fix accounting for write-all operations FFSB wrongly accounted writefile operations. The whole filesize was taken into account and not only the amount written to the file. This lead to extremly high throughputs. --- diff --git a/fileops.c b/fileops.c index 59db2b4..801fa42 100644 --- a/fileops.c +++ b/fileops.c @@ -220,7 +220,7 @@ void ffsb_readall(ffsb_thread_t *ft, ffsb_fs_t *fs, unsigned opnum) /* Shared core between ffsb_writefile and ffsb_writefile_fsync.*/ static unsigned ffsb_writefile_core(ffsb_thread_t *ft, ffsb_fs_t *fs, - unsigned opnum, uint64_t *filesize_ret, + unsigned opnum, uint32_t *writesize_ret, int fsync_file) { struct benchfiles *bf = (struct benchfiles *)fs_get_opdata(fs, opnum); @@ -277,28 +277,28 @@ static unsigned ffsb_writefile_core(ffsb_thread_t *ft, ffsb_fs_t *fs, } unlock_file_reader(curfile); fhclose(fd, ft, fs); - *filesize_ret = filesize; + *writesize_ret = write_size; return iterations; } void ffsb_writefile(ffsb_thread_t *ft, ffsb_fs_t *fs, unsigned opnum) { unsigned iterations; - uint64_t filesize; + uint32_t writesize; - iterations = ffsb_writefile_core(ft, fs, opnum, &filesize, 0); - ft_incr_op(ft, opnum, iterations, filesize); - ft_add_writebytes(ft, filesize); + iterations = ffsb_writefile_core(ft, fs, opnum, &writesize, 0); + ft_incr_op(ft, opnum, iterations, writesize); + ft_add_writebytes(ft, writesize); } void ffsb_writefile_fsync(ffsb_thread_t *ft, ffsb_fs_t *fs, unsigned opnum) { unsigned iterations; - uint64_t filesize; + uint32_t writesize; - iterations = ffsb_writefile_core(ft, fs, opnum, &filesize, 1); - ft_incr_op(ft, opnum, iterations, filesize); - ft_add_writebytes(ft, filesize); + iterations = ffsb_writefile_core(ft, fs, opnum, &writesize, 1); + ft_incr_op(ft, opnum, iterations, writesize); + ft_add_writebytes(ft, writesize); }