.gear/fio.spec | 186 +++++++++++++++++++++ .gear/rules | 3 + .../tags/251ecf75c85e151eefcb7ca523cb4cccfffc23ad | 23 +++ .gear/tags/list | 1 + .gear/upstream/remotes | 3 + diskutil.c | 10 +- fio.1 | 4 +- os/os-linux.h | 32 ---- os/os.h | 4 - 9 files changed, 220 insertions(+), 46 deletions(-) diff --git a/.gear/fio.spec b/.gear/fio.spec new file mode 100644 index 00000000..f02cec61 --- /dev/null +++ b/.gear/fio.spec @@ -0,0 +1,186 @@ +%def_enable gfio +%def_enable numa +%def_enable gfapi +%def_enable rdmacm +%ifarch %ix86 %arm %mips32 ppc +%def_disable rbd +%else +%def_enable rbd +%endif +%def_enable http + +Name: fio +Version: 3.27 +Release: alt1 + +Summary: IO testing tool +License: GPLv2 +Group: System/Kernel and hardware + +Url: http://git.kernel.dk/?p=fio.git;a=summary +Source0: %name-%version.tar +Patch: %name-%version-%release.patch + +BuildRequires: libaio-devel zlib-devel +BuildRequires(pre): rpm-build-python3 +BuildRequires: python3-module-sphinx + +%{?_enable_gfio:BuildRequires: libgtk+2-devel} +%{?_enable_numa:BuildRequires: libnuma-devel } +%{?_enable_rbd:BuildRequires: ceph-devel} +%{?_enable_gfapi:BuildRequires: libglusterfs-devel} +%{?_enable_rdmacm:BuildRequires: librdmacm-devel} +%{?_enable_http:BuildRequires: libcurl-devel libssl-devel} + +Conflicts: python3-module-fiona + +%description +fio is a 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. + + +%package tools +Summary: Analyze tools for %name +Group: System/Kernel and hardware +Requires: %name = %version-%release + +%description tools +fio2gnuplot - analyze a set of fio's log files to turn them into a set of graphical traces using gnuplot tool. +fio_generate_plots - Generate plots for Flexible I/O Tester + +%package -n gfio +Summary: Gtk frontend for %name +Group: System/Kernel and hardware +Requires: %name = %version-%release + +%description -n gfio +fio is a 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. + +This package conteon gtk frontend for %name + + +%prep +%setup +%patch -p1 +find tools -type f | xargs subst "s|/usr/bin/python2.7|%__python3|" + +%build +./configure \ + --prefix=%_prefix \ + --disable-optimizations \ + %{subst_enable gfio} \ + --extra-cflags="%optflags" + +%make_build V=1 EXTFLAGS="%optflags" +%make_build -C doc html SPHINXBUILD=sphinx-build-3 + +%install +%make_install DESTDIR=%buildroot install prefix=%_prefix mandir=%_mandir + +%files +%doc HOWTO README REPORTING-BUGS examples doc/output/html +%_bindir/genfio +%_bindir/%name +%_man1dir/%name.1.* + +%files tools +%_bindir/* +%_datadir/%name +%_man1dir/* +%exclude %_bindir/gfio +%exclude %_bindir/fio +%exclude %_bindir/genfio +%exclude %_man1dir/%name.1.* + +%files -n gfio +%_bindir/gfio + +%changelog +* Tue Aug 31 2021 Vitaly Lipatov 3.27-alt1 +- new version 3.27 +- add upstream fix: remove raw device support + +* Tue Mar 16 2021 Vitaly Lipatov 3.26-alt1 +- new version 3.26 + +* Thu Sep 10 2020 Vitaly Lipatov 3.23-alt1 +- new version 3.23 (with rpmrb script) + +* Wed Feb 05 2020 Vitaly Lipatov 3.17-alt1.1 +- NMU: real drop python2 deps + +* Wed Feb 05 2020 Vitaly Lipatov 3.17-alt1 +- NMU: build new version +- use libglusterfs-devel instead of libglusterfs3-devel +- use python3 only + +* Sat Feb 23 2019 Alexey Shabalin 3.13-alt1 +- 3.13 +- disable support ceph on 32-bit arch +- build with http support for WebDAV and S3 + +* Tue Aug 29 2017 Terechkov Evgenii 3.0-alt2 +- Build documentation + +* Tue Aug 29 2017 Terechkov Evgenii 3.0-alt1 +- 3.0 + +* Tue Jun 14 2016 Alexey Shabalin 2.12-alt1 +- 2.12 +- build with support numa, ceph, gluster, rdmacm + +* Sun Jan 19 2014 Alexey Shabalin 2.1.4-alt1 +- 2.1.4 +- add packages fio-tools and gfio + +* Thu Dec 13 2012 Slava Dubrovskiy 2.0.11-alt1 +- 2.0.11 + +* Fri Nov 30 2012 Slava Dubrovskiy 2.0.10-alt1 +- 2.0.10 + +* Sun Apr 15 2012 Victor Forsiuk 2.0.7-alt1 +- 2.0.7 + +* Sun Mar 25 2012 Victor Forsiuk 2.0.6-alt1 +- 2.0.6 + +* Sat Oct 08 2011 Michael Shigorin 1.59-alt1 +- 1.59 + +* Fri Jul 22 2011 Victor Forsiuk 1.57-alt1 +- 1.57 + +* Sun Jun 12 2011 Victor Forsiuk 1.55-alt1 +- 1.55 + +* Sun Mar 14 2010 Igor Zubkov 1.37-alt1 +- 1.36 -> 1.37 + +* Wed Dec 16 2009 Igor Zubkov 1.36-alt1 +- 1.34 -> 1.36 + +* Thu Oct 01 2009 Igor Zubkov 1.34-alt1 +- 1.24 -> 1.34 + +* Wed Mar 25 2009 Igor Zubkov 1.24-alt1 +- 1.23 -> 1.24 + +* Tue Dec 02 2008 Igor Zubkov 1.23-alt1 +- 1.21 -> 1.23 + +* Sat Jul 19 2008 Igor Zubkov 1.21-alt1 +- 1.17.2 -> 1.21 + +* Thu Nov 01 2007 Igor Zubkov 1.17.2-alt1 +- build for Sisyphus + diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 00000000..1024590b --- /dev/null +++ b/.gear/rules @@ -0,0 +1,3 @@ +tar: fio-@version@:. +diff: fio-@version@:. . +spec: .gear/fio.spec diff --git a/.gear/tags/251ecf75c85e151eefcb7ca523cb4cccfffc23ad b/.gear/tags/251ecf75c85e151eefcb7ca523cb4cccfffc23ad new file mode 100644 index 00000000..74ea17bd --- /dev/null +++ b/.gear/tags/251ecf75c85e151eefcb7ca523cb4cccfffc23ad @@ -0,0 +1,23 @@ +object 0313e938c9c8bb37d71dade239f1f5326677b079 +type commit +tag fio-3.27 +tagger Jens Axboe 1622045445 -0600 + +fio v3.27 +-----BEGIN PGP SIGNATURE----- + +iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmCucwUQHGF4Ym9lQGtl +cm5lbC5kawAKCRD301j7KXHgpp3dEAC7siCePLt5gp/0AxlylxfHTOMEDGgwv4Ub +NOyhSBUyknOyao0QMVmpFKCcUqUV4mqLuEcTe5KOq6wdMsP7a0Oi1mMjLR1Dp+Ud +rwJuIx2k+C3oYtWs0XUE0EC292RDhA3SJRHXMLVl624UbnQcBIhWfG5PuqFptMuL +mND9gScfN1pqh6B9BRaRq4Ott0hxc/W3ZryBMT4Vw3+ai7jpUG56eZroqbaYOS7t +w/r7Od0zvxX9bSA9iLNNAiBYCIde6W4W9QFILE6GfvsPqAvx+AGU1gbHKLfvkdBO +hSrI7SyvfpNhk5/rFEtqMA19G+QWOCwWfV9l5rjfG4jY+ao6feII5o7pbbyJS53C +N1izKIgzN1muJnzEeiwxdIv3+GTqp9WJj7Fjn+mXQuQg3f2ElT24Q1wicr9OifRU +O3birx0anDJlq/DkvKlbK+I6d0POdknFGltrPjtdgotScK/yoEonQ3nKBKvxpPVb +ZmALC2SFM7MZReBrvpzyj1ku5tRj/yUAuDkuHLXMRymkvIwjGxaiW6Ux97tbru9Y +ngZnJ8JszZNVnsHi82zpvKTj+Sw4A5GDvl7McXmj5ritYnurrpn1MkEyeL6IbhxT +ZjI21ORP7wnKE1DFp56I6pj+vQ96WRy++GDC9KlGjEhz2gZhDkqPP2KhGnZWLJT0 +MraTcFwcAw== +=Pku9 +-----END PGP SIGNATURE----- diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 00000000..10816dd6 --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1 @@ +251ecf75c85e151eefcb7ca523cb4cccfffc23ad fio-3.27 diff --git a/.gear/upstream/remotes b/.gear/upstream/remotes new file mode 100644 index 00000000..cbfe6327 --- /dev/null +++ b/.gear/upstream/remotes @@ -0,0 +1,3 @@ +[remote "upstream"] + url = git://git.kernel.dk/fio.git + fetch = +refs/heads/*:refs/remotes/upstream/* diff --git a/diskutil.c b/diskutil.c index 0051a7a0..ace7af3d 100644 --- a/diskutil.c +++ b/diskutil.c @@ -166,14 +166,10 @@ static int get_device_numbers(char *file_name, int *maj, int *min) if (S_ISBLK(st.st_mode)) { majdev = major(st.st_rdev); mindev = minor(st.st_rdev); - } else if (S_ISCHR(st.st_mode)) { - majdev = major(st.st_rdev); - mindev = minor(st.st_rdev); - if (fio_lookup_raw(st.st_rdev, &majdev, &mindev)) - return -1; - } else if (S_ISFIFO(st.st_mode)) + } else if (S_ISCHR(st.st_mode) || + S_ISFIFO(st.st_mode)) { return -1; - else { + } else { majdev = major(st.st_dev); mindev = minor(st.st_dev); } diff --git a/fio.1 b/fio.1 index ab08cb01..465a447e 100644 --- a/fio.1 +++ b/fio.1 @@ -1653,9 +1653,7 @@ Sets size to something really large and waits for ENOSPC (no space left on device) or EDQUOT (disk quota exceeded) as the terminating condition. Only makes sense with sequential write. For a read workload, the mount point will be filled first then I/O -started on the result. This option doesn't make sense if operating on a raw -device node, since the size of that is already known by the file system. -Additionally, writing beyond end-of-device will not return ENOSPC there. +started on the result. .SS "I/O engine" .TP .BI ioengine \fR=\fPstr diff --git a/os/os-linux.h b/os/os-linux.h index f7137abe..16ed5258 100644 --- a/os/os-linux.h +++ b/os/os-linux.h @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -41,7 +40,6 @@ #define FIO_HAVE_IOSCHED_SWITCH #define FIO_HAVE_ODIRECT #define FIO_HAVE_HUGETLB -#define FIO_HAVE_RAWBIND #define FIO_HAVE_BLKTRACE #define FIO_HAVE_CL_SIZE #define FIO_HAVE_CGROUPS @@ -178,36 +176,6 @@ static inline unsigned long long os_phys_mem(void) return (unsigned long long) pages * (unsigned long long) pagesize; } -static inline int fio_lookup_raw(dev_t dev, int *majdev, int *mindev) -{ - struct raw_config_request rq; - int fd; - - if (major(dev) != RAW_MAJOR) - return 1; - - /* - * we should be able to find /dev/rawctl or /dev/raw/rawctl - */ - fd = open("/dev/rawctl", O_RDONLY); - if (fd < 0) { - fd = open("/dev/raw/rawctl", O_RDONLY); - if (fd < 0) - return 1; - } - - rq.raw_minor = minor(dev); - if (ioctl(fd, RAW_GETBIND, &rq) < 0) { - close(fd); - return 1; - } - - close(fd); - *majdev = rq.block_major; - *mindev = rq.block_minor; - return 0; -} - #ifdef O_NOATIME #define FIO_O_NOATIME O_NOATIME #else diff --git a/os/os.h b/os/os.h index e47d3d97..17daf91d 100644 --- a/os/os.h +++ b/os/os.h @@ -157,10 +157,6 @@ extern int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu); #define OS_RAND_MAX RAND_MAX #endif -#ifndef FIO_HAVE_RAWBIND -#define fio_lookup_raw(dev, majdev, mindev) 1 -#endif - #ifndef FIO_PREFERRED_ENGINE #define FIO_PREFERRED_ENGINE "psync" #endif