cygrunsrv + sshd + rsync = 20 times too slow -- throttled?

Ken Brown kbrown@cornell.edu
Mon Sep 13 13:03:04 GMT 2021


On 9/13/2021 5:42 AM, Corinna Vinschen wrote:
> On Sep 12 17:46, Ken Brown wrote:
>> BTW, we could just decide that always reporting write ready in this corner
>> case is acceptable.  But then we could just do that without going back to
>> query_hdl.
> 
> The problem with the corner case is, how to find out?  You could have
> arbitrarily complex process trees with the pipe inherited by grand
> children, one of which is a non-Cygwin process.  How does a Cygwin
> process tree member learn about that fact, if it didn't start the
> non-Cygwin process by itself?
> 
> Looks like we have three choices:
> 
> - Reintroducing query_hdl as in Takashi's patch.
> 
> - select timeouts
> 
> - always return "pipe writable"
> 
> I think we might try Takashi's idea for as start, no?

That sounds good to me, provided he can fix the "cnc" case I just asked him 
about -- Cygwin reader and writer on a pipe created by a non-Cygwin process.

> Didn't we also have a problem with C# in terms of non-blocking pipes?
> I wonder if we could just do the following: As soon as we spawn a
> non-Cygwin process, just call set_pipe_non_blocking(false) for all
> pipes.  Blocking vs. nonblocking mode is a per-handle thingy anyway.
> 
> What do you think?

I don't remember exactly what the issue was with C# programs, so I'll defer to 
Takashi on this.

Ken


More information about the Cygwin-developers mailing list