diff --git a/0001-Update-qperf.c.patch b/0001-Update-qperf.c.patch new file mode 100644 index 0000000..94ded0a --- /dev/null +++ b/0001-Update-qperf.c.patch @@ -0,0 +1,43 @@ +From 3d4ed395c32ae4c9a3b9a6ec83feb448eaa17b20 Mon Sep 17 00:00:00 2001 +From: SangameshwarBabu +Date: Wed, 15 Jun 2022 00:10:36 +0530 +Subject: [PATCH] Update qperf.c + +Current version of qperf throws errors in environment with only ipv4 address + + With ipv6.disable in kernel command line : + + # qperf + unable to bind to listen port + + strace : + 9052 14:24:36.118470 socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP) = -1 EAFNOSUPPORT (Address family not supported by protocol) <0.001313> + 9052 14:24:36.119820 fstat(1>, {st_dev=makedev(0, 23), st_ino=3, st_mode=S_IFCHR|0620, st_nlink=1, st_uid=0, st_gid=5, st_blksize=1024, st_blocks=0, st_rdev=makedev(136, 0), st_atime=1651602272 /* 2022-05-03T14:24:32.680622196-0400 */, st_atime_nsec=680622196, st_mtime=1651602272 /* 2022-05-03T14:24:32.680622196-0400 */, st_mtime_nsec=680622196, st_ctime=1651602034 /* 2022-05-03T14:20:34.680622196-0400 */, st_ctime_nsec=680622196}) = 0 <0.000005> + 9052 14:24:36.119866 write(1>, "unable to bind to listen port\n", 30) = 30 <0.000039> + 9052 14:24:36.119950 exit_group(1) = ? + 9052 14:24:36.120060 +++ exited with 1 ++ + + With qperf version 0.4.9 we defined AI_FAMILY as AF_UNSPEC, starting + qperf 0.4.11 the same is changed to AF_INET6 which causes issues + when ipv6 is disabled at protocol layer (as a kernel command line + arguement). This patch reverses the behavior. +--- + src/qperf.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/qperf.c b/src/qperf.c +index 89fe5b8f2eeb..4de0cceeb10f 100644 +--- a/src/qperf.c ++++ b/src/qperf.c +@@ -1418,7 +1418,7 @@ server_listen(void) + AI *ai; + AI hints ={ + .ai_flags = AI_PASSIVE | AI_NUMERICSERV, +- .ai_family = AF_INET6, ++ .ai_family = AF_UNSPEC, + .ai_socktype = SOCK_STREAM + }; + AI *ailist = getaddrinfo_port(0, ListenPort, &hints); +-- +2.39.2 + diff --git a/qperf.spec b/qperf.spec index 80ec262..7de8079 100644 --- a/qperf.spec +++ b/qperf.spec @@ -1,7 +1,7 @@ Name: qperf Summary: Measure socket and RDMA performance Version: 0.4.11 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2 or BSD Group: Networking/Diagnostic Source: https://github.com/linux-rdma/%{name}/archive/v%{version}.tar.gz @@ -13,11 +13,14 @@ BuildRequires: autoconf automake # RDMA is not currently built on 32-bit ARM: #1484155 ExcludeArch: %{arm} +# rhbz#2099772, https://github.com/linux-rdma/qperf/pull/25/ +Patch0000: 0001-Update-qperf.c.patch + %description Measure socket and RDMA performance. %prep -%setup -q +%autosetup -p1 %build export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" @@ -34,6 +37,10 @@ make DESTDIR=%{buildroot} install %_mandir/man1/qperf.1* %changelog +* Thu Apr 20 2023 Michal Schmidt - 0.4.11-3 +- Restore functionality in IPv4-only environments. +- Resolves: RHELPLAN-125872 + * Wed Apr 07 2021 Honggang Li - 0.4.11-2 - Add qperf for s390x - Resolves: bz1933283