RE: sockperf make problems

146 views
Skip to first unread message

Avner Ben Hanoch

unread,
Jun 16, 2011, 6:27:11 AM6/16/11
to Richard....@informatix-sol.com, sockperf...@googlegroups.com, Yeela Shwartz, Alex Rosenbaum, igor....@itseez.com

Hi Richard,

 

Thanks for using sockperf.  I’ll try to give you quick answer.  Yeela will continue in case you have more questions.

 

1.      For latency we measure RTT and present RTT/2 (this is common in our field). 
The point is that sockperf has 2 main modes: 1) ping-pong in which all packets are replied, and 2) under-load in which 1% (configurable) of the packets are replied. Since the replies are so rare, they have neglected effect on the 1 way load stream.  Still, they give us enough observations for valid performance numbers/statists.
Also, please notice that sockperf consumes very low overhead for itself.  It uses RDTSC and many other various techniques for minimizing its overhead.

 

2.      For the compilation issue:

a.      The compilation error you encountered is related to the fact that we treat warnings as errors (-Werror) and that we ask compiler to issue warning any time it decides to avoid inlining code that we recommended for inlining (-Winline).  It is not real error, it is only because we want to be aware of optimizer decisions.   Since, you have a very new compiler it catches inline issues that were not caught with previous compilers.

b.      I’ll appreciate if you can open formal issue in http://code.google.com/p/sockperf/issues/list and one of us will address it soon.  Meanwhile, I can offer you several alternatives:

                                                    i.     Compile on other platform: the version you have was adjusted for RHEL 6.0 with gcc 4.4.4.  Older compilers are expected to be okay.

                                                   ii.     Try sockperf_v1 (only UDP is supported, code is much simpler) - http://code.google.com/p/sockperf/downloads/list

                                                  iii.     Try latest version from svn: http://code.google.com/p/sockperf/source/checkout

Regards,

  Avner

 

--

Avner BenHanoch | Sr Sw Engeneer | App Accelleration | Mellanox – Raanana | +972-(74)7129409

 

 

 

From: richard Croucher [mailto:Richard....@informatix-sol.com]
Sent: Thursday, June 16, 2011 10:17 AM
To: Avner Ben Hanoch; igor....@itseez.com
Subject: sockperf make problems

 

I'm trying to build sockperf for our latency testing and to better understand the report given to me by the sales team comparing VMA with Openonload. 
I don't see how you have been able to measure the latency of each individual leg, rather than just the RTT.

Unfortunately, sockperf fails to build on my dev environment.   What tool chain have you been using.

I running ubuntu 11.04 with g++ 4.5.2

Make errors are:
richardc@vaio-linux:/windata/EclipseProjects/sockperf-2.5.30$ make
make  all-recursive
make[1]: Entering directory `/windata/EclipseProjects/sockperf-2.5.30'
Making all in src
make[2]: Entering directory `/windata/EclipseProjects/sockperf-2.5.30/src'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.    -g -O2 -MT aopt.o -MD -MP -MF ".deps/aopt.Tpo" -c -o aopt.o aopt.c; \
then mv -f ".deps/aopt.Tpo" ".deps/aopt.Po"; else rm -f ".deps/aopt.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.    -Werror -Winline -Wall  --param inline-unit-growth=200  -D__LINUX__  -DVERSION=2.5.30 -O3 -DNDEBUG -MT Client.o -MD -MP -MF ".deps/Client.Tpo" -c -o Client.o Client.cpp; \
then mv -f ".deps/Client.Tpo" ".deps/Client.Po"; else rm -f ".deps/Client.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.    -Werror -Winline -Wall  --param inline-unit-growth=200  -D__LINUX__  -DVERSION=2.5.30 -O3 -DNDEBUG -MT common.o -MD -MP -MF ".deps/common.Tpo" -c -o common.o common.cpp; \
then mv -f ".deps/common.Tpo" ".deps/common.Po"; else rm -f ".deps/common.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.    -Werror -Winline -Wall  --param inline-unit-growth=200  -D__LINUX__  -DVERSION=2.5.30 -O3 -DNDEBUG -MT Defs.o -MD -MP -MF ".deps/Defs.Tpo" -c -o Defs.o Defs.cpp; \
then mv -f ".deps/Defs.Tpo" ".deps/Defs.Po"; else rm -f ".deps/Defs.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.    -Werror -Winline -Wall  --param inline-unit-growth=200  -D__LINUX__  -DVERSION=2.5.30 -O3 -DNDEBUG -MT IoHandlers.o -MD -MP -MF ".deps/IoHandlers.Tpo" -c -o IoHandlers.o IoHandlers.cpp; \
then mv -f ".deps/IoHandlers.Tpo" ".deps/IoHandlers.Po"; else rm -f ".deps/IoHandlers.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.    -Werror -Winline -Wall  --param inline-unit-growth=200  -D__LINUX__  -DVERSION=2.5.30 -O3 -DNDEBUG -MT Message.o -MD -MP -MF ".deps/Message.Tpo" -c -o Message.o Message.cpp; \
then mv -f ".deps/Message.Tpo" ".deps/Message.Po"; else rm -f ".deps/Message.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.    -Werror -Winline -Wall  --param inline-unit-growth=200  -D__LINUX__  -DVERSION=2.5.30 -O3 -DNDEBUG -MT PacketTimes.o -MD -MP -MF ".deps/PacketTimes.Tpo" -c -o PacketTimes.o PacketTimes.cpp; \
then mv -f ".deps/PacketTimes.Tpo" ".deps/PacketTimes.Po"; else rm -f ".deps/PacketTimes.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.    -Werror -Winline -Wall  --param inline-unit-growth=200  -D__LINUX__  -DVERSION=2.5.30 -O3 -DNDEBUG -MT Playback.o -MD -MP -MF ".deps/Playback.Tpo" -c -o Playback.o Playback.cpp; \
then mv -f ".deps/Playback.Tpo" ".deps/Playback.Po"; else rm -f ".deps/Playback.Tpo"; exit 1; fi
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.    -Werror -Winline -Wall  --param inline-unit-growth=200  -D__LINUX__  -DVERSION=2.5.30 -O3 -DNDEBUG -MT Server.o -MD -MP -MF ".deps/Server.Tpo" -c -o Server.o Server.cpp; \
then mv -f ".deps/Server.Tpo" ".deps/Server.Po"; else rm -f ".deps/Server.Tpo"; exit 1; fi
cc1plus: warnings being treated as errors
Server.h: In member function ‘void Server<IoType, SwitchActivityInfo, SwitchCalcGaps>::doLoop() [with IoType = IoEpoll, SwitchActivityInfo = SwitchOff, SwitchCalcGaps = SwitchOff]’:
Server.h:193:13: error: inlining failed in call to ‘bool Server<IoType, SwitchActivityInfo, SwitchCalcGaps>::server_receive_then_send(int) [with IoType = IoEpoll, SwitchActivityInfo = SwitchOff, SwitchCalcGaps = SwitchOff]’: --param max-inline-insns-single limit reached
Server.cpp:179:6: error: called from here
make[2]: *** [Server.o] Error 1
make[2]: Leaving directory `/windata/EclipseProjects/sockperf-2.5.30/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/windata/EclipseProjects/sockperf-2.5.30'
make: *** [all] Error 2

--

Richard Croucher
www.informatix-sol.com
+44-7802-213901

 

Reply all
Reply to author
Forward
0 new messages