[ofa-general] SDP performance with bzcopy testing help needed

Jim Mott jim at mellanox.com
Tue Feb 12 09:31:58 PST 2008


Now that SDP is shipping with a non-zero default value for
sdp_zcopy_thresh (64K), I need some feedback from the list.  Does
anybody except me see a performance gain on large messages?

1)  nerperf server node
      - export LD_PRELOAD=libsdp.so
      - netserver

2) netperf client node
      - export LD_PRELOAD=libsdp.so

3) Run some tests with bzcopy enabled on client
      - cat /sys/module/ib_sdp/sdp_zcopy_thresh
        65536
        (You might have to hunt for it in parameters)

      - netperf -C -c -P 0 -t TCP_STREAM -H 193.168.10.143 -l 60 ---m
64K
      - netperf -C -c -P 0 -t TCP_STREAM -H 193.168.10.143 -l 60 ---m
128K
      - netperf -C -c -P 0 -t TCP_STREAM -H 193.168.10.143 -l 60 ---m 1M

4) Run the tests with bzcopy disabled on the client
      - echo 0 > /sys/module/ib_sdp/sdp_zcopy_thresh

      - netperf -C -c -P 0 -t TCP_STREAM -H 193.168.10.143 -l 60 ---m
64K
      - netperf -C -c -P 0 -t TCP_STREAM -H 193.168.10.143 -l 60 ---m
128K
      - netperf -C -c -P 0 -t TCP_STREAM -H 193.168.10.143 -l 60 ---m 1M


When I run these tests on ConnectX DDR through a switch, I see bandwidth
numbers that look like:

              64K    128K      1M
  SDP      8215.17  6429.09  6862.66
  BZCOPY   8748.00  9997.07  9847.76

Looking at uS/KB transferred we see:

               64K         128K          1M
            LCL   RMT    LCL   RMT    LCL   RMT
  SDP      1.025 1.243  1.391 1.493  1.274 1.407
  BZCOPY   0.966 1.148  0.838 1.014  0.603 0.984

Note that it is important that you use "-m" instead of "-r" because you
want to present the largest possible buffers (netperf "Send Message
Size") to SDP.  Pinning user memory instead of copying through the
kernel is only a win if you can amortize the costs over a big chunk of
memory.  



More information about the general mailing list