9115169
Name:           sockperf
6e84bc9
Version:        3.6
0768560
Release:        3%{?dist}
9115169
Summary:        Network benchmarking utility for testing latency and throughput
9115169
License:        BSD
3376893
URL:            https://github.com/Mellanox/%{name}
3376893
Source0:        https://github.com/Mellanox/%{name}/archive/%{version}.tar.gz
6e84bc9
Patch0001:      0001-issue-1380243-Fix-close-SocketXtreme-established-TCP.patch
6e84bc9
Patch0002:      0002-issue-1679157-Fix-gcc8-build-warnings.patch
ce4dc6e
3376893
BuildRequires:  gcc-c++
ce4dc6e
BuildRequires:  autoconf automake
9115169
BuildRequires:  doxygen
9115169
9115169
%description
9115169
sockperf is a network benchmarking utility over socket API that was designed
9115169
for testing performance (latency and throughput) of high-performance systems
9115169
(it is also good for testing performance of regular networking systems as
9115169
well). It covers most of the socket API calls and options.
9115169
9115169
Specifically, in addition to the standard throughput tests, sockperf, does the
9115169
following:
9115169
9115169
* Measure latency of each discrete packet at sub-nanosecond resolution (using
9115169
  TSC register that counts CPU ticks with very low overhead).
9115169
9115169
* Does the above for both ping-pong mode and for latency under load mode. This
9115169
  means that we measure latency of single packets even under load of millions
9115169
  Packets Per Second (without waiting for reply of packet before sending
9115169
  subsequent packet on time)
9115169
9115169
* Enable spike analysis by providing histogram, with various percentiles of the
9115169
  packets’ latencies (for example: median, min, max, 99%% percentile, and more),
9115169
  (this is in addition to average and standard deviation). Also, sockperf
9115169
  provides full log with all packet’s tx/rx times that can be further analyzed
9115169
  with external tools, such as MS-Excel or matplotlib - All this without
9115169
  affecting the benchmark itself.
9115169
9115169
* Support MANY optional settings for good coverage of socket API and network
9115169
  configurations, while still keeping very low overhead in the fast path to
9115169
  allow cleanest results.
9115169
9115169
%prep
6e84bc9
%autosetup -p1
7fc00ea
9115169
%build
ce4dc6e
./autogen.sh
ce4dc6e
# Upstream wants and defaults to "-O3 --param inline-unit-growth=200".
ce4dc6e
# The Fedora optflags would override the former, so let's put it back.
ce4dc6e
# Avner wrote:
ce4dc6e
# > I reached that in the past after fine tuning the performance of sockperf.
ce4dc6e
# > We used sockperf for measuring latency of extremely fast networks.
ce4dc6e
# > Sometimes at sub microsecond resolution. This parameter helps us keeping
ce4dc6e
# > the entire fast path of the application as "one big function" with no
ce4dc6e
# > calls to other functions because it helps the compiler to respect all our
ce4dc6e
# > "inline" directive for other functions that we call (while still keeping
ce4dc6e
# > the "one big function" at a reasonable size for good performance at run
ce4dc6e
# > time).
ce4dc6e
export CXXFLAGS='%{optflags} -O3'
9115169
%configure --enable-doc
9115169
# --enable-tool --enable-test
9115169
make %{?_smp_mflags}
9115169
9115169
%install
9115169
%make_install
9115169
9115169
%files
9115169
%{_bindir}/sockperf
9115169
%{_mandir}/man3/sockperf.3.*
9115169
%{_pkgdocdir}
9115169
9115169
%changelog
0768560
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6-3
0768560
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
0768560
0e037d1
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.6-2
0e037d1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
0e037d1
6e84bc9
* Mon Nov 04 2019 Michal Schmidt <mschmidt@redhat.com> - 3.6-1
6e84bc9
- Upstream release 3.6.
6e84bc9
- Plus a couple of fixes from upstream git.
6e84bc9
640562c
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.5-3
640562c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
640562c
58d03d5
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.5-2
58d03d5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
58d03d5
f9ad518
* Wed Aug 01 2018 Michal Schmidt <mschmidt@redhat.com> - 3.5-1
f9ad518
- Upstream release 3.5.
f9ad518
1f2df3d
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.3-2
1f2df3d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
1f2df3d
3376893
* Wed Mar 07 2018 Michal Schmidt <mschmidt@redhat.com> - 3.3-1
3376893
- Upstream release 3.3.
3376893
- BR: gcc-c++
3376893
e2fd514
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-7.gitc1f3ca79bff9
e2fd514
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
e2fd514
5e7963b
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-6.gitc1f3ca79bff9
5e7963b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
5e7963b
a2879b6
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-5.gitc1f3ca79bff9
a2879b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
a2879b6
ffb817f
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.6-4.gitc1f3ca79bff9
ffb817f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
ffb817f
30593da
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-3.gitc1f3ca79bff9
30593da
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
30593da
1a1046d
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.6-2.gitc1f3ca79bff9
1a1046d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
1a1046d
ce4dc6e
* Wed Sep 09 2015 Michal Schmidt <mschmidt@redhat.com> - 2.6-1.gitc1f3ca79bff9
ce4dc6e
- Update to current upstream snapshot.
ce4dc6e
- Adjust for upstream move to github.
ce4dc6e
- Drop patches (upstreamed).
ce4dc6e
- Compile with -O3 as recommended by upstream.
ce4dc6e
7fc00ea
* Thu Aug 27 2015 Ralf Corsepius <corsepiu@fedoraproject.org> - 2.5.244-4
7fc00ea
- Modity 0001-Don-t-throw-away-Fedora-s-CXXFLAGS.patch to remove -Werror
7fc00ea
  from configure.ac (Fix F23FTBFS, RHBZ#1240012).
7fc00ea
- Run doxygen -u.
7fc00ea
b81e641
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5.244-3
b81e641
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
b81e641
65357d5
* Sat Oct 04 2014 Dan Horák <dan[at]danny.cz> - 2.5.244-2
65357d5
- Add s390(x) support
65357d5
8a2dfca
* Mon Sep 08 2014 Michal Schmidt <mschmidt@redhat.com> - 2.5.244-1
69b0c9c
- Update to current upstream from SVN. Has aarch64 and ppc64 support.
69b0c9c
- Simplify svnversion substitution.
69b0c9c
- Build fix. Make sure config/m4 exists.
8a2dfca
74935ab
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5.241-6
74935ab
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
74935ab
3c688f3
* Mon Jun 16 2014 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> - 2.5.241-5
3c688f3
- Added AArch64 support
3c688f3
c23d294
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5.241-4
c23d294
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
c23d294
9115169
* Thu Apr 24 2014 Michal Schmidt <mschmidt@redhat.com> - 2.5.241-3
9115169
- Adjust the CXXFLAGS patch to drop all optimization flags changing.
9115169
- Run autoreconf with -f to force regenerating config/aux.
9115169
9115169
* Tue Apr 08 2014 Michal Schmidt <mschmidt@redhat.com> - 2.5.241-2
9115169
- Use %%autosetup.
9115169
9115169
* Fri Mar 21 2014 Michal Schmidt <mschmidt@redhat.com> - 2.5.241-1
9115169
- Initial Fedora packaging.