diff --git a/.gitignore b/.gitignore index fd9dfe6..f4e035c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ /fio-3.16.tar.bz2 /fio-3.17.tar.bz2 /fio-3.18.tar.bz2 +/fio-3.19.tar.bz2 diff --git a/fio-eliminate-extra-log-samples.patch b/fio-eliminate-extra-log-samples.patch new file mode 100644 index 0000000..b9f3b99 --- /dev/null +++ b/fio-eliminate-extra-log-samples.patch @@ -0,0 +1,52 @@ +From 640150c1b2c3cdbdd8baa5f1f3e7214a5c9a6533 Mon Sep 17 00:00:00 2001 +From: Vincent Fu +Date: Tue, 31 Mar 2020 07:26:16 -0400 +Subject: [PATCH] stat: eliminate extra log samples + +b2a432bfbb6d inadvertently added extra log samples. + +$ ./fio-canonical/fio --name=test --time_based --runtime=10s --write_lat_log=fio-07-b2a432 --log_avg_msec=1000 --size=1G --rw=rw +test: (g=0): rw=rw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +fio-3.17-93-gb2a4 +Starting 1 process +... +$ cat fio-07-b2a432_clat.1.log +1000, 5851, 0, 0, 0 +1000, 2551, 1, 0, 0 +1000, 5028, 1, 0, 0 +2000, 4175, 0, 0, 0 +2000, 3214, 1, 0, 0 +2000, 60619, 0, 0, 0 +... + +There should only be two lines at each timestamp (one for reads, one for +writes), but the first two timestamps have three lines each. + +The cause is an inadvertent change in stat.c:add_log_sample() of +__add_stat_to_log to _add_stat_to_log. Reverting to the two-underscore +version resolves this issue. + +Fixes: https://github.com/axboe/fio/issues/947 +Fixes: b2a432bfbb6d ("Per-command priority: Priority logging and libaio/io_uring cmdprio_percentage") +Signed-off-by: Vincent Fu +--- + stat.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/stat.c b/stat.c +index d8c01d14..efa811d2 100644 +--- a/stat.c ++++ b/stat.c +@@ -2749,7 +2749,7 @@ static unsigned long add_log_sample(struct thread_data *td, + return diff; + } + +- _add_stat_to_log(iolog, elapsed, td->o.log_max != 0, priority_bit); ++ __add_stat_to_log(iolog, ddir, elapsed, td->o.log_max != 0, priority_bit); + + iolog->avg_last[ddir] = elapsed - (this_window - iolog->avg_msec); + return iolog->avg_msec; +-- +2.17.1 + + diff --git a/fio.spec b/fio.spec index f343dbb..60cd3fe 100644 --- a/fio.spec +++ b/fio.spec @@ -1,12 +1,14 @@ Name: fio -Version: 3.18 -Release: 1%{?dist} +Version: 3.19 +Release: 2%{?dist} Summary: Multithreaded IO generation tool License: GPLv2 URL: http://git.kernel.dk/?p=fio.git;a=summary Source: http://brick.kernel.dk/snaps/%{name}-%{version}.tar.bz2 +Patch0: fio-eliminate-extra-log-samples.patch + BuildRequires: gcc BuildRequires: libaio-devel BuildRequires: zlib-devel @@ -26,9 +28,6 @@ BuildRequires: numactl-devel BuildRequires: librdmacm-devel %endif -Patch0: fix-io_uring-build.patch -Patch1: fix-fio-globals.patch - %description fio is an I/O tool that will spawn a number of threads or processes doing a particular type of io action as specified by the user. fio takes a @@ -40,7 +39,6 @@ one wants to simulate. %prep %setup -q %patch0 -p1 -%patch1 -p1 pathfix.py -i %{__python3} -pn \ tools/fio_jsonplus_clat2csv \ @@ -65,6 +63,12 @@ make install prefix=%{_prefix} mandir=%{_mandir} DESTDIR=$RPM_BUILD_ROOT INSTALL %{_datadir}/%{name}/* %changelog +* Thu Apr 16 2020 Eric Sandeen 3.19-2 +- Bugfix update: stat: eliminate extra log samples + +* Thu Mar 12 2020 Eric Sandeen 3.19-1 +- New upstream version + * Thu Feb 13 2020 Eric Sandeen 3.18-1 - New upstream version - Fix gcc10 build diff --git a/sources b/sources index eb9e607..51380b2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (fio-3.18.tar.bz2) = 11b689bfc873716bd3f06f46652facf7a1cf6928bc251d9b394fac4afb77497043dc3a083fe69a940cba26080eee5fd56ad5bfdf8d1c2dfd3d5d94414d7b5922 +SHA512 (fio-3.19.tar.bz2) = 0004dbaf5a8ce4f2b13114a3bfb65c388bb6d01e9a82791208ff7e7eb54cd6741e60cc8cb0a19f6319301ee2040c03862725943972ea767e6cc65fce4a2b3ecb