From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.24]) by sourceware.org (Postfix) with ESMTPS id 3FB913858409 for ; Tue, 31 Aug 2021 15:27:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3FB913858409 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=cygwin.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=cygwin.com Received: from calimero.vinschen.de ([24.134.7.25]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MMFZQ-1mayM83SvW-00JHHa for ; Tue, 31 Aug 2021 17:27:06 +0200 Received: by calimero.vinschen.de (Postfix, from userid 500) id 6C71CA80D9A; Tue, 31 Aug 2021 17:27:06 +0200 (CEST) Date: Tue, 31 Aug 2021 17:27:06 +0200 From: Corinna Vinschen To: cygwin-developers@cygwin.com Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? Message-ID: Reply-To: cygwin-developers@cygwin.com Mail-Followup-To: cygwin-developers@cygwin.com References: <20210831175534.21edae2356d74a0750c686de@nifty.ne.jp> <20210831182500.4c1c67dae13f51ca68964f63@nifty.ne.jp> <20210831204541.2b56702cdcd2fae5e91ba8e2@nifty.ne.jp> <583ca127-02e7-6b3c-3732-6478c0f862e3@cornell.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-Provags-ID: V03:K1:fwOj9ggiQkED4uJaTAhUG9npN8j9rnuHEjZGAm0H2GSKSGeyTID gcaVtkabuLuEQSxtvZITqG9UDEFQKXDg3mHmoA0EanfSshJnks6Ys77W6nX51ZjoH383ApX FV7XpJOX0zXQMX3yPU22lAVC/6QOwGipdt00fQia8dzVVCJR/6D71T16DlI+KvhbujZN2hp bYrlBFQPBBSVbLHL5JdBA== X-UI-Out-Filterresults: notjunk:1;V03:K0:MJ2ewbrqKsE=:uZm3Y1ITKp70kXUIYSCA7o r2Bpuos72C9lFSuJQCEur8XlYPQzKX+Sxse7f9sts/tlIX5P+6Hxp7jrXhdMBeiZrgpuzVz+8 Tn8M6CpJjAd6EP5ISLWH8hgG6SXMyM693emCIeqO4r4oTa+G/cSDXWIra4mY91MC0Luw6E+w2 fbrhc8NASrRiXkx1pM7wYwo3Ysm3cs9wXLQibeaTB425ugWLRkd8iOujPWayX2GB91q0QkJSy Xs/re9NYQqR1oNZPiNJ9XdaYBmZjU3/tbuDCCC0rKmPDVZYQRMQgdKrgDuIzuu+fJYKhTg1x1 lQ7XBT1LWCBBQNCRRlRWzXxWH+ln7v2tjz8oDk1cGmtRHx/Q6GmcjazYbHnSYW9RPccUZK2od B0Bg2axuVgRkjpkqz2H1DBd26jN919aBpttV1mZqY+2aneOjUzWdJe5ARZbL/ld8JBHID8DuE T3udNzuj43JbUcTc5OlfnFOXLcyiTvT97DqyabwWnQBozyrCyMOVzg3gddhgFY6W5jTV2kHHO p+JWqbN5e+bYokKe/anGmFJlE6VcAMHw56eVr9owk5WgdJmlp6LY5ygejDJWqwttFWiyIbKnY beDnOTetKFKi/xq25HSmpIxb6paXtmCHZTSKHnh219TlDfUS9OS0hnD34YCVnJjIfi8DCvGvZ JUE+fiK4quaN/jSqFOOHEF/mJk9dEDK/0wU45fVZW8pby/dTKkHyjz9psQOyfz+d58M2U8aWC MwB8M5dbOgw+l45co/yix13ZxFs8whUaign7RT1vVzmc9v6wEimnZDrl/oE= X-Spam-Status: No, score=-100.1 required=5.0 tests=BAYES_00, GOOD_FROM_CORINNA_CYGWIN, KAM_DMARC_NONE, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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-developers@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component developers mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Aug 2021 15:27:09 -0000 On Aug 31 17:18, Corinna Vinschen wrote: > On Aug 31 08:33, Ken Brown wrote: > > On 8/31/2021 7:45 AM, Takashi Yano wrote: > > > On Tue, 31 Aug 2021 12:18:57 +0200 > > > Corinna Vinschen wrote: > > > > Please try the attached patch on top of topic/pipe. > > > > > > Thanks for the new patch. I have confirmed that above issue > > > is fixed and select() for write pipe seems to work as expected. > > > > > > > > > BTW, I found one minor difference between Linux and this pipe > > > implementation. > > > [...] > > > Is this difficult to be fixed? > > Two other remarks: > > > > 1. I think query_hdl needs to be initialized in the fhandler_pipe constructor. > > No, that's not necessary. The fhandlers are always ccalloc'ed so they > are all 0 anyway. > > > 2. When the read side of the pipe is non-blocking, there can be no pending > > reads, so shouldn't we be able to use WriteQuotaAvailable reliably on the > > write side? (I can't test this at the moment.) > > In theory, yes, but is it a safe bet that non-blocking reads won't change > WriteQuotaAvailable on the write side, at least for a very short time? > The question is, of course, if that really makes much of a difference. Oh, btw... why do you want to use WriteQuotaAvailable for normal pipes, even though the read side information is available anyway? We can do that for fifos, no problem, but it doesn't make much sense to differ between blocking and non-blocking pipes, the code flow is the same. Corinna