Re: [PATCH] stats: Add a function to report completion latency percentiles

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2011-08-15 05:56, Zhu Yanhai wrote:
> Hi,
> This commit breaks the calculation of iops.
> Before this commit, the iops from group_report is 1467, see below:
> 
> chenyun@xxxxxxxxxxxxxx.cm4 fio]$ sudo ./fio ~/iotest/readdev
> thread16: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=sync, iodepth=1
> ...
> thread16: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=sync, iodepth=1
> fio 1.57
> Starting 10 threads
> Jobs: 10 (f=10): [rrrrrrrrrr] [100.0% done] [5929K/0K /s] [1447 /0
> iops] [eta 00m:00s]
> thread16: (groupid=0, jobs=10): err= 0: pid=19538
>   read : io=176212KB, bw=5871.6KB/s, iops=1467 , runt= 30011msec
> [cut here]
> 
> 
> After this commit, the reported iops is 266, which is only one thread's output,
> not group_reporting, see below:
> 
> [chenyun@xxxxxxxxxxxxxx.cm4 fio]$ sudo ./fio ~/iotest/readdev
> thread16: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=sync, iodepth=1
> ...
> thread16: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=sync, iodepth=1
> fio 1.57
> Starting 10 threads
> Jobs: 10 (f=10): [rrrrrrrrrr] [100.0% done] [6033K/0K /s] [1473 /0
> iops] [eta 00m:00s]
> thread16: (groupid=0, jobs=10): err= 0: pid=19692
>   read : io=351720KB, bw=1065.7KB/s, iops=266 , runt=330046msec
> [cut here]

The patch does indeed appear to have broken output for more than 1
thread in general, even without group_reporting things are not right. It
also crashes here for me now:

*** glibc detected *** ./fio: double free or corruption (!prev):
0x00000000006a3a90 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x78a8f)[0x7f6ed5dbba8f]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x73)[0x7f6ed5dbf8e3]
./fio(show_run_stats+0xb8c)[0x410fec]
./fio(main+0x315)[0x40afa5]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xff)[0x7f6ed5d61eff]
./fio[0x4069c9]
======= Memory map: ========
00400000-00440000 r-xp 00000000 08:02 10025
/home/axboe/git/fio/fio
0063f000-00640000 r--p 0003f000 08:02 10025
/home/axboe/git/fio/fio
00640000-0069c000 rw-p 00040000 08:02 10025
/home/axboe/git/fio/fio
0069c000-006c4000 rw-p 00000000 00:00 0
[heap]
7f6ecc000000-7f6ecc021000 rw-p 00000000 00:00 0 
7f6ecc021000-7f6ed0000000 ---p 00000000 00:00 0 
7f6ed2db8000-7f6ed2dcd000 r-xp 00000000 08:03 655591
/lib/x86_64-linux-gnu/libgcc_s.so.1

gdb) l *show_run_stats+0xb8c
0x410fec is in show_run_stats (stat.c:858).
854             }
855     
857             free(runstats);
858             free(threadstats);
859     }

which just looks like overrun somewhere, corrupting the heap. Yu-ju, did
you test with numjobs > 1?

-- 
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux