From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from conssluserg-02.nifty.com (conssluserg-02.nifty.com [210.131.2.81]) by sourceware.org (Postfix) with ESMTPS id 4BD11384C002 for ; Thu, 9 Sep 2021 03:41:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4BD11384C002 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=nifty.ne.jp Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nifty.ne.jp Received: from Express5800-S70 (z221123.dynamic.ppp.asahi-net.or.jp [110.4.221.123]) (authenticated) by conssluserg-02.nifty.com with ESMTP id 1893f517028412 for ; Thu, 9 Sep 2021 12:41:06 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-02.nifty.com 1893f517028412 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp; s=dec2015msa; t=1631158866; bh=bwxZOffyEQgvLq43Bh+u7e0jin1H93rwMs7oEDsM2jE=; h=Date:From:To:Subject:In-Reply-To:References:From; b=OghfMVNH+d0Zcauh07KH9E5LwtupIqlP0p0kvgLrTXdlvPQcRXz1IKqZgwHw1UTlU j4v5+njN/vX8BMoVsCgqTaoHcO+sRVBbjRQu24YOHPy0fKQUVcrTwayCrXdbbCj/VL eA4rI474tlHnCe98/x7BQrXB4Rzb4eiMUMELcguL/Go+haE0Z7gXQkYyL0OopLGBMx oKqeAGTCU6+xDGPEHmeH9qVOcVh6uVl3BrPD98U2eCJB3I2LlsuXSEXi5pxzoAceAz e/zxdHkHQR761tph92aUx+jg5umTiS/QuPdPHYRv0NK0yY2yaJHLlNYc0skOc+i61T ZnYzYCIoly9OQ== X-Nifty-SrcIP: [110.4.221.123] Date: Thu, 9 Sep 2021 12:41:15 +0900 From: Takashi Yano To: cygwin-developers@cygwin.com Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? Message-Id: <20210909124115.555c6be15d675500617d284a@nifty.ne.jp> In-Reply-To: <20210907122631.65452be8d021ec72259431d5@nifty.ne.jp> 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> <20210907122631.65452be8d021ec72259431d5@nifty.ne.jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Thu__9_Sep_2021_12_41_15_+0900_51qowwEo/Tm/updf" X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, 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: Thu, 09 Sep 2021 03:41:47 -0000 This is a multi-part message in MIME format. --Multipart=_Thu__9_Sep_2021_12_41_15_+0900_51qowwEo/Tm/updf Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Hi Ken, On Tue, 7 Sep 2021 12:26:31 +0900 Takashi Yano wrote: > On Fri, 27 Aug 2021 20:24:40 +0900 > Takashi Yano wrote: > > Hi Ken, > > > > Thanks much! I tested topic/pipe branch. > > > > [yano@cygwin-PC ~]$ scp test.dat yano@linux-server:. > > yano@linux-server's password: > > test.dat 100% 100MB 95.9MB/s 00:01 > > [yano@cygwin-PC ~]$ scp yano@linux-server:test.dat . > > yano@linux-server's password: > > test.dat 100% 100MB 8.0MB/s 00:12 > > > > yano@linux-server:~$ scp yano@cygwin-PC:test.dat . > > yano@cygwin-PC's password: > > test.dat 100% 100MB 109.7MB/s 00:00 > > yano@linux-server:~$ scp test.dat yano@cygwin-PC:. > > yano@cygwin-PC's password: > > test.dat 100% 100MB 31.4MB/s 00:03 > > > > As shown above, outgoing transfer-rate has been improved upto near > > theoretical limit. However, incoming transfer-rate is not improved > > much. > > > > I digged further and found the first patch attached solves the issue > > as follows. > > > > [yano@cygwin-PC ~]$ scp yano@linux-server:test.dat . > > yano@linux-server's password: > > test.dat 100% 100MB 112.8MB/s 00:00 > > > > yano@linux-server2:~$ scp test.dat yano@cygwin-PC:. > > yano@cygwin-PC's password: > > test.dat 100% 100MB 102.5MB/s 00:00 > > With this patch (2e36ae2e), I found a problem that mintty gets into > high load if several keys are typed quickly. > > Therefore, I would like to propose a patch attached. I found the fifo has same issue as pipe that throughput is slowing down occasionally. Please try simple test case attached (fifo_test.c). Argument of fifo_test means: 0: with select, blocking I/O 1: with select, non-blocking I/O 2: without select, blocking I/O 3: without select, non-blocking I/O In my environment, the results are as follows. [yano@Express5800-S70 ~/pipe_test]$ ./fifo_test 0 Total: 100MB in 4.593770 second, 21.768613MB/s [yano@Express5800-S70 ~/pipe_test]$ ./fifo_test 1 Total: 100MB in 0.564711 second, 177.081603MB/s [yano@Express5800-S70 ~/pipe_test]$ ./fifo_test 2 Total: 100MB in 0.514730 second, 194.276724MB/s [yano@Express5800-S70 ~/pipe_test]$ ./fifo_test 3 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr Total: 100MB in 0.038880 second, 2572.003230MB/s Therefore, I would like to propose patch attached, which utilizes select_sem just as pipe. With the patch attached, the throughput of the fifo is improved much as follows. [yano@Express5800-S70 ~/pipe_test]$ ./fifo_test 0 Total: 100MB in 0.076400 second, 1308.895384MB/s [yano@Express5800-S70 ~/pipe_test]$ ./fifo_test 1 Total: 100MB in 0.064198 second, 1557.683351MB/s [yano@Express5800-S70 ~/pipe_test]$ ./fifo_test 2 Total: 100MB in 0.021803 second, 4586.503754MB/s [yano@Express5800-S70 ~/pipe_test]$ ./fifo_test 3 wwwwwwrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr Total: 100MB in 0.021747 second, 4598.271969MB/s -- Takashi Yano --Multipart=_Thu__9_Sep_2021_12_41_15_+0900_51qowwEo/Tm/updf Content-Type: text/x-csrc; name="fifo_test.c" Content-Disposition: attachment; filename="fifo_test.c" Content-Transfer-Encoding: 7bit #include #include #include #include #include #include #include #include #define FIFO_NAME "/tmp/fifo1" #define BLKSIZ 65536 #define NBLK (100*(1<<20)/BLKSIZ) int main(int argc, char *argv[]) { pid_t pid; int nonblock = 0; int skip_select = 0; if (argc >= 2 && (atoi(argv[1]) & 1)) nonblock = 1; if (argc >= 2 && (atoi(argv[1]) & 2)) skip_select = 1; mkfifo("/tmp/fifo1", 0644); if (!(pid = fork ())) { int fifo; char buf[BLKSIZ] = {0,}; int i; fifo = open(FIFO_NAME, O_WRONLY); if (nonblock) { int flags; flags = fcntl(fifo, F_GETFL); flags |= O_NONBLOCK; fcntl(fifo, F_SETFL, flags); } fd_set wfds; for (i=0; i 0 && FD_ISSET(fifo, &wfds)) { errno = 0; ssize_t len = write(fifo, buf + total, sizeof(buf) - total); if (len <= 0 && errno == EAGAIN) printf("w", i); if (len > 0) total += len; } } } close(fifo); } else { int fifo; char buf[BLKSIZ] = {0,}; int total = 0; fd_set rfds; struct timespec tv0, tv1; double elasped; fifo = open(FIFO_NAME, O_RDONLY); if (nonblock) { int flags; flags = fcntl(fifo, F_GETFL); flags |= O_NONBLOCK; fcntl(fifo, F_SETFL, flags); } clock_gettime(CLOCK_MONOTONIC, &tv0); for (;;) { FD_ZERO(&rfds); FD_SET(fifo, &rfds); if (skip_select || select(fifo+1, &rfds, NULL, NULL, NULL) > 0 && FD_ISSET(fifo, &rfds)) { errno = 0; ssize_t len = read(fifo, buf, sizeof(buf)); if (len <= 0 && errno == EAGAIN) printf("r"); else if(len <= 0) break; else total += len; } } clock_gettime(CLOCK_MONOTONIC, &tv1); close(fifo); elasped = (tv1.tv_sec - tv0.tv_sec) + (tv1.tv_nsec - tv0.tv_nsec)*1e-9; printf("\nTotal: %dMB in %f second, %fMB/s\n", total/(1<<20), elasped, total/(1<<20)/elasped); if (total != NBLK*BLKSIZ) { printf("Error: %d/%d (%f)\n", total, NBLK*BLKSIZ, (double)(total-NBLK*BLKSIZ)/BLKSIZ); } waitpid(pid, NULL, 0); unlink(FIFO_NAME); } return 0; } --Multipart=_Thu__9_Sep_2021_12_41_15_+0900_51qowwEo/Tm/updf Content-Type: application/octet-stream; name="0001-Cygwin-fifo-Utilize-select_sem-for-fifo-as-well-as-p.patch" Content-Disposition: attachment; filename="0001-Cygwin-fifo-Utilize-select_sem-for-fifo-as-well-as-p.patch" Content-Transfer-Encoding: base64 RnJvbSBiZWVhZTYxZjk3MTQ1ZDc5NWM0NDc5YjBkNDZjZDNiNzVkNjI1NmM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogVGh1LCA5IFNlcCAyMDIxIDExOjUzOjExICswOTAwClN1YmplY3Q6IFtQQVRDSF0g Q3lnd2luOiBmaWZvOiBVdGlsaXplIHNlbGVjdF9zZW0gZm9yIGZpZm8gYXMgd2VsbCBhcyBwaXBl LgoKLS0tCiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX2ZpZm8uY2MgfCAzNyArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCiB3aW5zdXAvY3lnd2luL3NlbGVjdC5jYyAgICAgICAgfCAx MCArKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX2ZpZm8uY2MgYi93aW5z dXAvY3lnd2luL2ZoYW5kbGVyX2ZpZm8uY2MKaW5kZXggNjcwOWZiOTc0Li5jNDA1NzM3ODMgMTAw NjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfZmlmby5jYworKysgYi93aW5zdXAvY3ln d2luL2ZoYW5kbGVyX2ZpZm8uY2MKQEAgLTEwNDcsNiArMTA0NywxMiBAQCB3cml0ZXJfc2htZW06 CiAgIFJlc2V0RXZlbnQgKHdyaXRlcl9vcGVuaW5nKTsKICAgbndyaXRlcnNfdW5sb2NrICgpOwog c3VjY2VzczoKKyAgaWYgKCFzZWxlY3Rfc2VtKQorICAgIHsKKyAgICAgIGNoYXIgbmFtZVtNQVhf UEFUSF07CisgICAgICBfX3NtYWxsX3NwcmludGYobmFtZSwgInNlbWFwaG9yZS0lVyIsIGdldF9w aXBlX25hbWUgKCktPkJ1ZmZlcik7CisgICAgICBzZWxlY3Rfc2VtID0gQ3JlYXRlU2VtYXBob3Jl ICgmc2VjX25vbmUsIDAsIElOVDMyX01BWCwgbmFtZSk7CisgICAgfQogICByZXR1cm4gMTsKIGVy cl9jbG9zZV9yZWFkZXI6CiAgIHNhdmVkX2Vycm5vID0gZ2V0X2Vycm5vICgpOwpAQCAtMTIzNSw2 ICsxMjQxLDEwIEBAIGZoYW5kbGVyX2ZpZm86OnJhd19yZWFkICh2b2lkICppbl9wdHIsIHNpemVf dCYgbGVuKQogCQkgIGxlbiA9IGlvLkluZm9ybWF0aW9uOwogCQkgIGZpZm9fY2xpZW50X3VubG9j ayAoKTsKIAkJICByZWFkaW5nX3VubG9jayAoKTsKKwkJICBpZiAoc2VsZWN0X3NlbSkKKwkJICAg IFJlbGVhc2VTZW1hcGhvcmUgKHNlbGVjdF9zZW0sCisJCQkJICAgICAgZ2V0X29ial9oYW5kbGVf Y291bnQgKHNlbGVjdF9zZW0pLAorCQkJCSAgICAgIE5VTEwpOwogCQkgIHJldHVybjsKIAkJfQog CSAgICAgIGJyZWFrOwpAQCAtMTI3Myw2ICsxMjgzLDEwIEBAIGZoYW5kbGVyX2ZpZm86OnJhd19y ZWFkICh2b2lkICppbl9wdHIsIHNpemVfdCYgbGVuKQogCQkgICAgZmNfaGFuZGxlcltpXS5sYXN0 X3JlYWQgPSB0cnVlOwogCQkgICAgZmlmb19jbGllbnRfdW5sb2NrICgpOwogCQkgICAgcmVhZGlu Z191bmxvY2sgKCk7CisJCSAgICBpZiAoc2VsZWN0X3NlbSkKKwkJICAgICAgUmVsZWFzZVNlbWFw aG9yZSAoc2VsZWN0X3NlbSwKKwkJCQkJZ2V0X29ial9oYW5kbGVfY291bnQgKHNlbGVjdF9zZW0p LAorCQkJCQlOVUxMKTsKIAkJICAgIHJldHVybjsKIAkJICB9CiAJCWJyZWFrOwpAQCAtMTMxMiw2 ICsxMzI2LDEwIEBAIGZoYW5kbGVyX2ZpZm86OnJhd19yZWFkICh2b2lkICppbl9wdHIsIHNpemVf dCYgbGVuKQogCQkgICAgZmNfaGFuZGxlcltpXS5sYXN0X3JlYWQgPSB0cnVlOwogCQkgICAgZmlm b19jbGllbnRfdW5sb2NrICgpOwogCQkgICAgcmVhZGluZ191bmxvY2sgKCk7CisJCSAgICBpZiAo c2VsZWN0X3NlbSkKKwkJICAgICAgUmVsZWFzZVNlbWFwaG9yZSAoc2VsZWN0X3NlbSwKKwkJCQkJ Z2V0X29ial9oYW5kbGVfY291bnQgKHNlbGVjdF9zZW0pLAorCQkJCQlOVUxMKTsKIAkJICAgIHJl dHVybjsKIAkJICB9CiAJCWJyZWFrOwpAQCAtMTM0NSw3ICsxMzYzLDcgQEAgbWF5YmVfcmV0cnk6 CiAgICAgICBlbHNlCiAJewogCSAgLyogQWxsb3cgaW50ZXJydXB0aW9uIGFuZCBkb24ndCBob2cg dGhlIENQVS4gKi8KLQkgIERXT1JEIHdhaXRyZXQgPSBjeWd3YWl0IChOVUxMLCAxLCBjd19jYW5j ZWwgfCBjd19zaWdfZWludHIpOworCSAgRFdPUkQgd2FpdHJldCA9IGN5Z3dhaXQgKHNlbGVjdF9z ZW0sIDEsIGN3X2NhbmNlbCB8IGN3X3NpZ19laW50cik7CiAJICBpZiAod2FpdHJldCA9PSBXQUlU X0NBTkNFTEVEKQogCSAgICBwdGhyZWFkOjpzdGF0aWNfY2FuY2VsX3NlbGYgKCk7CiAJICBlbHNl IGlmICh3YWl0cmV0ID09IFdBSVRfU0lHTkFMRUQpCkBAIC0xNTY5LDYgKzE1ODcsMTEgQEAgZmhh bmRsZXJfZmlmbzo6Y2xvc2UgKCkKICAgICBOdENsb3NlICh3cml0ZV9yZWFkeSk7CiAgIGlmICh3 cml0ZXJfb3BlbmluZykKICAgICBOdENsb3NlICh3cml0ZXJfb3BlbmluZyk7CisgIGlmIChzZWxl Y3Rfc2VtKQorICAgIHsKKyAgICAgIFJlbGVhc2VTZW1hcGhvcmUgKHNlbGVjdF9zZW0sIGdldF9v YmpfaGFuZGxlX2NvdW50IChzZWxlY3Rfc2VtKSwgTlVMTCk7CisgICAgICBOdENsb3NlIChzZWxl Y3Rfc2VtKTsKKyAgICB9CiAgIGlmIChub2hhbmRsZSAoKSkKICAgICByZXR1cm4gMDsKICAgZWxz ZQpAQCAtMTY4Myw3ICsxNzA2LDE3IEBAIGZoYW5kbGVyX2ZpZm86OmR1cCAoZmhhbmRsZXJfYmFz ZSAqY2hpbGQsIGludCBmbGFncykKICAgICB9CiAgIGlmICh3cml0ZXIpCiAgICAgaW5jX253cml0 ZXJzICgpOworICBpZiAoc2VsZWN0X3NlbSAmJgorICAgICAgIUR1cGxpY2F0ZUhhbmRsZSAoR2V0 Q3VycmVudFByb2Nlc3MgKCksIHNlbGVjdF9zZW0sCisJCQlHZXRDdXJyZW50UHJvY2VzcyAoKSwg JmZoZi0+c2VsZWN0X3NlbSwKKwkJCTAsICEoZmxhZ3MgJiBPX0NMT0VYRUMpLCBEVVBMSUNBVEVf U0FNRV9BQ0NFU1MpKQorICAgIHsKKyAgICAgIF9fc2V0ZXJybm8gKCk7CisgICAgICBnb3RvIGVy cl9jbG9zZV90aHJfc3luY19ldnQ7CisgICAgfQogICByZXR1cm4gMDsKK2Vycl9jbG9zZV90aHJf c3luY19ldnQ6CisgIE50Q2xvc2UgKGZoZi0+dGhyX3N5bmNfZXZ0KTsKIGVycl9jbG9zZV9jYW5j ZWxfZXZ0OgogICBOdENsb3NlIChmaGYtPmNhbmNlbF9ldnQpOwogZXJyX2Nsb3NlX3VwZGF0ZV9u ZWVkZWRfZXZ0OgpAQCAtMTc0Myw2ICsxNzc2LDggQEAgZmhhbmRsZXJfZmlmbzo6Zml4dXBfYWZ0 ZXJfZm9yayAoSEFORExFIHBhcmVudCkKICAgICAgIG1lLndpbnBpZCA9IEdldEN1cnJlbnRQcm9j ZXNzSWQgKCk7CiAgICAgICBuZXcgY3lndGhyZWFkIChmaWZvX3JlYWRlcl90aHJlYWQsIHRoaXMs ICJmaWZvX3JlYWRlciIsIHRocl9zeW5jX2V2dCk7CiAgICAgfQorICBpZiAoc2VsZWN0X3NlbSkK KyAgICBmb3JrX2ZpeHVwIChwYXJlbnQsIHNlbGVjdF9zZW0sICJzZWxlY3Rfc2VtIik7CiAgIGlm ICh3cml0ZXIpCiAgICAgaW5jX253cml0ZXJzICgpOwogfQpkaWZmIC0tZ2l0IGEvd2luc3VwL2N5 Z3dpbi9zZWxlY3QuY2MgYi93aW5zdXAvY3lnd2luL3NlbGVjdC5jYwppbmRleCBlOWU3MWIyNjku LjVlNTgzNDM0YyAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9zZWxlY3QuY2MKKysrIGIvd2lu c3VwL2N5Z3dpbi9zZWxlY3QuY2MKQEAgLTk2Myw3ICs5NjMsMTMgQEAgc3RhcnRfdGhyZWFkX2Zp Zm8gKHNlbGVjdF9yZWNvcmQgKm1lLCBzZWxlY3Rfc3R1ZmYgKnN0dWZmKQogICAgIHsKICAgICAg IHBpLT5zdGFydCA9ICZzdHVmZi0+c3RhcnQ7CiAgICAgICBwaS0+c3RvcF90aHJlYWQgPSBmYWxz ZTsKLSAgICAgIHBpLT5ieWUgPSBDcmVhdGVFdmVudCAoJnNlY19ub25lX25paCwgVFJVRSwgRkFM U0UsIE5VTEwpOworICAgICAgcGktPmJ5ZSA9IG1lLT5maC0+Z2V0X3NlbGVjdF9zZW0gKCk7Cisg ICAgICBpZiAocGktPmJ5ZSkKKwlEdXBsaWNhdGVIYW5kbGUgKEdldEN1cnJlbnRQcm9jZXNzICgp LCBwaS0+YnllLAorCQkJIEdldEN1cnJlbnRQcm9jZXNzICgpLCAmcGktPmJ5ZSwKKwkJCSAwLCAw LCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpOworICAgICAgZWxzZQorCXBpLT5ieWUgPSBDcmVhdGVT ZW1hcGhvcmUgKCZzZWNfbm9uZV9uaWgsIDAsIElOVDMyX01BWCwgTlVMTCk7CiAgICAgICBwaS0+ dGhyZWFkID0gbmV3IGN5Z3RocmVhZCAodGhyZWFkX2ZpZm8sIHBpLCAiZmlmb3NlbCIpOwogICAg ICAgbWUtPmggPSAqcGktPnRocmVhZDsKICAgICAgIGlmICghbWUtPmgpCkBAIC05ODEsNyArOTg3 LDcgQEAgZmlmb19jbGVhbnVwIChzZWxlY3RfcmVjb3JkICosIHNlbGVjdF9zdHVmZiAqc3R1ZmYp CiAgIGlmIChwaS0+dGhyZWFkKQogICAgIHsKICAgICAgIHBpLT5zdG9wX3RocmVhZCA9IHRydWU7 Ci0gICAgICBTZXRFdmVudCAocGktPmJ5ZSk7CisgICAgICBSZWxlYXNlU2VtYXBob3JlIChwaS0+ YnllLCBnZXRfb2JqX2hhbmRsZV9jb3VudCAocGktPmJ5ZSksIE5VTEwpOwogICAgICAgcGktPnRo cmVhZC0+ZGV0YWNoICgpOwogICAgICAgQ2xvc2VIYW5kbGUgKHBpLT5ieWUpOwogICAgIH0KLS0g CjIuMzMuMAoK --Multipart=_Thu__9_Sep_2021_12_41_15_+0900_51qowwEo/Tm/updf--