[qperf/f15] Initial import into fedora git
Doug Ledford
dledford at fedoraproject.org
Wed Jan 11 18:34:47 UTC 2012
commit 38398ebb147fbf5a8142202837225bf5dd3f7960
Author: Doug Ledford <dledford at redhat.com>
Date: Wed Jan 11 13:34:03 2012 -0500
Initial import into fedora git
Signed-off-by: Doug Ledford <dledford at redhat.com>
.gitignore | 14 +++
qperf-0.4.4-noxrc.patch | 299 +++++++++++++++++++++++++++++++++++++++++++++++
qperf.spec | 79 +++++++++++++
sources | 1 +
4 files changed, 393 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..32d18f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,14 @@
+i386/
+i686/
+x86_64/
+ppc/
+ppc64/
+ia64/
+mips/
+arm*/
+noarch/
+.project
+*.src.rpm
+.build*.log
+/qperf-0.4.6/
+/qperf-0.4.6-0.1.gb81434e.tar.gz
diff --git a/qperf-0.4.4-noxrc.patch b/qperf-0.4.4-noxrc.patch
new file mode 100644
index 0000000..b745393
--- /dev/null
+++ b/qperf-0.4.4-noxrc.patch
@@ -0,0 +1,299 @@
+--- qperf-0.4.4/src/rdma.c.noxrc 2009-05-27 11:26:36.000000000 -0400
++++ qperf-0.4.4/src/rdma.c 2009-06-21 17:04:05.436610235 -0400
+@@ -78,7 +78,6 @@
+ */
+ typedef enum ibv_wr_opcode ibv_op;
+ typedef struct ibv_comp_channel ibv_cc;
+-typedef struct ibv_xrc_domain ibv_xrc;
+
+
+ /*
+@@ -159,7 +158,6 @@ typedef struct DEVICE {
+ struct ibv_qp *qp; /* Queue Pair */
+ struct ibv_ah *ah; /* Address handle */
+ struct ibv_srq *srq; /* Shared receive queue */
+- ibv_xrc *xrc; /* XRC domain */
+ } DEVICE;
+
+
+@@ -756,76 +754,6 @@ run_server_ud_lat(void)
+
+
+ /*
+- * Measure XRC bi-directional bandwidth (client side).
+- */
+-void
+-run_client_xrc_bi_bw(void)
+-{
+- par_use(L_ACCESS_RECV);
+- par_use(R_ACCESS_RECV);
+- rd_params(IBV_QPT_XRC, K64, 1, 0);
+- rd_bi_bw(IBV_QPT_XRC);
+- show_results(BANDWIDTH);
+-}
+-
+-
+-/*
+- * Measure XRC bi-directional bandwidth (server side).
+- */
+-void
+-run_server_xrc_bi_bw(void)
+-{
+- rd_bi_bw(IBV_QPT_XRC);
+-}
+-
+-
+-/*
+- * Measure XRC bandwidth (client side).
+- */
+-void
+-run_client_xrc_bw(void)
+-{
+- par_use(L_ACCESS_RECV);
+- par_use(R_ACCESS_RECV);
+- par_use(L_NO_MSGS);
+- par_use(R_NO_MSGS);
+- rd_params(IBV_QPT_XRC, K64, 1, 0);
+- rd_client_bw(IBV_QPT_XRC);
+- show_results(BANDWIDTH);
+-}
+-
+-
+-/*
+- * Measure XRC bandwidth (server side).
+- */
+-void
+-run_server_xrc_bw(void)
+-{
+- rd_server_def(IBV_QPT_XRC);
+-}
+-
+-
+-/*
+- * Measure XRC latency (client side).
+- */
+-void
+-run_client_xrc_lat(void)
+-{
+- rd_params(IBV_QPT_XRC, 1, 1, 0);
+- rd_pp_lat(IBV_QPT_XRC, IO_SR);
+-}
+-
+-
+-/*
+- * Measure XRC latency (server side).
+- */
+-void
+-run_server_xrc_lat(void)
+-{
+- rd_pp_lat(IBV_QPT_XRC, IO_SR);
+-}
+-
+-/*
+ * Verify RC compare and swap (client side).
+ */
+ void
+@@ -1547,24 +1475,16 @@ show_node_info(DEVICE *dev)
+
+ if (Req.use_cm)
+ debug("L: rkey=%08x vaddr=%010x", n->rkey, n->vaddr);
+- else if (dev->trans == IBV_QPT_XRC) {
+- debug("L: lid=%04x qpn=%06x psn=%06x rkey=%08x vaddr=%010x srqn=%08x",
+- n->lid, n->qpn, n->psn, n->rkey, n->vaddr, n->srqn);
+- } else {
++ else
+ debug("L: lid=%04x qpn=%06x psn=%06x rkey=%08x vaddr=%010x",
+ n->lid, n->qpn, n->psn, n->rkey, n->vaddr);
+- }
+
+ n = &dev->rnode;
+ if (Req.use_cm)
+ debug("R: rkey=%08x vaddr=%010x", n->rkey, n->vaddr);
+- else if (dev->trans == IBV_QPT_XRC) {
+- debug("R: lid=%04x qpn=%06x psn=%06x rkey=%08x vaddr=%010x srqn=%08x",
+- n->lid, n->qpn, n->psn, n->rkey, n->vaddr);
+- } else {
++ else
+ debug("R: lid=%04x qpn=%06x psn=%06x rkey=%08x vaddr=%010x",
+ n->lid, n->qpn, n->psn, n->rkey, n->vaddr, n->srqn);
+- }
+ }
+
+
+@@ -1656,28 +1576,6 @@ rd_create_qp(DEVICE *dev, struct ibv_con
+ error(SYS, "failed to create QP");
+ dev->qp = id->qp;
+ } else {
+- if (dev->trans == IBV_QPT_XRC) {
+- struct ibv_srq_init_attr srq_attr ={
+- .attr ={
+- .max_wr = dev->max_recv_wr,
+- .max_sge = 1
+- }
+- };
+-
+- dev->xrc = ibv_open_xrc_domain(context, -1, O_CREAT);
+- if (!dev->xrc)
+- error(SYS, "failed to open XRC domain");
+-
+- dev->srq = ibv_create_xrc_srq(dev->pd, dev->xrc, dev->cq,
+- &srq_attr);
+- if (!dev->srq)
+- error(SYS, "failed to create SRQ");
+-
+- qp_attr.cap.max_recv_wr = 0;
+- qp_attr.cap.max_recv_sge = 0;
+- qp_attr.xrc_domain = dev->xrc;
+- }
+-
+ dev->qp = ibv_create_qp(dev->pd, &qp_attr);
+ if (!dev->qp)
+ error(SYS, "failed to create QP");
+@@ -2079,7 +1977,7 @@ ib_open(DEVICE *dev)
+ if (dev->trans == IBV_QPT_UD) {
+ flags |= IBV_QP_QKEY;
+ attr.qkey = dev->qkey;
+- } else if (dev->trans == IBV_QPT_RC || dev->trans == IBV_QPT_XRC) {
++ } else if (dev->trans == IBV_QPT_RC) {
+ flags |= IBV_QP_ACCESS_FLAGS;
+ attr.qp_access_flags =
+ IBV_ACCESS_REMOTE_READ |
+@@ -2096,8 +1994,6 @@ ib_open(DEVICE *dev)
+ /* Set up local node QP number, PSN and SRQ number */
+ dev->lnode.qpn = dev->qp->qp_num;
+ dev->lnode.psn = lrand48() & 0xffffff;
+- if (dev->trans == IBV_QPT_XRC)
+- dev->lnode.srqn = dev->srq->xrc_srq_num;
+
+ /* Set up alternate port LID */
+ if (Req.alt_port) {
+@@ -2177,7 +2073,7 @@ ib_prep(DEVICE *dev)
+ dev->ah = ibv_create_ah(dev->pd, &ah_attr);
+ if (!dev->ah)
+ error(SYS, "failed to create address handle");
+- } else if (dev->trans == IBV_QPT_RC || dev->trans == IBV_QPT_XRC) {
++ } else if (dev->trans == IBV_QPT_RC) {
+ /* Modify queue pair to RTR */
+ flags = IBV_QP_STATE |
+ IBV_QP_AV |
+@@ -2231,8 +2127,6 @@ ib_close1(DEVICE *dev)
+ ibv_destroy_qp(dev->qp);
+ if (dev->srq)
+ ibv_destroy_srq(dev->srq);
+- if (dev->xrc)
+- ibv_close_xrc_domain(dev->xrc);
+ }
+
+
+@@ -2360,8 +2254,7 @@ rd_post_send(DEVICE *dev, int off, int l
+ wr.wr.ud.ah = dev->ah;
+ wr.wr.ud.remote_qpn = dev->rnode.qpn;
+ wr.wr.ud.remote_qkey = dev->qkey;
+- } else if (dev->trans == IBV_QPT_XRC)
+- wr.xrc_remote_srq_num = dev->rnode.srqn;
++ }
+
+ if (dev->msg_size <= dev->max_inline)
+ wr.send_flags |= IBV_SEND_INLINE;
+--- qperf-0.4.4/src/qperf.h.noxrc 2009-06-21 17:09:21.359610864 -0400
++++ qperf-0.4.4/src/qperf.h 2009-06-21 17:09:31.161485332 -0400
+@@ -349,12 +349,6 @@ void run_client_ver_rc_compare_swap(v
+ void run_server_ver_rc_compare_swap(void);
+ void run_client_ver_rc_fetch_add(void);
+ void run_server_ver_rc_fetch_add(void);
+-void run_client_xrc_bi_bw(void);
+-void run_server_xrc_bi_bw(void);
+-void run_client_xrc_bw(void);
+-void run_server_xrc_bw(void);
+-void run_client_xrc_lat(void);
+-void run_server_xrc_lat(void);
+
+
+ /*
+--- qperf-0.4.4/src/qperf.c.noxrc 2009-06-21 17:06:55.401360006 -0400
++++ qperf-0.4.4/src/qperf.c 2009-06-21 17:09:01.566485253 -0400
+@@ -588,9 +588,6 @@ TEST Tests[] ={
+ test(ud_lat),
+ test(ver_rc_compare_swap),
+ test(ver_rc_fetch_add),
+- test(xrc_bi_bw),
+- test(xrc_bw),
+- test(xrc_lat),
+ #endif
+ };
+
+--- qperf-0.4.4/src/help.txt.noxrc 2009-06-21 17:12:10.318360294 -0400
++++ qperf-0.4.4/src/help.txt 2009-06-21 17:12:37.148360683 -0400
+@@ -94,9 +94,6 @@
+ udp_lat
+ ver_rc_compare_swap
+ ver_rc_fetch_add
+- xrc_bi_bw
+- xrc_bw
+- xrc_lat
+ Examples
+ In these examples, we first run qperf on a node called myserver in server
+ mode by invoking it with no arguments. In all the subsequent examples, we
+@@ -392,9 +389,6 @@
+ ud_bi_bw UD streaming two way bandwidth
+ ud_bw UD streaming one way bandwidth
+ ud_lat UD one way latency
+- xrc_bi_bw XRC streaming two way bandwidth
+- xrc_bw XRC streaming one way bandwidth
+- xrc_lat XRC one way latency
+ RDMA
+ rc_rdma_read_bw RC RDMA read streaming one way bandwidth
+ rc_rdma_read_lat RC RDMA read one way latency
+@@ -928,52 +922,3 @@
+ Tests the RC Fetch and Add Atomic operation. The server's memory
+ location starts with zero and the client successively adds one. The
+ results are checked for correctness.
+-xrc_bw +RDMA
+- Purpose
+- XRC streaming one way bandwidth
+- Common Options
+- --access_recv OnOff (-ar) Access received data
+- --id Device:Port (-i) Set RDMA device and port
+- --msg_size Size (-m) Set message size
+- --cq_poll OnOff Set polling mode on/off
+- --time (-t) Set test duration
+- Other Options
+- --cpu_affinity, --listen_port, --mtu_size, --static_rate, --timeout
+- Display Options
+- --precision, --unify_nodes, --unify_units, --use_bits_per_sec,
+- --verbose
+- Description
+- The client sends messages to the server who notes how many it received.
+- The XRC Send/Receive mechanism is used.
+-xrc_bi_bw +RDMA
+- Purpose
+- XRC streaming two way bandwidth
+- Common Options
+- --access_recv OnOff (-ar) Access received data
+- --id Device:Port (-i) Set RDMA device and port
+- --msg_size Size (-m) Set message size
+- --cq_poll OnOff Set polling mode on/off
+- --time (-t) Set test duration
+- Other Options
+- --cpu_affinity, --listen_port, --mtu_size, --static_rate, --timeout
+- Display Options
+- --precision, --unify_nodes, --unify_units, --use_bits_per_sec,
+- --verbose
+- Description
+- Both the client and server exchange messages with each other using the
+- XRC Send/Receive mechanism and note how many were received.
+-xrc_lat +RDMA
+- Purpose
+- XRC one way latency
+- Common Options
+- --id Device:Port (-i) Set RDMA device and port
+- --msg_size Size (-m) Set message size
+- --cq_poll OnOff Set polling mode on/off
+- --time (-t) Set test duration
+- Other Options
+- --cpu_affinity, --listen_port, --mtu_size, --static_rate, --timeout
+- Display Options
+- --precision, --unify_nodes, --unify_units, --verbose
+- Description
+- A ping pong latency test where the server and client exchange messages
+- repeatedly using XRC Send/Receive.
diff --git a/qperf.spec b/qperf.spec
new file mode 100644
index 0000000..cf73c4d
--- /dev/null
+++ b/qperf.spec
@@ -0,0 +1,79 @@
+Name: qperf
+Summary: Measure socket and RDMA performance
+Version: 0.4.6
+Release: 4%{?dist}
+License: GPLv2 or BSD
+Group: Networking/Diagnostic
+Source: http://www.openfabrics.org/downloads/%{name}/%{name}-%{version}-0.1.gb81434e.tar.gz
+Patch0: qperf-0.4.4-noxrc.patch
+Url: http://www.openfabrics.org
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: libibverbs-devel >= 1.1.2-4, librdmacm-devel >= 1.0.8-5
+ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64
+%description
+Measure socket and RDMA performance.
+
+%prep
+%setup -q
+%patch0 -p1 -b .noxrc
+
+%build
+export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
+%configure
+%{__make}
+
+%install
+rm -rf %{buildroot}
+%{__make} DESTDIR=%{buildroot} install
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-, root, root)
+%doc COPYING
+%_bindir/qperf
+%_mandir/man1/qperf.1*
+
+%changelog
+* Fri Jan 06 2012 Doug Ledford <dledford at redhat.com> - 0.4.6-4
+- Initial import into Fedora
+
+* Fri Jul 22 2011 Doug Ledford <dledford at redhat.com> - 0.4.6-3.el6
+- Fix failure to build on i686
+- Resolves: bz724899
+
+* Mon Jan 25 2010 Doug Ledford <dledford at redhat.com> - 0.4.6-2.el6
+- Cleanups for pkgwrangler import
+- Related: bz543948
+
+* Tue Dec 22 2009 Doug Ledford <dledford at redhat.com> - 0.4.6-1.el5
+- Update to latest upstream version
+- Related: bz518218
+
+* Mon Jun 22 2009 Doug Ledford <dledford at redhat.com> - 0.4.4-3.el5
+- Rebuild against libibverbs that isn't missing the proper ppc wmb() macro
+- Related: bz506258
+
+* Sun Jun 21 2009 Doug Ledford <dledford at redhat.com> - 0.4.4-2.el5
+- Build against non-XRC libibverbs
+- Update to ofed 1.4.1 final bits
+- Related: bz506097, bz506258
+
+* Sat Apr 18 2009 Doug Ledford <dledford at redhat.com> - 0.4.4-1.el5
+- Update to ofed 1.4.1-rc3 version
+- Related: bz459652
+
+* Thu Sep 18 2008 Doug Ledford <dledford at redhat.com> - 0.4.1-2
+- Add a build flag to silence some warnings
+
+* Wed Sep 17 2008 Doug Ledford <dledford at redhat.com> - 0.4.1-1
+- Update to the qperf tarball found in the OFED-1.4-beta1 tarball
+- Resolves: bz451483
+
+* Tue Apr 01 2008 Doug Ledford <dledford at redhat.com> - 0.4.0-1
+- Initial import to Red Hat repo management
+- Related: bz428197
+
+* Sat Oct 20 2007 - johann at georgex.org
+- Initial package
diff --git a/sources b/sources
index e69de29..42a52b1 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+46d427f3c5e853ce0d260cc85c4785f8 qperf-0.4.6-0.1.gb81434e.tar.gz
More information about the scm-commits
mailing list