From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.130]) by sourceware.org (Postfix) with ESMTPS id 457BC3858D34 for ; Sat, 28 Aug 2021 08:43:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 457BC3858D34 Received: from calimero.vinschen.de ([24.134.7.25]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M1JJC-1mIG2k1pcI-002rgb for ; Sat, 28 Aug 2021 10:43:28 +0200 Received: by calimero.vinschen.de (Postfix, from userid 500) id 88E6CA80DDC; Sat, 28 Aug 2021 10:43:27 +0200 (CEST) Date: Sat, 28 Aug 2021 10:43:27 +0200 From: Corinna Vinschen To: cygwin@cygwin.com Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? Message-ID: Reply-To: cygwin@cygwin.com Mail-Followup-To: cygwin@cygwin.com References: <41A583E1-C8E7-42AB-9F24-EEC33A41EC60@house.org> <20210825201845.07b6400b79dc5558a7761efe@nifty.ne.jp> <20210826062934.54f2f2216021c095bb7ba13b@nifty.ne.jp> <3b560051-ab27-f392-ca4b-d1fd9b5733b0@cornell.edu> <20210827202440.47706fc2fc07c5e9a1bc0047@nifty.ne.jp> <4f2cb5f3-ce9c-c617-f65f-841a5eca096e@cornell.edu> <20210828022111.91ef5b4ff24f6da9fadb489e@nifty.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20210828022111.91ef5b4ff24f6da9fadb489e@nifty.ne.jp> X-Provags-ID: V03:K1:h7JTt9w34MHzNX1FjOfos2VL/E3/okYO9+yeAt62Pln/KMm4dvX wqutdJqq4tdaXVZZt777YSz4Y1bJH/VSPaIvWm5HrXYQWmya/k/PcCRn2PNH4RBmKw3GEYY FCm0q6pjoBJ6yNiozXdxRlt9wWVq4OTH2FLeBtgeHhHiLFGkjelsWLNGOBJGk0cTlKiQzMN vlHrQwbY4AbQ6iSE+q7XQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:e50E5Bq8BU4=:l+WERFBKXf8/tRcxVxTZzi 2K+kAGhJf0W7/dTcbRyh212fvpMd4ztaxBEF07DNCGleMKHMtdfuMMyLIP8GLC05brsvmRHS2 Rc2HZNCUakxzCzp26hYupgPYU+LITWuDrjYwfzy2FM6JspxnYR8A4cnE/0dqXdLsnipBNwtwo ft3woMi24vA3UNBrYGXYLw1k8baSQRReGymHdsGPgYCDgEloNrLi16psBj9E0aO9+QzR/eFcp NShJwhLRlTTz5MYBb7Y51z/QycRUew2x5tcn/tXkE96JzGlqEFEYQE+eFeeIpT+Pb0cjsrnp4 KrU5FLWJx0omc+Y/HFQGdv5jmh+hPEdDv6+V8dVmCr6tPncee2ISu7w1xm7VPGL2vPnrv282J feV9EC3/uUoYjnAxEpimLmT61d/trZDrgk3CJOQmsZpoOgRxUXkc90RPth2dK02GQyy6XKuRs XsuUK4LCFW0S+QXepqUbLfqdYbeRXPGarplWgzk3KQSYVg5fkevfofmm3DDTNfQkS1lfcMhcy ZqGbwYrmvlptMCyGck7wEO+BdRClLwao0r16LmXd/S8/Sh8w/0LzWhDzz4Ovn4anTwO/auGjP ZADXUCp/GV6J4H/Y6Te7mz/eUYRTfFi22EaWYHH5/PeceRqiR8ALoCXI8neZBK1aj1CetFTvG 9D/Q3XdQWLjnJZBgYcsi+nlZjUg2EGKFR54Vam+usf0FM66yyxnSbjYTdniJ/v0Av+oWcd+aP R/wxBV23/AZ7FdbW6fCKtoVnrkHUk3sgJJj+w7QGjypuGP25qagfapBKcs4= X-Spam-Status: No, score=-100.0 required=5.0 tests=BAYES_00, GOOD_FROM_CORINNA_CYGWIN, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Aug 2021 08:43:32 -0000 On Aug 28 02:21, Takashi Yano via Cygwin wrote: > On Fri, 27 Aug 2021 12:00:50 -0400 > Ken Brown wrote: > > Two years ago I thought I needed nt_create to avoid problems when calling > > set_pipe_non_blocking. Are you saying that's not an issue? Is > > set_pipe_non_blocking unnecessary? Is that the point of your modification to > > raw_read? > > Yes. Instead of making windows read function itself non-blocking, > it is possible to check if the pipe can be read before read using > PeekNamedPipe(). If the pipe cannot be read right now, EAGAIN is > returned. The problem is this: if (PeekNamedPipe()) ReadFile(blocking); is not atomic. I. e., if PeekNamedPipe succeeds, nothing keeps another thread from draining the pipe between the PeekNamedPipe and the ReadFile call. And as soon as ReadFile runs, it hangs indefinitely and we can't stop it via a signal. Is a blocking ReadFile actually faster than a non-blocking read? Or does it mainly depend on BYTE vs. MESSAGE mode? What if the pipe is created non-blocking and stays non-blocking all the time and uses BYTE mode all the time? Just as sockets, it would always only emulate blocking mode. Wouldn't that drop code size a lot and fix most problems? Corinna