Re: smaller blocksizes with solaris


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 --at-- 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
>>
>>    
>>
>
>  
>



Other Mailing lists | Author Index | Date Index | Subject Index | Thread Index