[Bloat] Progress with latency-under-load tool

Kim Hawtin kim at hawtin.net.au
Mon Mar 21 18:13:48 PDT 2011


Hi Jonathan,

On 21/03/11 17:13, Jonathan Morton wrote:
 > On 21 Mar, 2011, at 6:09 am, Daniel Brooks wrote:
 >> Oof. I guess the loopback driver could use some work as well :)
 >
 > Either that or there is some strange timing effect going on that I 
should be aware of.  I'm going to try to run some more tests to see if I 
can get the smoothness and responsiveness values up, but if any of you 
notice something bizarre...
 >
 > Be aware however that both smoothness and responsiveness are taken as 
the absolute worst cases observed.  If there is a bell curve, you're 
going to be looking at outliers.  Perhaps I should calculate something 
like a 7-number summary to sanity-check it.
 >

dtaht pointed me in the direction of loadlatency.c to get my head around 
the issues. its been a while since i've done a lot of C, but had a poke 
around ...

It builds fine on Debian;
  $ uname -a
  Linux greyarea 2.6.32-5-amd64 #1 SMP Wed Jan 12 05:14:59 UTC 2011 
x86_64 GNU/Linux

but fails to link on RHEL5;
  $ uname -a
  Linux zima.services.adelaide.edu.au 2.6.18-194.11.3.el5 #1 SMP Mon Aug 
23 15:51:38 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

I have included the build and the YUM package info below.

dtaht suggested that the packages libblas and libgsp are used only for 
RNG? Is there another/better RNG that could be used that less system 
dependant?

Perhaps this one as it can be distributed directyly;
   http://ccan.ozlabs.org/info/isaac.html

regards,

Kim





$ gcc -O3 loadlatency.c -o loadlatency -lgsl -lblas -lpthread
loadlatency.c: In function ‘pingpong’:
loadlatency.c:140: warning: passing argument 2 of ‘send’ discards 
qualifiers from pointer target type
loadlatency.c:145: warning: passing argument 2 of ‘recv’ discards 
qualifiers from pointer target type
loadlatency.c: In function ‘spew_conn’:
loadlatency.c:346: warning: cast from pointer to integer of different size
loadlatency.c: In function ‘chug_conn’:
loadlatency.c:357: warning: cast from pointer to integer of different size
loadlatency.c: In function ‘pingpong_conn’:
loadlatency.c:368: warning: cast from pointer to integer of different size
loadlatency.c: In function ‘client’:
loadlatency.c:424: warning: cast to pointer from integer of different size
loadlatency.c:457: warning: cast to pointer from integer of different size
loadlatency.c:471: warning: passing argument 2 of ‘pthread_join’ from 
incompatible pointer type
loadlatency.c: In function ‘server_conn’:
loadlatency.c:514: warning: cast from pointer to integer of different size
loadlatency.c: In function ‘server’:
loadlatency.c:614: warning: cast to pointer from integer of different size
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ctrmv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zswap'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zsymm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cgeru'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_sgemm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ctrsv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_sgemv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_srotg'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zgemm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cdotu_sub'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dznrm2'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ddot'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_csymm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cher2k'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zdotu_sub'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_sdot'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_sdsdot'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cgerc'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_scnrm2'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ctrmm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_sscal'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_strmm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zcopy'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dsyrk'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cherk'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zherk'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zher'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ztrmv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_drotmg'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dswap'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_scopy'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_scasum'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zscal'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_drotg'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zdotc_sub'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cscal'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_caxpy'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zsyr2k'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ssyr2k'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_csyr2k'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ztrsm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ctrsm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ssymm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cdotc_sub'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zher2k'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_saxpy'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_idamax'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_snrm2'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dsdot'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cher'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dger'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cher2'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dzasum'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dsyr2'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ssyrk'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_strmv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dgemv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cgemm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dasum'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dsymv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_srotm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_sswap'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dtrmv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_isamax'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zhemv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zaxpy'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dcopy'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_sasum'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dsyr'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_strsm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_drot'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ztrsv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_izamax'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ssymv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_chemm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zgeru'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dtrsv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_sger'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_srot'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dsymm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ztrmm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zdscal'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zher2'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ssyr'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dtrmm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zgerc'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_csscal'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dsyr2k'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_chemv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dnrm2'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_drotm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_icamax'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zgemv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zhemm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cgemv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ssyr2'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_strsv'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dscal'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dgemm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_srotmg'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_dtrsm'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_ccopy'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_zsyrk'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_cswap'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_daxpy'
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libgsl.so: 
undefined reference to `cblas_csyrk'
collect2: ld returned 1 exit status

this is the YUM package info;

# yum info gsl-devel.i386 gsl-devel.x86_64 gsl-static.x86_64 
blas-devel.i386 blas-devel.x86_64

Loaded plugins: rhnplugin, security
Installed Packages
Name       : blas-devel
Arch       : i386
Version    : 3.0
Release    : 37.el5
Size       : 456 k
Repo       : installed
Summary    : LAPACK development libraries
URL        : http://www.netlib.org/lapack/
License    : Freely distributable
Description: BLAS development libraries for applications that link 
statically.

Name       : blas-devel
Arch       : x86_64
Version    : 3.0
Release    : 37.el5
Size       : 580 k
Repo       : installed
Summary    : LAPACK development libraries
URL        : http://www.netlib.org/lapack/
License    : Freely distributable
Description: BLAS development libraries for applications that link 
statically.

Name       : gsl-devel
Arch       : i386
Version    : 1.13
Release    : 3.el5
Size       : 1.2 M
Repo       : installed
Summary    : Static libraries and header files for GSL development.
URL        : http://www.gnu.org/software/gsl/
License    : GPLv3 and GFDL and BSD
Description: The gsl-devel package contains the header files necessary for
            : developing programs using the GSL (GNU Scientific Library).

Name       : gsl-devel
Arch       : x86_64
Version    : 1.13
Release    : 3.el5
Size       : 1.2 M
Repo       : installed
Summary    : Static libraries and header files for GSL development.
URL        : http://www.gnu.org/software/gsl/
License    : GPLv3 and GFDL and BSD
Description: The gsl-devel package contains the header files necessary for
            : developing programs using the GSL (GNU Scientific Library).

Name       : gsl-static
Arch       : x86_64
Version    : 1.13
Release    : 3.el5
Size       : 4.3 M
Repo       : installed
Summary    : Static libraries of the GSL package
URL        : http://www.gnu.org/software/gsl/
License    : GPLv3 and GFDL and BSD
Description: The gsl-static package includes static libraries of GSL.






More information about the Bloat mailing list