| These are the Release Notes leading-up to Revision 2.4.5 of netperf: | |
| Things changed in this release: | |
| *) Fixes for Linux procstat-based CPU utilization on newer kernels | |
| from Andrew Gallatin. | |
| *) Fix for a TCP_RR hang from Michael Shuldman | |
| *) Compilation cleanups for MingW cnd MSDOS (djgpp) ourtesy of Gisle | |
| Vanem. | |
| *) Changes to enable compilation and building of netperf for | |
| VMware. Kudos to the person who did the first port, I will be happy | |
| to name that person when told it is OK :) | |
| *) Fixes from Adam Bidema for launching netserver children when the | |
| path to netserver.exe is very long. | |
| *) For the first time, netperf2 has a dependency, albeit optional, on | |
| another non-base-os bit of code - libsmbios under Linux. It will | |
| attept to detect this at compile time and use it to report the | |
| system model name in an omni test. If libsmbios is there we will | |
| try to use it, otherwise we will not. If the associated include | |
| file is also there (eg the -dev package in apt-get-speak), we will | |
| use it to get the prototype for SMBIOSGetSystemName, otherwise we | |
| make a guess as to the prototype for SMBIOSGetSystemName(), which | |
| is the only call we make to libsmbios. | |
| *) Fixes for BSD CPU utilization to deal with different BSD variants | |
| using different types. Courtesy of Simon Burge <simonb@NetBSD.org> | |
| *) The "omni" suite has been added on an experimental basis. If it | |
| works-out then many of the tests in src/nettest_bsd.c, | |
| src/nettest_sdp.c, and src/nettest_sctp.c will be "migrated" to use | |
| the "omni infrastructure" (aka two routines to measure them | |
| all...). Apart from reduced socket code, the omni suite has | |
| user-configurable output in either "human readable," CSV or | |
| keyword=value format. By default, a VERY large quantity of data is | |
| output when asking for csv format (test-specific -o option) or | |
| keyword format (test-specific -k option). The omni suite is not | |
| yet documented (there are some as-yet undiagnosed problems with | |
| doc/netperf.texi in emacs texinfo mode and updating nodes and links | |
| and such - any help there would be appreciated) but there is a | |
| small text file in doc/ describing the names (most) of the | |
| available output's. For the most up-to-date list consult | |
| src/nettest_omni.c and the enum netperf_output_name. Or, you can | |
| pass-in a "filename" of '?' to either of the -O, -o or -k options | |
| and netperf will emit a list of the known available outputs. | |
| *) Coming along for the ride are some new platform specific files to | |
| determine the probable egress interface for each end of a test, as | |
| well as driver information for that interface. There is also | |
| reporting of "uname" like information for both local and remote | |
| system, and eventually perhaps something about the vendor's model | |
| name for the systems as well as the processor types. The end goal | |
| is to make it easy to get most if not all what one would want in a | |
| database of netperf results. | |
| *) The UDP_RR test now understands the global -f option to change | |
| output units. It also understands the -B option to tag | |
| results. Courtesy of Alexander Duyck. | |
| *) A fix has been added for hanging UDP_RR tests under | |
| Windows. Courtesy of Alexander Duyck. | |
| *) Use vfork() on those platforms without fork(), courtesy of Matt | |
| Waddel | |
| *) Track the bouncing interfaces that are linux processor affinity | |
| *) Fixes for Solaris sendfilev usage. | |
| *) A TCP_MSS test has been added which will report the MSS for a data | |
| connection setup as if the test were a TCP_STREAM test. While the | |
| remote (netserver) is tricked into thinking it is to accept a | |
| TCP_STREAM test, no actual data will flow over the connection. | |
| This means that if the MSS is one which might change over the life | |
| of the connection, it will not be reflected in the test output. | |
| Should this prove to be a problem a single send() can be arranged | |
| along with the return of the shutdown();recv() handshake. | |
| The idea is that this might be useful for netperf scripts wanting | |
| to parameterize things based on the MSS - for example the | |
| packet_byte_script. | |
| *) The width of the confidence interval can be specified in fractions | |
| of a percent for the confidence of a clean, close, comfortable | |
| calculation. :) | |
| *) Honor the global -B option in a TCP_SENDFILE test. | |
| *) Correct the sense of Send/Recv in the banner of a TCP_MAERTS test. | |
| These are the Release Notes for Revision 2.4.4 of netperf: | |
| Things changed in this release: | |
| *) The LOC_CPU and REM_CPU tests will report their respective beliefs | |
| as to the number of CPUs present when the verbosity is set to more | |
| than one. This can be used when trying to diagnose issues with CPU | |
| utilization. | |
| *) A kind soul who wishes to remain anonymous provided a patch to | |
| enable use of sendfile() on OSX. | |
| *) Fix a misplaced \n in a format string of send_tcp_maerts, courtesy | |
| of Alexander Duyck. | |
| *) There is an experimental global -r option which will allow one to | |
| include CPU utilization measurements, but make the decision about | |
| hitting confidence based on the result only. The test banner will | |
| reflects this when -r is used. | |
| *) It is no longer necessary to specify a file with the global -F | |
| option when running a _SENDFILE test. Netperf will create a | |
| temporary file and populate it with random data and use that. If | |
| running aggregate tests it is strongly suggested one use a -F | |
| option. Otherwise, the overhead spent creating and populating the | |
| temporary file will be included in the CPU utilization calculation. | |
| *) The configure script recognizes Solaris 11 and selects the correct | |
| CPU utilization mechanism - or rather it selects the same mechanism | |
| as is used in Solaris 10. Fix courtesy of Andrew Gallatin. | |
| *) Convert a number of struct sockaddr_in's to struct | |
| sockaddr_storage's and add requisite casts to deal with some abort | |
| problems on Windows and perhaps other platforms as well. Kudos to | |
| Alexander Duyck. | |
| *) One can now pass a value of 'x' to the global -f option to specify | |
| the units as transactions per second. This is the default for any | |
| request/response test, which is determined by there being a "double | |
| `r'" in the name - eg "RR," "rr," "Rr," or "rR." At present only | |
| the TCP_RR test actually looks for this to be set. | |
| *) One can request bits/bytes per second as the primary output of a | |
| TCP_RR test by setting the global -f option to [kmgKMG] as with any | |
| of the "STREAM" tests. This converts the primary throughput metric | |
| to a bitrate (byterate) following the verbosity rules for a STREAM | |
| test. Service demand remains usec/Transaction regardless of the | |
| setting of the global -f option. | |
| A verbosity level of 2 or more will cause the TCP_RR test to report | |
| calculated average RTT latency, transaction rate, and inbound and | |
| outbound transfer rates regardless of the primary units selected | |
| with the global -f paramter. If the primary output is transactions | |
| per second, the reported inbound and outbound transfer rates will | |
| be 10^6 bits per second, otherwise, they honor the setting of the | |
| global -f option. | |
| All of this is EXPERIMENTAL and subject to change without prior | |
| notice in future versions of netperf. | |
| *) Replace "break" with "break 2" in acinclude.m4 for a socklen macro | |
| *) The default for the requested socket buffer size is changed from 0 | |
| to -1 to enable passing a value of 0 under Windows, which tells that | |
| stack one wishes to enable copy-avoidance. | |
| *) Call fflush() on each interim result displayed in demo mode to make | |
| things happier for folks redirecting same to a file. From Dan | |
| Yost. | |
| *) In theory each distinct netserver child will have a debug log with | |
| its pid appended to the name, somewhat like what appears to happen | |
| under Windows. | |
| *) A new global, command-line option to netperf and netserver has been | |
| added. The -V option will cause netperf/netserver to display its | |
| version and exit. | |
| *) Setting -I without setting -i will now implicitly set the iteration | |
| minimum and maximums as if a -i 10,3 were set. Also, some further | |
| sanity checking on the bounds for each is made. | |
| *) Fixed a typo in the manual (found by Emir Halepovic) so the | |
| description for the -s and -S options properly specifies they | |
| affect the data connection. | |
| These are the Release Notes for Revision 2.4.3 of netperf: | |
| Things changed in this release: | |
| *) The UDP_STREAM test includes --enable-demo support, courtesy of | |
| patches from Scott Weitzenkamp. | |
| *) The nettest_dns.* files have been removed from the release and the | |
| repository. Those wishing to perform DNS server tests should | |
| migrate to netperf4 which has better support for DNS test. | |
| *) Fixes for compiling under Windows with Mingw/gcc courtesy of Gisle | |
| Vanem. | |
| *) A new global option - -N - has been added. When specified, this | |
| option will tell netperf to not bother to try to establish a | |
| control connection with a remote netserver. Instead, netperf will | |
| only attempt to make a data connection to the remote system. By | |
| default, this will be to the "discard" service for a "STREAM" or | |
| "SENDFILE" test, the "echo" service for a "RR" test and the | |
| "chargen" service for a "MAERTS" test. Any "remote" settings are | |
| changed to reflect their being unused in the test, and a "no | |
| control" tag is added to the test banner when -N is specified. | |
| This still needs to be propagated to other test files - at least | |
| for those for which it may make sense. | |
| *) The tests in nettest_bsd.c have been altered to not actually take | |
| timestamps and deltas in --enable-histogram unless the verbosity | |
| level has been set to actually display a histogram. This reduces | |
| the overhead measurably, even on systems with "fast" time calls, | |
| which _may_ mean that a future release of netperf may have | |
| histogram support enabled by default. | |
| This still needs to be propagated to other test files. Patches | |
| from the community would be most welcome :) | |
| *) Eliminate a bogus fprintf from the signal catching routine which | |
| was being executed when both intervals and demo mode were active at | |
| the same time. | |
| *) The nettest_ipv6.* files are no longer included in the source | |
| tar/zip file. IPv6 functionality has been subsumed into the | |
| nettest_bsd.* files for some time now. | |
| *) Use a higher resolution "time" source for HISTOGRAM support under | |
| Windows, courtesy of Spencer Frink. Prior to this it had no better | |
| than 10ms granularity which could lead to some rather strange | |
| looking results :) | |
| *) A bug fix reporting recv_size rather than send_size in TCP_MAERTS | |
| when CPU utilization was requested. | |
| *) A bug fix for buffer filling from a file to properly advance the | |
| buffer pointer when the file is smaller than the send buffer. | |
| *) Enable certain UDP tests which previously used unconnected sockets | |
| to use connected sockets. Courtesy of Shilpi Agarwal. | |
| *) The OSX CPU utilization code actually gets put into the tarball in | |
| a make dist now :) | |
| *) The check to make sure that getaddrinfo returned ai_protocol and/or | |
| ai_socktype's matching that which we requested is done for all socket | |
| and/or protocol types and a warning is emitted if it returns any which | |
| do not match. | |
| *) The linux CPU affinity code has been made capable of binding to | |
| CPU's >=32 on a 32-bit compilation and >=64 on a 64-bit | |
| compilation. | |
| *) More complete closing/redirecting of stdin/stdout/stderr/where in | |
| netserver to make it easier to launch netserver at the far-end of a | |
| remote shell. Courtesy of Hans Blom. | |
| *) Sendfile changes for Solaris courtesy of Andrew Gallatin. | |
| *) "spec" file support to generate RPMs courtesy of Martin Brown | |
| These are the Release Notes for Revision 2.4.2 of netperf: | |
| Things changed in this release: | |
| *) Fixes for floating point format differences, courtesy of George | |
| Davis. | |
| *) Additions for CPU util support on MacOS X, courtesy of Anonymous. | |
| *) Processor affinity is now supported on AIX 5.3 (perhaps earlier) | |
| via the bindprocessor system call. | |
| *) Fixes for test lockups with TCP_CRR and TCP_CC under Windows | |
| courtesy of Dikon Reed. | |
| *) Fixes to netcpu_looper.c to get it to actually compile :) | |
| *) Have netcpu_looper use the bind_to_specific_processor() call | |
| provided by netlib since that knows about more platforms than the | |
| code in netcpu_looper did. The looper CPU binding will use a | |
| mapping to handle cases where the CPU id's on the system may not be | |
| a contiguous space starting from zero. At present, the code that | |
| setups the mapping only knows about retrieving actual CPU ids under | |
| HP-UX. | |
| *) The netcpu_sysctl method becomes calibration-free, courtesy of | |
| Andrew Gallatin | |
| These are the Release Notes for Revision 2.4.1 of netperf: | |
| Things changed in this release: | |
| *) There is now a -B global command-line argument that will append its | |
| parameter as a string to the end of result lines when test banners | |
| have been suppressed. this is to make it easier to distinguish one | |
| result from another when aggregate restults are being run in | |
| parallel, without having to resort to having the individual results | |
| shell redirected to a file. This has been done for some of the | |
| tests in nettest_bsd.c, but not all of them, nor for the tests in | |
| the other nettest_mumble.c files. | |
| *) There is now an --enable-spin configure option that will enable | |
| intervals if not already enabled and will have the sender sit and | |
| spin in a tight loop until time for the next interval rather than | |
| wait for an interval timer to expire. This means it should be | |
| possible to have a much finer granularity on the interval, at the | |
| expense of an EXTREME increase in CPU utilization. (To the extent | |
| I'm considering disabling measurement of local CPU utilization when | |
| that mode is enabled, and bursts have been requested - your | |
| feedback on that topic would be most appreciated) | |
| If only --enable-intervals is used with configure, the old set the | |
| interval timer and wait method is still used. | |
| If --enable-spin is configured, the test banner will include "spin | |
| intervals" rather than the "intervals" from a plain | |
| --enable-intervals. The sit and spin will either use | |
| gettimeofday(), or gethrtime() if gethrtime() is available. | |
| This has been implemented in the tests of nettest_bsd.c but none of | |
| the others. Volunteers would be most welcome. I would entertain | |
| the notion of making the implementation a series of inline | |
| functions in netlib. This holds true for the demo mode - why will | |
| become clear when you look at nettest_bsd.c. While things are | |
| considerably cleaner than they were before, with reuse within | |
| nettest_bsd.c, there is no resuse with the rest of the | |
| nettest_mumble.c files. | |
| *) the -w option for the interval time now takes three optional | |
| suffixes. if the suffix is 'm' (eg 10m) it will assume the user has | |
| specified time in units of milliseconds. if the suffix is 'u' it | |
| will assume microseconds, and if 's' seconds. no suffix remains | |
| milliseconds for backwards compatability with previous netperf | |
| versions. | |
| *) It should be possible to successfully compile with | |
| --enable-intervals. | |
| These are the Release Notes for Revision 2.4.1 of netperf: | |
| Things changed in this release: | |
| *) netcpu_pstatnew.c has been altered to workaround a bug in the | |
| interrupt cycle accounting in HP-UX 11.23 that is not expected to | |
| be resolved until a later release. basically, some interrupt time | |
| is not counted, which means the sum of idle, user, kernel and | |
| interrupt is less than the cycles per second multiplied by the | |
| elapsed time. the workaround preserves the "no calibration | |
| required" nature of the pstatnew CPU utilization mechanism. you | |
| can see more in netcpu_pstatnew.c and/or in debug output. | |
| *) in netlib.c recv_response has been renamed | |
| recv_response_timed(addl_time) which is now used in | |
| calibrate_remote_cpu in place of the "sleep(40);recv_response()" | |
| sequence. This then allows the REM_CPU test to complete in less | |
| than 40 seconds when the remote's CPU utilization mechanism does | |
| not require calibration. The value of "addl_time" is added to the | |
| tc_sec field of the select() timeout. A "new" recv_response has | |
| been added that simply calls recv_response_timed(0) - this is to | |
| minimize the number of changes needed elsewhere in the code. | |
| *) hopefully, this release fixes problems people have been having with | |
| the configure script failing when picking a type for socklen_t. | |
| now, instead of generating an error, it emits a warning and simply | |
| tries socklen_t | |
| *) the configure script no longer looks for the size of an in_port_t | |
| *) netlib.c now has code to perform processor binding for Tru64, but | |
| the configure script may or may not detect it correctly. This means | |
| that one may have to edit the config.h file by hand to get the | |
| functionality. | |
| *) it is known that netperf will compile under Windows XP and 2003 | |
| using the DDK it is possible that netperf 2.4.1 will compile on a | |
| Windows system under VC++/Visual Studio. It might even work!-) See | |
| the README.window file for additional details. | |
| Things _NOT_ changed in this release: | |
| *) The automagic determination of the number and type of parameters to | |
| sched_setaffinity under Linux remains brittle at best. | |
| These are the Release Notes for Revision 2.4.0 of netperf: | |
| Things changed in this release: | |
| *) Netperf has been converted to use a configure script. Yes boys and | |
| girls, after 12 years of distributing netperf with just a makefile | |
| I have finally bitten the bullet and cast my fate to autoconf, | |
| automake, etc. To get the most basic netperf built all you should | |
| need to do is: | |
| cd to the netperf directory | |
| ./configure | |
| make | |
| and perhaps | |
| make install | |
| (Note, I've not done much with make install - I'm hemming and | |
| hawing over what the default installation location should be) | |
| Please keep in mind that this is the first time I've tried to use | |
| autoconf et al. I am sure there are things that should be done | |
| differently and would welcome any and all constructive criticisms. | |
| I suspect there are several places where I've not fully | |
| demonstrated being of the autoconf body - particulary as pertains | |
| to include files being in "#if mumble #endif" blocks. Fixes would | |
| be most welcome. | |
| *) Speaking of becomming one with various GNU tools, work on a new | |
| netperf manual has begun, with the source being a texinfo document | |
| that is converted to "all" the other formats. This resides in doc/ | |
| . | |
| *) The platform-specific parts of CPU utilization measurement have | |
| been broken-out into separate .c files and selected at configure | |
| time a la the pcap_mumble files of tcpdump. This makes | |
| src/netlib.c _much_ easier to read and the addition of new CPU | |
| utilization mechanisms much easier. | |
| *) New HP-UX 11.23 and Solaris 10 CPU utilization measurement | |
| mechanisms (called pstatnew and kstat10 respectively) need no | |
| calibration step. Both have variations on microstate accounting. | |
| HP-UX 11.23 still identifies the method in the headers as 'P' for | |
| pstat. The kstat10 method is identified as 'M' for Microstate. | |
| Scripts which make calibration runs with LOC_CPU and REM_CPU may | |
| continue to do so, they will just run forty to eighty seconds | |
| faster on platforms with the calibration-free CPU util mechanisms. | |
| *) Automatic detection of CPU utilization mechanism for HP-UX, Linux, | |
| AIX, *BSD and Solaris. If you do not like what the configure | |
| script selects, you can use --enable-cpuutil=<foo> . | |
| *) The "times" (aka 'T') CPU utilization mechanism has been removed. | |
| It was never very accurate at all, only showing CPU time charged to | |
| the process, and with interrupts and other network processing it is | |
| rarely chaged to a or the correct process. It and other methods | |
| may remain in the format_cpu_method() routine of src/netlib.c for | |
| historical purposes only. | |
| *) CAVEAT - the "kstat" mechanism is KNOWN TO BE BOGUS for Solaris. | |
| It does not include time spent processing interrupts, and | |
| networking benchmarks will generate at least a few of those... | |
| This affects _ALL_ versions of Solaris with kstat. | |
| So, do NOT trust any CPU util figures where netperf says the method | |
| was 'K' for kstat - unless perhaps it reports 100% CPU util. | |
| Solaris 10 takes a step in the right direction adding microstate | |
| accounting similar to what netperf uses on HP-UX 11.23. HOWEVER, | |
| Solaris 10's accounting for user/kernel/idle is done in _parallel_ | |
| with interrupt, which means they overlap. Doubleplusungood. Netperf | |
| attempts to compensate for that with some handwaving | |
| (src/netcpu_kstat10.c) | |
| *) Initial support for SCTP has been added with the SCTP_STREAM and | |
| SCTP_RR tests. These tests use the libsctp mechanisms for | |
| increased portability. It has been explained that libsctp should | |
| not impart all that much overhead and it does make things rather | |
| simpler. | |
| *) Netperf now uses getaddrinfo() to resolve hostnames and IP | |
| addresses. A replacement getaddrinfo() is provided for those | |
| platforms where the configure script cannot tell that getaddrinfo | |
| is present. | |
| There are cases where a host's getaddrinfo call may return results | |
| that ignore the hints for protocol. Netperf catches these and | |
| reports a warning so you can pester your OS source for fixes. | |
| Solaris getaddrinfo() seems to return results with SCTP procotol | |
| cleared. | |
| Mac OS X getaddrinfo botches when the service/port is specified as | |
| "0" so one must specify a port number on the netperf command line. | |
| AIX 5.something getaddrinfo has a different but similar problem | |
| with "0" as a port/service name as well. | |
| Linux 2.6 and HP-UX 11i getaddrinfo seem to be fine - at least as | |
| far as netperf goes :) | |
| *) A "Demo Mode" has been added to the main BSD Sockets/TCP/UDP tests: | |
| TCP_STREAM, TCP_MAERTS, TCP_SENDFILE, TCP_RR, TCP_CC, TCP_CRR and | |
| UDP_RR. It has not been added to UDP_STREAM. This mode is enabled | |
| with --enable-demo when configuring netperf, which activates a | |
| global "-D" option. By default, -D will cause interim results | |
| (throughput or transactions/s only, not CPU util) from the | |
| netperf's perspective to be emitted no sooner than once per second. | |
| An optional parameter can specify another interval in units | |
| (floating point) of seconds: | |
| -D 1.5 | |
| will make the reporting interval at least 1.5 seconds. | |
| This mode makes no use of explicit interval timers since that can | |
| be so, well fun on different platforms. Instead, an initial guess | |
| of how many units of work must be done to consume the desired | |
| reporting interval is made, and that guess is refined throughout | |
| the entire test. If something happens to dramatically slow-down | |
| the test, the reproting interval may become must larger for a few | |
| intervals. When things speed-up it is detected very quickly. As | |
| with the --enable-historgram support, if gethrtime() is available | |
| on the platform, it will be used in lieu of gettimeofday(). In any | |
| case, the number of calls to gettimeofday()/gethrtime() is much, | |
| Much, MUCH smaller than for --enable-histogram so while there may | |
| be a measurable effect on the results, it should be rather small. | |
| *) The global -H option has been enhanced to take an optional address | |
| family specification for the control connection: | |
| -H <remote>,<family> | |
| Unlike other comma-separated options, where specifying only one | |
| thing will set both, here specifying only one thing will be | |
| ass-u-me-d to be the <remote> and will leave <family> defaulted | |
| (AF_UNSPEC). Family can be specified as "4" or "inet" for | |
| AF_INET, "6" or "inet6" for AF_INET6. | |
| *) A new global -L option has been added to specify the local name/IP | |
| and/or address family for the control connection: | |
| -L <local>,<family> | |
| Unlike other comma-separated options, where specifying only one | |
| thing will set both, here specifying only one thing will be | |
| ass-u-me-d to be the <local> and will leave <family> defaulted | |
| (AF_UNSPEC). Family can be specified as "4" or "inet" for | |
| AF_INET, "6" or "inet6" for AF_INET6. | |
| *) Test-specific -H and -L options are present for the TCP, UDP and | |
| SCTP tests, which are now (intended to be) IP protocol version | |
| agnostic. | |
| *) Global -4 and -6 options will set the both the local and remote | |
| address family to either AF_INET or AF_INET6 respectively. | |
| *) Test-specific -4 and -6 options have been added for TCP, UDP and | |
| SCTP tests. | |
| *) Since the basic TCP UDP and SCTP tests are no longer IPv4-only, the | |
| nettest_ipv6.[ch] files are only included in the source | |
| distribution for historical interest. | |
| *) The main test banners for the TCP, UDP and SCTP tests have been | |
| enhanced to give both local and remote addressing information for | |
| the data connection. | |
| *) Compilation under Windows is likely FUBAR at this point. I _hope_ | |
| to start trying to do builds under the DDK soon, but am not sure | |
| when I'll be able to start. Any and all assistance you can give | |
| there would be most welcome. | |
| *) Various and sundry fixes. TCP_RR should no longer go into an | |
| infinite loop when you abort netperf. I'm sure there are others. | |
| *) Unix domain socket tests are compiled-in with --enable-unix=yes at | |
| configure time. | |
| *) DLPI tests are compiled-in with --enable-dlpi=yes at configure | |
| time. | |
| *) XTI tests are compiled-in with --enable-xti=yes at configure time. | |
| Things not changed in this release: | |
| *) Seems like everything has changed :) | |
| These are the Release Notes for Revision 2.3pl2 of netperf: | |
| Things changed in this release | |
| *) One can bind netperf or netserver to specific CPUs with the -T | |
| option. This is a generalization of some HP-UX and netserver specific | |
| work from 2.3pl1. | |
| *) Extend the kludge to workaround the Linux setsockopt/getsockopt | |
| bizzarreness to the socket buffer sizes for the remote side in | |
| addition to the local side. | |
| *) Fix the lack of initialization of times_up in recv_tcp_maerts() | |
| that caused confidence intervals to fail miserably. | |
| *) Other misc fixes - than you to all of you who sent them. | |
| These are the Release Notes for revision 2.3pl1 of netperf: | |
| Things changed in this release | |
| *) The bind() call in create_data_socket() in the file nettest_bsd.c | |
| is no longer conditional on the user's specifying an IP address or | |
| port number to which the data socket should be bound. This fixes | |
| the "connection refused" errors in the UDP tests. | |
| *) Some experimental code to allow one to specify a CPU to which the | |
| remote netserver should be bound. This is intended to allow one to | |
| get greater certainty (as in confidence intervals) on SMP | |
| systems. At present the functionality is HP-UX specific. | |
| Submittals of changes for a more general approach are welcomed. | |
| These are the Release Notes for revision 2.3 of netperf: | |
| Things changed in this release | |
| *) The user can now specify local and/or remote port numbers for the | |
| data connection using the -P test-specific option. This is to | |
| support those folks who want to run netperf through those evil, | |
| end-to-end-breaking things known as firewalls... :) This changes | |
| the format of some of the control messages, hence the bump in the | |
| update number in the VUF. While it may be possible to mix 2.3 and | |
| pre-2.3 netperf and netserver, it is not supported. | |
| *) The user can now specify local and/or remote IP addresses for the | |
| data connection using the -I test-specific option. This is to | |
| support those folks who want to run netperf through those evil, | |
| end-to-end-breaking things known as firewalls... :) This changes | |
| the format of some of the control messages, hence the bump in the | |
| update number in the VUF. While it may be possible to mix 2.3 and | |
| pre-2.3 netperf and netserver, it is not supported. | |
| *) Set DL_mumble message priorities in the DLPI tests | |
| *) Fix error return check for getaddrinfo() | |
| *) Those systems with gethrtime() can define -DHAVE_GETHRTIME to use | |
| gethrtime() instead of gettimeofday() and reduce the measurement | |
| overhead when enabling the -DHISTOGRAM functionality. | |
| *) The default for -DHISTOGRAM compilation now adds a UNIT_USEC and | |
| TEN_USEC row and renames TENTH_MSEC to HUNDRED_USEC. If you want | |
| the old behaviour add -DOLD_HISTOGRAM to CFLAGS. | |
| *) Add missing '!' in the recv_udp*_stream so we recognize the end of | |
| a timed test correctly. | |
| *) Replace "||" with "&&" to fix an infinite loop in | |
| recv_tcp_conn_rr() most likely introduced in 2.2pl5. | |
| *) Code has been added to kludge around the bug in Linux getsockopt() | |
| where it almost always returns twice the value for which one | |
| asks unlike virtually every other stack on the face of the | |
| planet. This was doing some unpleasant things to tests in which | |
| confidence intervals were requested. | |
| Things not changed in this release | |
| *) Lots :) | |
| These are the Release Notes for revision 2.2pl5 of netperf: | |
| Things changed in this release | |
| *) Improved (perhaps even usable :) support for Windows, including | |
| compilation and run on Win64. | |
| *) Fixes for MacOS X and FreeBSD | |
| Things not changed in this release | |
| *) Specifying the port number(s) for the data connection | |
| These are the Release Notes for Revision 2.2pl4 of netperf: | |
| Things changed in this release | |
| *) USE_SYSCTL available on suitable FreeBSD releases to measure CPU | |
| utilization without having to resort to -DUSE_LOOPER. | |
| *) Include Solaris 9 with the Linux sendfile path under -DHAVE_SENDFILE | |
| This still outstanding in this release | |
| *) Knowing why signals are not interrupting socket calls under | |
| OpenVMS. A quick try to use threads for timing a la Win32 worked, | |
| but also cut performance in half. Any and all assistance in this | |
| area would be most welcome. | |
| These are the Release Notes for revisoin 2.2pl3 of netperf: | |
| Things changed in this release | |
| *) I started practicing what I preach and will set SO_REUSEADDR before | |
| netserver tries to bind to its well-known port. | |
| *) Initial port to OpenVMS. This includes support for the OVMS | |
| Auxilliary server (inetd replacement). See README.ovms for more | |
| details on what is involved in compiling and running netperf under | |
| OpenVMS. | |
| *) Testname comparisons are now case insensitive. This is a side | |
| effect of OpenVMS downshifting commandlines to lowercase. I made | |
| the change and decided it was OK to keep it that way, even though | |
| for OpenVMS one _has_ to set the right defines to disable that | |
| downshifting or the command-line options will not work. For example | |
| "-H" will become "-h" which isn't quite the same thing... | |
| *) Misc fixes for nettest_ipv6.c. | |
| *) Support for sendfile() under Linux | |
| Thins I would like to have changed but did not know how or didn't have | |
| time: | |
| *) Allow netserver to run as a standalone daemon under OpenVMS | |
| *) Allow netserver to run as a standalone daemon under Windows | |
| *) Rediscover an inetd-like facility for Windows | |
| *) Figure-out how to get low-overhead, accurate, per-CPU utilization | |
| figures under OpenVMS | |
| *) Get the UDP_RR and UDP_STREAM tests to work under OpenVMS, and get | |
| the TCP_RR test to work based on time rather than transaction | |
| count. There is some bug (possibly in OpenVMS?) where the SIGALRM | |
| fires, but a socket call will not return an EINTR. | |
| Things that changed prior to this release: | |
| *) Addition of the TCP_MAERTS test - this is a TCP_STREAM test where | |
| the data flows from the netserver to the netperf rather than from | |
| the netperf to the netserver. This can be useful in those | |
| situations where netperf (netserver) is installed on a remote | |
| system, but the tester has no shell access and wishes to get | |
| performance data for the path from netserver to netperf. | |
| These are the Release Notes for the 2.2 revision of netperf: | |
| Things changed in this release | |
| *) Various and sundry bugs fixed (in theory) for platforms such as | |
| FreeBSD and Linux. If I left-out your bug fix, it was purely | |
| accidental - my mind has a very small cache, and sometimes I will | |
| "lose" email in the shuffle. | |
| *) Initial support for sendfile() on HP-UX. This test will use the | |
| sendfile() call instead of send() to send data to the | |
| remote. Netperf "lies" to netserver and calls it a TCP_STREAM test | |
| since what netserver needs to do is exactly the same. A future | |
| patch may change that and simply have netserver call the same | |
| routine for both test types. Kudos to Charles Harris for the | |
| initial prototype. | |
| *) The Fore ATM API and HiPPI tests have been dropped from the | |
| distribution. | |
| Things I would have liked to have changed, but did not have time for: | |
| *) Conversion of the source and makefile to use the GNU configure/autoconf | |
| utility to make it easier for folks to build by not having to edit | |
| makefiles... You will notice that I have started to switch from | |
| "DO_MUMBLE" to "HAVE_MUMBLE" | |
| as always - happy benchmarking, | |
| rick jones <raj@cup.hp.com> | |
| --------------------------------------------------------------------- | |
| These are the Release Notes for the 2.1pl3 revision of netperf: | |
| *) An OBOB (Off By One Bug) in netlib.c that was causing a core dump | |
| on Irix should be fixed. | |
| *) Irix systems should now be able to determine the number of CPU's | |
| present automagically (code from outside, not tested yet because I | |
| have no MP Irix systems at my disposal) | |
| *) An alpha version of a TCP_CC test has been added - this is a | |
| TCP_CRR test with out the "RR." | |
| *) The -Ae has been removed from the default makefile. If someone has | |
| a nice way to automagically generate the correct makefile for | |
| different platforms I would like to learn how. | |
| happy benchmarking, | |
| rick jones <raj@cup.hp.com> | |
| ---------------------------------------------------------------------- | |
| These are the Release Notes for the 2.1 revision of netperf: | |
| Things Changed in this release: | |
| *) The XTI (Version 2 of the spec) tests are now documented in the | |
| manual. | |
| *) The TCP_CRR (Connect Request/Response) test is now documented in | |
| the manual, including a description of how it mimics the behaviour | |
| of http (the protocol underlying the WWW). | |
| *) Support for for Windows NT 3.51 OS in the BSD Sockets tests (ok, so | |
| they are really Winsock in that case :). Other test suites may be | |
| ported as required/desired/appropriate. | |
| *) Tests for TCP and UDP, using the IPv6 extensions to BSD sockets are | |
| included in this release. They are included by adding -DUSE_IPv6 to | |
| the makefile and recompiling. | |
| *) Support for a "long long" datatype should only be required for | |
| -DUSE_PSTAT compilation which is an HP-UX only thing. The | |
| *unbundled* HP compilers from at least "HP92453-01 A.09.61 HP C | |
| Compiler" and later should have the required support. The bundled | |
| compiler may not. GCC should work - check the archives listed in | |
| the comp.sys.hp.hpux FAQ for copies. The FAQ is archived on | |
| rtfm.mit.edu under the path pub/usenet/comp.sys.hp.hpux. | |
| *) A "proper" fix for double data type alignment has been included. | |
| *) A new script is included with this release which can be used to | |
| measure aggregate TCP_RR performance (multiple, concurrent | |
| instances of the TCP_RR test). A related use of this script would | |
| be measuring MP scaling. A single-byte TCP_RR test is good for this | |
| purpose for two reasons: | |
| 1) it excercises the control/protocol paths heavily without | |
| using much in the way of data copies which may be easier to | |
| scale. | |
| 2) most systems can easily saturate cards with bandwidth, but | |
| not so easily with request/response | |
| Of course, feedback on this is most welcome. | |
| *) When measuring CPU utilization, the units for service demand have | |
| been changed from milliseconds (designated ms) of CPU per unit (KB | |
| or Transaction) to microseconds (desginated us). | |
| *) For accurate reporting of service demand, netperf needs to know the | |
| number of CPU's present on a system. On some systems (HP-UX), this | |
| is automatic. For others (All), it is necessary to add a global "-n | |
| <numcpu>" option to both netperf and netserver. | |
| !! IF THIS IS LEFT-OUT CPU UTILIZATION AND SERVICE DEMAND FOR !! | |
| !! MULTI-PROCESSOR SYSTEMS WILL BE WRONG. !! | |
| If you know of ways to programatically determine the number of | |
| active CPUs on a system, please let the author Rick Jones | |
| <raj@cup.hp.com> know. | |
| *) other things I've probably forgotten :) | |
| Things Not Changed in this release: | |
| *) The ancillary test suites are essentially unchanged - DLPI, | |
| HiPPI/LLA, Unix Domain, and Fore ATM API. Unless there is much | |
| interest expressed in these tests, 2.1 may be the last release in | |
| which they are included. The order of retirement would likely be | |
| Unix Domain, HiPPI/LLA, Fore ATM API, and then DLPI. | |
| Miscelaneous Comments: | |
| *) The -DUSE_LOOPER CPU utilization _seems_ to be nice and low-impact | |
| on HP-UX, Digital Unix, and IRIX. It does not yet seem to be | |
| low-impact on Solaris (I need an example of priocntl usage), AIX | |
| (setpri only works if you are root), and NT (not sure of the | |
| reason). Help with those problems would be most appreciated. |