diff --git a/.fio.metadata b/.fio.metadata new file mode 100644 index 0000000..e839755 --- /dev/null +++ b/.fio.metadata @@ -0,0 +1 @@ +cad3b3d78c5c2c9a116ee53642eec17a77c5ead2 SOURCES/fio-3.19.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..715dc75 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/fio-3.19.tar.bz2 diff --git a/SOURCES/fio-eliminate-extra-log-samples.patch b/SOURCES/fio-eliminate-extra-log-samples.patch new file mode 100644 index 0000000..b9f3b99 --- /dev/null +++ b/SOURCES/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/SPECS/fio.spec b/SPECS/fio.spec new file mode 100644 index 0000000..9d42235 --- /dev/null +++ b/SPECS/fio.spec @@ -0,0 +1,414 @@ +Name: fio +Version: 3.19 +Release: 1%{?dist} +Summary: Multithreaded IO generation tool + +Group: Applications/System +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 +BuildRequires: python3-devel +%ifarch x86_64 +BuildRequires: libpmem-devel +BuildRequires: libpmemblk-devel +%endif +BuildRequires: librbd1-devel +%ifnarch %{arm} +BuildRequires: numactl-devel +BuildRequires: librdmacm-devel +%endif + +%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 +number of global parameters, each inherited by the thread unless +otherwise parameters given to them overriding that setting is given. +The typical use of fio is to write a job file matching the io load +one wants to simulate. + +%prep +%setup -q +%patch0 -p1 + +pathfix.py -i %{__python3} -pn \ + doc/conf.py \ + tools/fio_jsonplus_clat2csv \ + tools/fiologparser.py \ + tools/hist/*.py \ + tools/plot/fio2gnuplot \ + t/*.py + +%build +./configure --disable-optimizations +EXTFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" make V=1 %{?_smp_mflags} + +%install +make install prefix=%{_prefix} mandir=%{_mandir} DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" + +%files +%doc README REPORTING-BUGS COPYING HOWTO examples +%doc MORAL-LICENSE GFIO-TODO SERVER-TODO STEADYSTATE-TODO +%dir %{_datadir}/%{name} +%{_bindir}/* +%{_mandir}/man1/* +%{_datadir}/%{name}/* + +%changelog +* Mon Apr 20 2020 Eric Sandeen 3.19-1 +- Rebase to new upstream + bugfix + +* Fri Jun 07 2019 Eric Sandeen 3.7-5 +- Rebuild w/ tests in place (#1681954) + +* Wed Aug 01 2018 Charalampos Stratakis - 3.7-3 +- Fix python shebangs in a more portable way + +* Mon Jun 25 2018 Eric Sandeen 3.7-2 +- Re-add python3 shebang patch (#1561477) + +* Fri Jun 01 2018 Eric Sandeen 3.7-1 +- New upstream version + +* Wed May 16 2018 Eric Sandeen 3.6-2 +- Make all python scripts python3 compliant and explicit (#1561477) + +* Wed Apr 18 2018 Eric Sandeen 3.6-1 +- New upstream version + +* Mon Feb 26 2018 Eric Sandeen 3.4-2 +- BuildRequires: gcc + +* Fri Feb 16 2018 Eric Sandeen 3.4-1 +- New upstream version + +* Wed Feb 07 2018 Fedora Release Engineering - 3.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Feb 1 2018 Florian Weimer - 3.3-2 +- Build with linker flags from redhat-rpm-config + +* Wed Dec 27 2017 Eric Sandeen 3.3-1 +- New upstream version + +* Mon Nov 06 2017 Eric Sandeen 3.2-1 +- New upstream version + +* Wed Oct 25 2017 Dan Horák 3.1-3 +- Add build deps for s390x + +* Tue Oct 24 2017 Eric Sandeen 3.1-2 +- Add new build deps for more features + +* Wed Oct 18 2017 Eric Sandeen 3.1-1 +- New upstream version + +* Fri Aug 25 2017 Adam Williamson - 3.0-3 +- Re-enable ceph deps on ppc64 (it's building again) +- Disable RDMA support on 32-bit ARM (#1484155) + +* Thu Aug 17 2017 Eric Sandeen 3.0-2 +- Include more files as doc (#1482372) + +* Wed Aug 16 2017 Eric Sandeen 3.0-1 +- New upstream version + +* Mon Jul 31 2017 Eric Sandeen 2.99-3 +- Exclude ceph-related deps on ppc64 + +* Wed Jul 26 2017 Fedora Release Engineering - 2.99-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Jul 10 2017 Eric Sandeen 2.99-1 +- New upstream version + +* Fri Jun 16 2017 Eric Sandeen 2.21-1 +- New upstream version + +* Wed Apr 05 2017 Eric Sandeen 2.19-2 +- Enable dev-dax engine on x86_64 + +* Wed Apr 05 2017 Eric Sandeen 2.19-1 +- New upstream version + +* Thu Feb 23 2017 Eric Sandeen 2.18-1 +- New upstream version + +* Thu Feb 23 2017 Eric Sandeen 2.17-1 +- New upstream version + +* Fri Feb 10 2017 Fedora Release Engineering - 2.16-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Dec 20 2016 Eric Sandeen 2.16-1 +- New upstream version + +* Sat Nov 19 2016 Peter Robinson 2.15-2 +- Rebuild (Power64) + +* Thu Oct 27 2016 Eric Sandeen 2.15-1 +- New upstream version + +* Tue Oct 04 2016 Eric Sandeen 2.14-1 +- New upstream version + +* Mon Aug 29 2016 Eric Sandeen 2.13-1 +- New upstream version + +* Wed Jun 15 2016 Eric Sandeen 2.12-1 +- New upstream version + +* Wed May 25 2016 Eric Sandeen 2.11-1 +- New upstream version + +* Fri Apr 29 2016 Eric Sandeen 2.9-1 +- New upstream version + +* Thu Mar 17 2016 Eric Sandeen 2.8-1 +- New upstream version + +* Fri Mar 11 2016 Eric Sandeen 2.7-1 +- New upstream version + +* Wed Feb 03 2016 Fedora Release Engineering - 2.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jan 27 2016 Eric Sandeen 2.6-1 +- New upstream version + +* Thu Jan 14 2016 Eric Sandeen 2.3-1 +- New upstream version + +* Mon Dec 21 2015 Eric Sandeen 2.2.13-1 +- New upstream version +- Add librdmacm-devel as build dependency (enable RDMA) + +* Tue Nov 10 2015 Eric Sandeen 2.2.11-1 +- New upstream version +- Add zlib-devel as build dependency + +* Tue Sep 22 2015 Eric Sandeen 2.2.10-1 +- New upstream version + +* Wed Jun 17 2015 Fedora Release Engineering - 2.2.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu May 07 2015 Eric Sandeen 2.2.8-1 +- New upstream version + +* Wed Apr 15 2015 Eric Sandeen 2.2.7-1 +- New upstream version +- Add librbd ioengine support + +* Fri Apr 10 2015 Eric Sandeen 2.2.6-1 +- New upstream version + +* Tue Feb 17 2015 Eric Sandeen 2.2.5-1 +- New upstream version + +* Mon Jan 05 2015 Eric Sandeen 2.2.4-1 +- New upstream version + +* Fri Jan 02 2015 Eric Sandeen 2.2.3-1 +- New upstream version + +* Wed Nov 12 2014 Eric Sandeen 2.1.14-1 +- New upstream version + +* Wed Sep 17 2014 Eric Sandeen 2.1.12-1 +- New upstream version + +* Sat Aug 16 2014 Fedora Release Engineering - 2.1.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Jul 15 2014 Eric Sandeen 2.1.11-1 +- New upstream version + +* Mon Jun 16 2014 Eric Sandeen 2.1.10-1 +- New upstream version + +* Sat Jun 07 2014 Fedora Release Engineering - 2.1.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 13 2014 Eric Sandeen 2.1.9-1 +- New upstream version + +* Mon Apr 14 2014 Eric Sandeen 2.1.8-1 +- New upstream version + +* Mon Apr 07 2014 Eric Sandeen 2.1.7-1 +- New upstream version + +* Wed Feb 12 2014 Eric Sandeen 2.1.5-1 +- New upstream version + +* Wed Sep 25 2013 Eric Sandeen 2.1.3-1 +- New upstream version + +* Thu Aug 08 2013 Eric Sandeen 2.1.2-1 +- New upstream version + +* Sat Aug 03 2013 Fedora Release Engineering - 2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed May 15 2013 Eric Sandeen 2.1-1 +- New upstream version + +* Wed Apr 17 2013 Eric Sandeen 2.0.15-1 +- New upstream version + +* Wed Feb 13 2013 Fedora Release Engineering - 2.0.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jan 9 2013 Peter Robinson 2.0.13-1 +- New upstream 2.0.13 release + +* Tue Jan 01 2013 Dan Horák - 2.0.12.2-2 +- fix build on arches without ARCH_HAVE_CPU_CLOCK (arm, s390) + +* Fri Dec 21 2012 Eric Sandeen 2.0.12.2-1 +- New upstream version + +* Sat Nov 24 2012 Eric Sandeen 2.0.11-1 +- New upstream version + +* Thu Nov 15 2012 Peter Robinson 2.0.10-2 +- Merge latest from F16 to master, bump release + +* Fri Oct 12 2012 Eric Sandeen 2.0.10-1 +- New upstream version + +* Thu Jul 19 2012 Fedora Release Engineering - 2.0.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jul 13 2012 Eric Sandeen 2.0.8-1 +- New upstream version + +* Fri Mar 23 2012 Eric Sandeen 2.0.6-1 +- New upstream version + +* Tue Feb 28 2012 Eric Sandeen 2.0.5-1 +- New upstream version + +* Mon Jan 23 2012 Eric Sandeen 2.0.1-1 +- New upstream version + +* Fri Jan 13 2012 Fedora Release Engineering - 2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Dec 08 2011 Eric Sandeen 2.0-1 +- New upstream version + +* Fri Nov 11 2011 Eric Sandeen 1.99.12-1 +- New upstream version + +* Tue Sep 27 2011 Eric Sandeen 1.58-1 +- New upstream version + +* Thu Aug 11 2011 Eric Sandeen 1.57-1 +- New upstream version + +* Tue May 31 2011 Eric Sandeen 1.55-1 +- New upstream version + +* Mon May 09 2011 Eric Sandeen 1.53-1 +- New upstream version + +* Fri Apr 29 2011 Eric Sandeen 1.52-1 +- New upstream version + +* Tue Feb 08 2011 Fedora Release Engineering - 1.50.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jan 28 2011 Eric Sandeen 1.50.2-1 +- New upstream version + +* Wed Jan 26 2011 Eric Sandeen 1.50-1 +- New upstream version + +* Wed Dec 15 2010 Eric Sandeen 1.44.3-1 +- New upstream version + +* Fri Oct 22 2010 Eric Sandeen 1.44.1-1 +- New upstream version + +* Fri Oct 22 2010 Eric Sandeen 1.44-1 +- New upstream version + +* Thu Sep 23 2010 Eric Sandeen 1.43.2-1 +- New upstream version + +* Tue Jun 29 2010 Eric Sandeen 1.41.5-1 +- New upstream version + +* Tue Jun 22 2010 Eric Sandeen 1.41.3-1 +- New upstream version + +* Tue Jun 22 2010 Eric Sandeen 1.41-1 +- New upstream version + +* Fri Jun 18 2010 Eric Sandeen 1.40-1 +- New upstream version + +* Thu Jun 03 2010 Eric Sandeen 1.39-1 +- New upstream version + +* Tue Mar 23 2010 Eric Sandeen 1.38-1 +- New upstream version + +* Tue Feb 23 2010 Eric Sandeen 1.37-1 +- New upstream version + +* Tue Dec 15 2009 Eric Sandeen 1.36-1 +- New upstream version + +* Thu Nov 05 2009 Eric Sandeen 1.35-1 +- New upstream version + +* Mon Sep 14 2009 Eric Sandeen 1.34-1 +- New upstream version + +* Thu Sep 10 2009 Eric Sandeen 1.33.1-1 +- New upstream version + +* Tue Sep 08 2009 Eric Sandeen 1.33-1 +- New upstream version + +* Fri Jul 31 2009 Eric Sandeen 1.32-1 +- New upstream version + +* Fri Jul 24 2009 Fedora Release Engineering - 1.31-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sat Jul 11 2009 Eric Sandeen 1.31-1 +- Much newer upstream version + +* Fri Mar 06 2009 Eric Sandeen 1.24-1 +- New upstream version + +* Tue Feb 24 2009 Fedora Release Engineering - 1.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Nov 20 2008 Eric Sandeen 1.23-1 +- New upstream version, several bugs fixed. + +* Mon Oct 13 2008 Eric Sandeen 1.22-1 +- New upstream version, several bugs fixed. + +* Thu Jun 19 2008 Eric Sandeen 1.21-1 +- New upstream version +- Build verbosely and with RPM cflags + +* Fri Apr 25 2008 Eric Sandeen 1.20-1 +- New upstream version + +* Thu Apr 10 2008 Eric Sandeen 1.19-1 +- New upstream version + +* Wed Feb 13 2008 Eric Sandeen 1.18-1 +- Initial build