|
From: jesse b. <Jes...@Su...> - 2004-04-22 15:50:38
|
Hi, Thanks for looking into this, Kevin. I believe it's a bit simpler than I thought, thanks to a friendly nudge from Paul Hyder. It is indeed Solaris barring me from setting the socket size to these very small sizes. This is a result of my default setting on tcp_recv_hiwat_minmss (4). This, when multiplied by the MSS, governs the minimum window size, so I end off with around 4.5K. Thanks all, Jesse Kevin Gibbs wrote: >Oops did not realize it was the same person. Doh... Sorry. > >Also since I went to look at it now, the check in Settings.cpp does not >modify the arguement at all. It prints an error but that is AFTER it sets >the setting variable. I just stepped through the execution and it does in >fact call setsockopt with a value of 16. Therefore Solaris is not giving >the requested size not Iperf doing something wrong. Here is a walk through >on Linux >124 newTCPWin = inTCPWin; >(gdb) >125 rc = setsockopt( inSock, SOL_SOCKET, SO_RCVBUF, >(gdb) print inTCPWin >$1 = 16 >(gdb) print newTCPWin >$2 = 16 >(gdb) c >Continuing. >------------------------------------------------------------ >Server listening on TCP port 5001 >TCP window size: 256 Byte (WARNING: requested 16.0 Byte) >------------------------------------------------------------ > >As you can see my linux setup only supports a window down to 256 Bytes. > >Kevin > >On Mon, 12 Apr 2004, jesse butler wrote: > > > >>Hi, >> >>As communicated earlier, I'm having some trouble using small blocksizes >>with Iperf. As shown below, I attempt to use 16 bytes, but after the >>warn, it is set to 32 KB. >> >>[jesseb@aion]: ~/iperf/iperf-1.1.1 $ iperf -c aion -w 16 >>WARNING: TCP window size set to 16 bytes. A small window size >>will give poor performance. See the Iperf documentation. >>------------------------------------------------------------ >>Client connecting to aion, TCP port 5001 >>TCP window size: 32.0 KByte (WARNING: requested 16.0 Byte) >>------------------------------------------------------------ >>[ 4] local 129.148.184.208 port 36483 connected >> >> >>I would like to change the code and rebuild so it will work for me, but >>am a bit stuck. I've discovered that at some point, a small blocksize >>is getting overridden with a larger size, but I can't find where in the >>code. I have traced it into lib/tcp_window_size.c and >>setsock_tcp_windowsize(), which in turn calls setsockopt()... but I >>don't see anywhere where if the window size passed in is overridden if >>it's smaller than a certain size. >> >>Anyone have any ideas, see anything, want to bop me on the head for >>missing something obvious? >> >>Thanks, >>Jesse >> >> >> > > > |