From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1anam02on2129.outbound.protection.outlook.com [40.107.96.129]) by sourceware.org (Postfix) with ESMTPS id E895C3858417 for ; Mon, 30 Aug 2021 14:52:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E895C3858417 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=cornell.edu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cornell.edu ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nefG8ObAPiygPR/V0KW0ZilGr0HuGkULkcA993b+XVZ4RFfA3y4ze3QJzt9eE/8zKfIGGwgPN2eicqxFqJaA6COLV9GC1qgzAayw7mpiz0WhHJnfwW3cES5ktkyCnAoa9YxvSXKiKh/lPFYwJU+jSniRMor2+VdYbQLw1fuRGGVkm5BMpBGhO6drh6hsghmoO8mVhmqiTete5hHL2RpxlHcH/9eHvvr+IDYRKmCvhKMeUBj43/Z3HsXVOrcWIyA2MfwKEGOda1CA3EeXDE/9HNwu/nYCucT0XvJCkwtTmk0lfvdC2xZxbzysQTNs0JqIoT2RCZ1WANfIU8SDx/17eQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k6oJJMjojvfQOPDf+zBBGGgQbBRD08+yc9HXolhbTiU=; b=Ewxc6CxzROBHr9NTMddGEqWYzLquOFeEd41xJIFY87ovF1XjxcYUX5s3Hz8G9QXw8Bipk6L5Ww0LxAQGKjyxAUvBPSrvfSEOPeKsFcFzkyxXyleN9erPaIOu3NIryu7skKI4ASQPz9nwjVtrykXir3GPrz9bYlJ6ridRtMqrARMVsg7qZ6u9eQ78yHhZ7N/aBH2QHSsVBnOm8nypxWaBgNQfn9SWNVj2AKqkN71PkgBgQ40n5XnbwtmKX4m+ZwURA4nNCpWpx1YSGo9TqxX9+JiVM8SkVAG8/34ii4Na3P8wn3fPHdgQYz54md0pfZFhMcONGtHvNVW2seuxi0p1Hw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cornell.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k6oJJMjojvfQOPDf+zBBGGgQbBRD08+yc9HXolhbTiU=; b=KiEE+Jls/piDH08oYqGNv7VRNa23DLHPdJ/uYk2nzw3Jrq5BDl4Dxr19XJLye3AaqBXfijmZlcJ0ZKLdg8e0vZrqalNOqCjAj6S2/K77MwlRo0qqw+o0M+NvRSZ0KVd6r+6kGBbARCegU/9y2JF/KgHP0sIxNmKRlG5+2WNWDy4= Authentication-Results: cygwin.com; dkim=none (message not signed) header.d=none;cygwin.com; dmarc=none action=none header.from=cornell.edu; Received: from BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) by BN6PR04MB0355.namprd04.prod.outlook.com (2603:10b6:404:9a::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Mon, 30 Aug 2021 14:52:14 +0000 Received: from BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::38bd:b608:234f:9ec6]) by BN7PR04MB4388.namprd04.prod.outlook.com ([fe80::38bd:b608:234f:9ec6%7]) with mapi id 15.20.4457.024; Mon, 30 Aug 2021 14:52:14 +0000 Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? To: cygwin-developers@cygwin.com References: <4f2cb5f3-ce9c-c617-f65f-841a5eca096e@cornell.edu> <20210828022111.91ef5b4ff24f6da9fadb489e@nifty.ne.jp> <20210828184102.f2206a8a9e5fe5cf24bf5e45@nifty.ne.jp> <20210829180729.48b4e877f773cb3980c5766d@nifty.ne.jp> <789f056a-f164-d71d-1dc9-230f5a41846d@cornell.edu> <26109994-4ac6-3fbc-bcc7-34287ec9090f@cornell.edu> From: Ken Brown Message-ID: Date: Mon, 30 Aug 2021 10:52:12 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: CH0PR03CA0016.namprd03.prod.outlook.com (2603:10b6:610:b0::21) To BN7PR04MB4388.namprd04.prod.outlook.com (2603:10b6:406:f8::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.211] (74.69.128.111) by CH0PR03CA0016.namprd03.prod.outlook.com (2603:10b6:610:b0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.23 via Frontend Transport; Mon, 30 Aug 2021 14:52:14 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 825aafb3-e02a-43b3-a11c-08d96bc5c12b X-MS-TrafficTypeDiagnostic: BN6PR04MB0355: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KfDUakRfF/hdOD0DRsQfvy7cljiuZr+wf3u/lzObxGvYtN4JWwO7DbZWDwF+xnmx2J8lOfpAo+qFeiCx9tHKsTRLLT9k/qLM0FNWjdLruYS6h0TyZdBl5C58XYw+DuiP0mRHwVuNcLNOYa/HRwGuOs88j8FVZd7aQk6e0TrAsLd/WIEH/Bfzgn4MSHPkeC03vkWal1qvtL4YHSJDZ3PghkiRJdv6/DV9Dtja1KK55BJK6o8LyWYy80Y37kbY/PvI2dckbc18tZZ6Rr4+kO0iPYJgiLN0xBGk4vvKyleIJWm52QQJWkd16K9/794HmTo6iJ2y8YXasY4E3tiuap62w7Ho9MFtYO4gs/Zd9GcrmTVDCpm6TpgIFXakE2oc66JwRN6/YBnp8q9AAKckGGq3u7DGV2dFeMutDKbmusfeZ5xfppksmzbrXszXwzuBydgboObTEIU7qEOA/A5lBszg16WMX0UONOuh1qFs1TDRRH5FwxGMgSSNmoMF9xoA54EbDCnOeUTJgWkH6xf6WuQMipm+iD+eG5asao2n44TNfRy1EqvPSuwkkAoMuLmUB/yCtCSDGmj2gb8jo75PMTpNYvTbr7oM9VEGqaFbcpREJaQ0x8R3Ogz0mAz0J+KVWMyrIzd0BRiNRylh3pDx+KqK5aHGTy35ZLNq0UktnAX6ZnbC4l8BrnmYB7I3eoIRV3ETPLEUyASa1PD3S0wWWA5tPiDTC2gkw2309JZ5aEZdEDPsHnpUJ0Nv4873H+EliZtc7CdSyGxxWxHgnMyyn075q9tV2aKVxRXpsaMavZpR/G0xv574S5Ws5W0fkneqjjC2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR04MB4388.namprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(136003)(366004)(376002)(396003)(39860400002)(2906002)(316002)(786003)(16576012)(75432002)(2616005)(31696002)(66556008)(66476007)(66946007)(31686004)(956004)(6916009)(6486002)(8936002)(86362001)(5660300002)(36756003)(186003)(26005)(53546011)(966005)(38100700002)(478600001)(8676002)(83380400001)(43740500002)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?Windows-1252?Q?SjAV+1W4px7K1MOWeaOx92t9n0Tm7Mj+QIaNk/QNWUWXOB/yRP3PEUmn?= =?Windows-1252?Q?CizwXBbgPKXsSllhC34llvFWi8036zw2rChNbIn5bbbV2ZJSDzIjMZqm?= =?Windows-1252?Q?5cWtsSK95/pqeLpTzDfurj9S3v/iyxHDQTbIeOUMUsQqfEMCH+R3dP1D?= =?Windows-1252?Q?R4uzBqPgqeCrc2oG/iqlmcvKxRLOgBUuFaw2jRl5Mb5KSnrrRsTysJzn?= =?Windows-1252?Q?35I5w0WTUSwMzJh+iWdVh41O9QE6Ey7epShCkNp+50h+O/bYryGNZ53T?= =?Windows-1252?Q?kLLp8a3vvcFxVPjVFmnGeY2YXwYQQB9M60pFgfcUig6j9t1dWRM4R38e?= =?Windows-1252?Q?P/ybeFBEW6UdDpMnfQWtJSJ2EyVNC+P9dv0NouTojnN+bKm5D7HcRl7u?= =?Windows-1252?Q?AKh6Rc00ExmdP2nr7PJbx6J+FuIZCeeVYMJXnoaGRZYK0RsczONzBc+W?= =?Windows-1252?Q?zUCH1Tj4SNds9fs9lxzM8vXchOO4FdWaxoukfdGWN4SO716xc6XWCKvr?= =?Windows-1252?Q?Mpy0Fz0M4y1vowBKKVQpfeflLilfMeTViEgOYT01xDP6p/8ui1Ixikhi?= =?Windows-1252?Q?ZKLWc6OqoNVvruAaiCUEzokZ1bHgeJSpfC8+2U8tj4HnIyNWRhZrCLIM?= =?Windows-1252?Q?ZmRPUcPQuSJZQ22654k0mI1dFAIiGe16Q88vQFBvw7JjQAVKuyMYkUNH?= =?Windows-1252?Q?z0hVxc1cY0MwniExnOPHnxNxc8l1PTR4842Eg9EFdxyt3p2yk9SxExzY?= =?Windows-1252?Q?yAOIWDowgn2KOhx3uJATcRrzbLZHZnMTM2HzfwxgkpCKRXlKEa7vYT2f?= =?Windows-1252?Q?lNb0eRnqJHr0nb1PBE3RQWUfu9BqzO0IlVnVmzkp8bTYjE1Lyi1TyxvX?= =?Windows-1252?Q?f49oSUera//dU03enLub9wBudH7AF7rBoM16m1EkJwYxUb9Itvvve3yL?= =?Windows-1252?Q?8sP5I5xDoi/pvMWbp/E7SvdHZPCQnhALpM+JoQFDuTuQln5AApNdK39+?= =?Windows-1252?Q?gYAWjpr2WpAPT9oXGgAaufESnbbKkhvAb1ilnvEq/520fwLdvZoOATll?= =?Windows-1252?Q?N1AwkHPdDC6aT7ULAQNnBs2gGxvKc4qg5HESVpkk6mlYCeUhE5D8mXNj?= =?Windows-1252?Q?yrzrFu4uKLgIO5ltuzaIJjbf5bsWeSnMavnuy4/ko7vu9t34lF4zUu92?= =?Windows-1252?Q?n9yKXOF6cJVnaH4feLWvEwu3L6rOWkNxMSoOW0xu8/GaFxyUu7Habp6n?= =?Windows-1252?Q?gUz5pbaVXf9QyzKbcdl5Ptu8Z4xVDksYxmJHZD1HkUJ+/ARdFJWUhf/E?= =?Windows-1252?Q?zlhQZGC1Vg/Fn+M7/YxbpTu0dOfIwP6rpqw4uQOiFDAYMdzuhnqwXryN?= =?Windows-1252?Q?QW6cxLyLHLInety36ESAyA0/r3d8CLD99pCSyTavQGvTnG5kV46XPUoL?= X-OriginatorOrg: cornell.edu X-MS-Exchange-CrossTenant-Network-Message-Id: 825aafb3-e02a-43b3-a11c-08d96bc5c12b X-MS-Exchange-CrossTenant-AuthSource: BN7PR04MB4388.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Aug 2021 14:52:14.5076 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Tl1ryXlAGUYhFwoYg3tGXW6lQWwUEOHA7738W/MawBDPWRnO91Wonxv2WchIyXzB8tfacTOIk54SP9hBFdvhuA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR04MB0355 X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, JMQ_SPF_NEUTRAL, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, 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: Mon, 30 Aug 2021 14:52:27 -0000 On 8/30/2021 10:12 AM, Corinna Vinschen wrote: > On Aug 30 09:41, Ken Brown wrote: >> On 8/30/2021 9:20 AM, Corinna Vinschen wrote: >>> On Aug 30 15:00, Corinna Vinschen wrote: >>>> On Aug 30 10:27, Corinna Vinschen wrote: >>>>> [Moving discussion to cygwin-developers] >>>>> >>>>> On Aug 29 11:57, Ken Brown via Cygwin wrote: >>>>>> Corinna, do you still see any benefit to switching to PIPE_NOWAIT? AFAICT, >>>>>> it wouldn't decrease the code size at this point, so the only question is >>>>>> whether it might improve performance. >>>>> >>>>> Pipes are already using PIPE_NOWAIT aka FILE_PIPE_COMPLETE_OPERATION >>>>> mode, see set_pipe_non_blocking. The problem is that it's not used for >>>>> blocking pipes. Rather, blocking pipes use overlapped IO. Overlapped >>>>> IO is conceptually upside-down from the POSIX concept of non-blocking. >>>>> Also, the information returned in FilePipeLocalInformation is historically >>>>> borderline. For kicks, see >>>>> https://cygwin.com/pipermail/cygwin-patches/2004q4/005002.html >>>>> >>>>> So my suggestion is to try switching to non-blocking Windows pipes >>>>> entirely, even for blocking pipes on the user level. It works nicely >>>>> for sockets. >>>> >>>> On second thought, I'm not so sure how to block on non-blocking pipes >>>> on writing. Assuming a write fails because the buffer is full, we >>>> don't have a waitable object to wait on. Unless the pipe handle is >>>> signalled if writing is allowed, but that would be a first in Windows. >>>> So in theory this would still require overlapped IO. Does that still >>>> work as desired if the pipe mode is non-blocking? I don't think I ever >>>> tried that... >>> >>> That probably doesn't make sense. If WriteFile returns without writing >>> something, what should overlapped io be waiting on? >> >> The approach I've taken on the topic/pipe branch is to stop using overlapped >> I/O and to always keep the blocking mode of the Windows pipe in sync with >> the blocking mode of the fhandler. This seems to work pretty well so far, >> although problems could certainly show up after further testing. > > Erm... afaics, fhandler_pipe::raw_read and fhandler_pipe::raw_write are > still using overlapped IO on blocking sockets. Otherwise, how'd you > handle signals? > > Just to be clear, Windows pipes can be read/write in three modes: > > - non-blocking (FILE_PIPE_COMPLETE_OPERATION) > - synchronous (FILE_PIPE_QUEUE_OPERATION, non-overlapped) > - asynchronous (FILE_PIPE_QUEUE_OPERATION, overlapped) OK, I've been thoroughly confused about what "overlapped" means. I thought it meant specifying FILE_FLAG_OVERLAPPED and a pointer to an OVERLAPPED structure, both of which (I thought) only made sense when using the Win32 API rather than the NT API. I *think* I understand what you mean now. By using an event in the calls to NtReadFile and NtWriteFile in the blocking case, I'm selecting asynchronous mode, right? Ken