This is a discussion on Re: cygwin performance problem within the OpenSSH Development forums, part of the Networking and Network Related category; Hi Damien, On Apr 23 23:01, Damien Miller wrote: > In this case, shouldn't cygwin be using socketpair() ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi Damien,
On Apr 23 23:01, Damien Miller wrote: > In this case, shouldn't cygwin be using socketpair() for interprocess > communication everywhere? (assuming that there is a select()-like > function available in the Win32 API). This switch can be made by Yes, actually there is a select function, but it's implemented in the Windows socket layer, so it's available exclusively for sockets (and utilized for select on sockets in Cygwin, obviously). > deleting the following line from "*-*-cygwin*)" block: > > AC_DEFINE(USE_PIPES, 1, [Use PIPES instead of a socketpair()]) > > To fully use socketpairs, you will need the following patch to scp.c, > as it doesn't seem to care right now: Thanks for the patch. I tried it, but using socketpairs is slower than using pipes, so, for performance reasons, I'd rather stick with pipes, now that we have found a nice workaround in Cygwin. Way back when we started using USE_PIPES for Cygwin, the reason was actually the performance. Since the select function has changed over the time, I assume the now fixed performance problem didn't exist years ago. As for socketpairs, since Windows has no concept for AF_UNIX/AF_LOCAL sockets, these sockets are implemented as AF_INET sockets under the hood. Using AF_INET sockets locally is 30-40% slower than using pipes on Windows. Corinna -- Corinna Vinschen Cygwin Project Co-Leader Red Hat _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@mindrot.org http://www.mindrot.org/mailman/listi...enssh-unix-dev |
![]() |
| Thread Tools | |
| Display Modes | |
|
|