This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin TCP slow

0.) I don't care about XP at all and I care only a little about other
downlevel products.  (The further downlevel the less I care :)).  It's
Windows 10 from now until forever.  There will be no eleven.
1.) Yes, I am the program manager for Windows TCP/IP and I want to
make the Internet a better place for everyone by setting the transport
buffers correctly.
2.) Here is the cygcheck.out file with all that information.
The make is failing because of some device configuration.

/home/dahavey/oss/src/newlib-cygwin/winsup/cygwin/gendevices: shilka
command missing? - No such file or directory
make[3]: *** [Makefile:720:
/home/dahavey/oss/src/newlib-cygwin/winsup/cygwin/] Error 2
make[3]: Leaving directory
make[2]: *** [Makefile:81: cygwin] Error 1
make[2]: Leaving directory
make[1]: *** [Makefile:9464: all-target-winsup] Error 2
make[1]: Leaving directory '/home/dahavey/oss/build'
make: *** [Makefile:883: all] Error 2

/home/dahavey/oss/src/newlib-cygwin/winsup/cygwin/gendevices doesn't
exist in the sources that I downloaded from the cygwin website using:
git clone git://
Something is not right here :).

3.) No point in going further until this problem is sorted out.

4.) This is a little random to the thread, but, does anybody know who
I might talk to about getting email addresses taken out of the spam
filter on the mailing lists?  I suspect that every address is being filtered.  I don't know why this happened,
but, it does seem a little draconian to spam filter all 100,000 of us
:).  Also it's a pain in the but to use @gmail for business and it
further slows the process.

5.) Just FYI: I want the buffering done correctly for all apps that
use Windows so I am considering changing the behavior of Windows (no
downlevel support) to not mess up the buffers even if the app sets
SO_RCVBUF and/or SO_SNDBUF.  This method is cool because it fixes the
problem for everyone who uses the new Windows builds, but, I also
don't like to change standard behavior.

6.) I will consider looking into iperf3 once we have solved the
problem in 2.  Also there would be a much greater chance that these
things get solved more quickly if we could solve the problem in number
4.  One of my TCP devs likes cygwin and indicated a willingness to
help.  However, I will not allow any of my dev team to get mixed up
with using @gmail accounts.  Could cause too much trouble for the
youngster :)

Have a great day :).

On Wed, Nov 30, 2016 at 1:13 PM, Lee <> wrote:
> I don't know if this qualifies as a simple test case, but
> if you don't already have wireshark, get it from
> get iperf-2.0.9.tar.gz from
> change the setsockopt calls on lines 125 & 132 of src/tcp_window_size.c to
>   rc = 0;
> ./configure  --prefix=/usr/local
> make && make install
> start wireshark & add a column for bytes in flight:
> edit / preferences
> appearance / columns
> click on the "+" button to get a new row
> double click on the "New Column", type BIF
> double click the empty bit in the Fields column
> type  which pulls up a pick list; click on tcp.analysis.bytes_in_flight
> click on OK
> find a public iperf server -- I got lucky & found one ~65ms away, so
> thruput is going to be constrained by the 130ms round trip time.
> start the wireshark capture
> iperf  -c <host name>
> when it's done stop the capture & click on the BIF column header
> What I get is a max bytes in flight of 66560
> ----recompile iperf using the windows cross-compiler
> make clean
> make distclean
> ./configure  --prefix=/usr/local --build=i686-pc-cygwin --host=i686-w64-mingw32
> make && make install
> start capturing
> iperf  -c <host name>
> when it's done stop the capture & sort on the BIF column
> What I get is a max bytes in flight of 196608
> So, for me, it's about a 3X difference between the native & cygwin app.
> If the problem really is in as the OP said, have a look at
> starting at line 587
> /* Raise default buffer sizes (instead of WinSock default 8K).
> I think starting with Windows Vista the default is tcp autotuning.  So
> unless there's some other reason for setting the send/receive buffer
> it seems that cygwin apps would be better off going with the defaults.
> Lee
> --
> Problem reports:
> FAQ:         
> Documentation:
> Unsubscribe info:

Attachment: make.out
Description: Binary data

Attachment: cygcheck.out
Description: Binary data

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]