From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from conssluserg-06.nifty.com (conssluserg-06.nifty.com [210.131.2.91]) by sourceware.org (Postfix) with ESMTPS id EF73F3850419 for ; Wed, 8 Sep 2021 09:02:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EF73F3850419 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-06.nifty.com with ESMTP id 18891g6g006041 for ; Wed, 8 Sep 2021 18:01:42 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-06.nifty.com 18891g6g006041 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp; s=dec2015msa; t=1631091702; bh=jbh4IJPsxGCgbqPwlUYN/V5IwI5gI2Zgqz7vQMXCnMY=; h=Date:From:To:Subject:In-Reply-To:References:From; b=scupdhO94MML7+UBE5Oo+bxMBe1h47xwv0IxJZHISahs5oQHjUhwBeAabTWlHolb/ anoITkJqJdqyE7hi/kPk4S6H5hCs9fvd3rqXao+qgU/n64im4usHgMzTPgrvoL2MbC dFa4vXI56xQC+wwaP26S2fYrJwMVjHUJseS5rYbZu9pdK5KbkMKsmE9VJbCdOlLtae 0EhtC/rH069VhQDvv1cfaeqT3Zhc39idMe4SmoCJi69+0Ks53lG00RK9lAyrB0TvJm ZWsA9HHjlI7Dq7l/P4D0qaG3EupziU3m5MIjC/jr8u53xek6sFewQyy5it5Muqsaew 8WDL+PlJPIN0w== X-Nifty-SrcIP: [110.4.221.123] Date: Wed, 8 Sep 2021 18:01:42 +0900 From: Takashi Yano To: cygwin-developers@cygwin.com Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? Message-Id: <20210908180142.a4dfe510100164f123c38158@nifty.ne.jp> In-Reply-To: <20210908131141.bf63a795ce13c8dd8f5c13a8@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> <20210907195023.31ad8194457bb90c2b6971b4@nifty.ne.jp> <20210908090748.3e70ed5aea3fa3c320b5ae0d@nifty.ne.jp> <20210908131141.bf63a795ce13c8dd8f5c13a8@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=_Wed__8_Sep_2021_18_01_42_+0900_cahK7Z06iAHoDmBn" X-Spam-Status: No, score=-5.1 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: Wed, 08 Sep 2021 09:02:20 -0000 This is a multi-part message in MIME format. --Multipart=_Wed__8_Sep_2021_18_01_42_+0900_cahK7Z06iAHoDmBn Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Wed, 8 Sep 2021 13:11:41 +0900 Takashi Yano wrote: > On Wed, 8 Sep 2021 09:07:48 +0900 > Takashi Yano wrote: > > On Tue, 7 Sep 2021 19:50:23 +0900 > > Takashi Yano wrote: > > > > > @@ -796,7 +792,8 @@ pipe_cleanup (select_record *, select_stuff *stuff) > > > pi->stop_thread = true; > > > SetEvent (pi->bye); > > ~~~~~~~~~~~~~~~~~~~ > > This is not correct. SetEvent() wakes-up one of thread_pipe()s, > > but it may be other thread than one which should be stopped. > > > > > pi->thread->detach (); > > > - CloseHandle (pi->bye); > > > + if (me->fh->get_select_evt () == NULL) > > > + CloseHandle (pi->bye); > > > } > > > delete pi; > > > stuff->device_specific_pipe = NULL; > > > > I think it also should be > > > + for (ULONG i = 0; i < get_obj_handle_count (select_evt); i++) > > > + SetEvent (select_evt); > > > > Actually I want to use PulseEvent() here if it is not **UNRELIABLE**. > > https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/28648-pulseevent-is-an-unreliable-function > > > > Does using semaphore object instead of event, and releasing > > resources equal to the number of handles make sense? > > No it does not. One thread may consume semaphore multiple times.... I wrote a simple test program which counts wake-up 1000 times in 100 threads, and confirmed that semaphore method works as expected as well as PulseEvent(). All 100000 (100*1000) wake-up were counted without miscount. Therefore, patch attached should work. -- Takashi Yano --Multipart=_Wed__8_Sep_2021_18_01_42_+0900_cahK7Z06iAHoDmBn Content-Type: application/octet-stream; name="0001-Cygwin-select-Introduce-select_sem-semaphore-for-pip.patch" Content-Disposition: attachment; filename="0001-Cygwin-select-Introduce-select_sem-semaphore-for-pip.patch" Content-Transfer-Encoding: base64 RnJvbSBhYWYwZDhiYTdmZjgzODU4ODQ5NjhhMzY2NGM1OGQwNTkzMWIwOWI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogV2VkLCA4IFNlcCAyMDIxIDE3OjE4OjM1ICswOTAwClN1YmplY3Q6IFtQQVRDSF0g Q3lnd2luOiBzZWxlY3Q6IEludHJvZHVjZSBzZWxlY3Rfc2VtIHNlbWFwaG9yZSBmb3IgcGlwZS4K Ci0gVGhpcyBwYXRjaCByZXZlcnRzICJDeWd3aW46IHNlbGVjdDogSW1wcm92ZSBzZWxlY3QvcG9s bCByZXNwb25zZSIsCiAgYW5kIGludHJvZHVjZXMgc2VsZWN0X3NlbSBzZW1hcGhvcmUgd2hpY2gg bm90aWZpZXMgcGlwZSBzdGF0dXMKICBjaGFuZ2UuCi0tLQogd2luc3VwL2N5Z3dpbi9maGFuZGxl ci5jYyAgICAgIHwgIDEgKwogd2luc3VwL2N5Z3dpbi9maGFuZGxlci5oICAgICAgIHwgIDMgKysr CiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MgfCAyNSArKysrKysrKysrKysrKysrKysr Kwogd2luc3VwL2N5Z3dpbi9zZWxlY3QuY2MgICAgICAgIHwgNDIgKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAzMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmNjIGIvd2lu c3VwL2N5Z3dpbi9maGFuZGxlci5jYwppbmRleCBmMGMxYjY4ZjEuLjM5ZmUyNjQwYSAxMDA2NDQK LS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlci5jYworKysgYi93aW5zdXAvY3lnd2luL2ZoYW5k bGVyLmNjCkBAIC0xNDY0LDYgKzE0NjQsNyBAQCBmaGFuZGxlcl9iYXNlOjpmaGFuZGxlcl9iYXNl ICgpIDoKICAgX3JlZmNudCAoMCksCiAgIG9wZW5mbGFncyAoMCksCiAgIHVuaXF1ZV9pZCAoMCks CisgIHNlbGVjdF9zZW0gKE5VTEwpLAogICBhcmNoZXR5cGUgKE5VTEwpLAogICB1c2Vjb3VudCAo MCkKIHsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaCBiL3dpbnN1cC9jeWd3 aW4vZmhhbmRsZXIuaAppbmRleCA3YWVkMDg5ZWIuLmQzMDliZTJmNyAxMDA2NDQKLS0tIGEvd2lu c3VwL2N5Z3dpbi9maGFuZGxlci5oCisrKyBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaApAQCAt MjE3LDYgKzIxNyw3IEBAIGNsYXNzIGZoYW5kbGVyX2Jhc2UKICAgdm9pZCBzZXRfaW5vIChpbm9f dCBpKSB7IGlubyA9IGk7IH0KIAogICBIQU5ETEUgcmVhZF9zdGF0ZTsKKyAgSEFORExFIHNlbGVj dF9zZW07CiAKICBwdWJsaWM6CiAgIExPTkcgaW5jX3JlZmNudCAoKSB7cmV0dXJuIEludGVybG9j a2VkSW5jcmVtZW50ICgmX3JlZmNudCk7fQpAQCAtNTIwLDYgKzUyMSw4IEBAIHB1YmxpYzoKICAg ICBmaC0+Y29weV9mcm9tICh0aGlzKTsKICAgICByZXR1cm4gZmg7CiAgIH0KKworICBIQU5ETEUg Z2V0X3NlbGVjdF9zZW0gKCkgeyByZXR1cm4gc2VsZWN0X3NlbTsgfQogfTsKIAogc3RydWN0IHdz YV9ldmVudApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9waXBlLmNjIGIvd2lu c3VwL2N5Z3dpbi9maGFuZGxlcl9waXBlLmNjCmluZGV4IGM3NTQ3NjA0MC4uNTAzZDVjODg4IDEw MDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3BpcGUuY2MKKysrIGIvd2luc3VwL2N5 Z3dpbi9maGFuZGxlcl9waXBlLmNjCkBAIC0zNzYsNiArMzc2LDggQEAgZmhhbmRsZXJfcGlwZTo6 cmF3X3JlYWQgKHZvaWQgKnB0ciwgc2l6ZV90JiBsZW4pCiAgICAgfQogICBlbHNlIGlmIChzdGF0 dXMgPT0gU1RBVFVTX1RIUkVBRF9DQU5DRUxFRCkKICAgICBwdGhyZWFkOjpzdGF0aWNfY2FuY2Vs X3NlbGYgKCk7CisgIGlmIChzZWxlY3Rfc2VtICYmIG5ieXRlcykKKyAgICBSZWxlYXNlU2VtYXBo b3JlIChzZWxlY3Rfc2VtLCBnZXRfb2JqX2hhbmRsZV9jb3VudCAoc2VsZWN0X3NlbSksIE5VTEwp OwogICBsZW4gPSBuYnl0ZXM7CiB9CiAKQEAgLTUwNyw2ICs1MDksOCBAQCBmaGFuZGxlcl9waXBl X2ZpZm86OnJhd193cml0ZSAoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3QgbGVuKQogICAgIHNldF9l cnJubyAoRUlOVFIpOwogICBlbHNlIGlmIChzdGF0dXMgPT0gU1RBVFVTX1RIUkVBRF9DQU5DRUxF RCkKICAgICBwdGhyZWFkOjpzdGF0aWNfY2FuY2VsX3NlbGYgKCk7CisgIGlmIChzZWxlY3Rfc2Vt ICYmIG5ieXRlcykKKyAgICBSZWxlYXNlU2VtYXBob3JlIChzZWxlY3Rfc2VtLCBnZXRfb2JqX2hh bmRsZV9jb3VudCAoc2VsZWN0X3NlbSksIE5VTEwpOwogICByZXR1cm4gbmJ5dGVzID86IC0xOwog fQogCkBAIC01MTUsNiArNTE5LDggQEAgZmhhbmRsZXJfcGlwZTo6Zml4dXBfYWZ0ZXJfZm9yayAo SEFORExFIHBhcmVudCkKIHsKICAgaWYgKHJlYWRfbXR4KQogICAgIGZvcmtfZml4dXAgKHBhcmVu dCwgcmVhZF9tdHgsICJyZWFkX210eCIpOworICBpZiAoc2VsZWN0X3NlbSkKKyAgICBmb3JrX2Zp eHVwIChwYXJlbnQsIHNlbGVjdF9zZW0sICJzZWxlY3Rfc2VtIik7CiAgIGZoYW5kbGVyX2Jhc2U6 OmZpeHVwX2FmdGVyX2ZvcmsgKHBhcmVudCk7CiB9CiAKQEAgLTUzNiw2ICs1NDIsMTUgQEAgZmhh bmRsZXJfcGlwZTo6ZHVwIChmaGFuZGxlcl9iYXNlICpjaGlsZCwgaW50IGZsYWdzKQogICAgICAg ZnRwLT5jbG9zZSAoKTsKICAgICAgIHJlcyA9IC0xOwogICAgIH0KKyAgZWxzZSBpZiAoc2VsZWN0 X3NlbSAmJgorCSAgICFEdXBsaWNhdGVIYW5kbGUgKEdldEN1cnJlbnRQcm9jZXNzICgpLCBzZWxl Y3Rfc2VtLAorCQkJICAgIEdldEN1cnJlbnRQcm9jZXNzICgpLCAmZnRwLT5zZWxlY3Rfc2VtLAor CQkJICAgIDAsICEoZmxhZ3MgJiBPX0NMT0VYRUMpLCBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpKQor ICAgIHsKKyAgICAgIF9fc2V0ZXJybm8gKCk7CisgICAgICBmdHAtPmNsb3NlICgpOworICAgICAg cmVzID0gLTE7CisgICAgfQogCiAgIGRlYnVnX3ByaW50ZiAoInJlcyAlZCIsIHJlcyk7CiAgIHJl dHVybiByZXM7CkBAIC01NDYsNiArNTYxLDExIEBAIGZoYW5kbGVyX3BpcGU6OmNsb3NlICgpCiB7 CiAgIGlmIChyZWFkX210eCkKICAgICBDbG9zZUhhbmRsZSAocmVhZF9tdHgpOworICBpZiAoc2Vs ZWN0X3NlbSkKKyAgICB7CisgICAgICBSZWxlYXNlU2VtYXBob3JlIChzZWxlY3Rfc2VtLCBnZXRf b2JqX2hhbmRsZV9jb3VudCAoc2VsZWN0X3NlbSksIE5VTEwpOworICAgICAgQ2xvc2VIYW5kbGUg KHNlbGVjdF9zZW0pOworICAgIH0KICAgcmV0dXJuIGZoYW5kbGVyX2Jhc2U6OmNsb3NlICgpOwog fQogCkBAIC03NjUsNiArNzg1LDExIEBAIGZoYW5kbGVyX3BpcGU6OmNyZWF0ZSAoZmhhbmRsZXJf cGlwZSAqZmhzWzJdLCB1bnNpZ25lZCBwc2l6ZSwgaW50IG1vZGUpCiAJICBmaHNbMF0tPnNldF9y ZWFkX211dGV4IChtdHgpOwogCSAgcmVzID0gMDsKIAl9CisgICAgICBmaHNbMF0tPnNlbGVjdF9z ZW0gPSBDcmVhdGVTZW1hcGhvcmUgKCZzYSwgMCwgSU5UMzJfTUFYLCBOVUxMKTsKKyAgICAgIGlm IChmaHNbMF0tPnNlbGVjdF9zZW0pCisJRHVwbGljYXRlSGFuZGxlIChHZXRDdXJyZW50UHJvY2Vz cyAoKSwgZmhzWzBdLT5zZWxlY3Rfc2VtLAorCQkJIEdldEN1cnJlbnRQcm9jZXNzICgpLCAmZmhz WzFdLT5zZWxlY3Rfc2VtLAorCQkJIDAsIDEsIERVUExJQ0FURV9TQU1FX0FDQ0VTUyk7CiAgICAg fQogCiAgIGRlYnVnX3ByaW50ZiAoIiVSID0gcGlwZShbJXAsICVwXSwgJWQsICV5KSIsIHJlcywg ZmhzWzBdLCBmaHNbMV0sIHBzaXplLCBtb2RlKTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4v c2VsZWN0LmNjIGIvd2luc3VwL2N5Z3dpbi9zZWxlY3QuY2MKaW5kZXggNWUzMzhlNDNmLi5lOWU3 MWIyNjkgMTAwNjQ0Ci0tLSBhL3dpbnN1cC9jeWd3aW4vc2VsZWN0LmNjCisrKyBiL3dpbnN1cC9j eWd3aW4vc2VsZWN0LmNjCkBAIC03MjYsNyArNzI2LDYgQEAgdGhyZWFkX3BpcGUgKHZvaWQgKmFy ZykKICAgc2VsZWN0X3BpcGVfaW5mbyAqcGkgPSAoc2VsZWN0X3BpcGVfaW5mbyAqKSBhcmc7CiAg IERXT1JEIHNsZWVwX3RpbWUgPSAwOwogICBib29sIGxvb3BpbmcgPSB0cnVlOwotICBEV09SRCB0 MCA9IEdldFRpY2tDb3VudCAoKTsKIAogICB3aGlsZSAobG9vcGluZykKICAgICB7CkBAIC03NDYs MTIgKzc0NSw3IEBAIHRocmVhZF9waXBlICh2b2lkICphcmcpCiAJYnJlYWs7CiAgICAgICBjeWd3 YWl0IChwaS0+YnllLCBzbGVlcF90aW1lID4+IDMpOwogICAgICAgaWYgKHNsZWVwX3RpbWUgPCA4 MCkKLQl7Ci0JICBEV09SRCB0MSA9IEdldFRpY2tDb3VudCAoKTsKLQkgIGlmICh0MCAhPSB0MSkK LQkgICAgKytzbGVlcF90aW1lOwotCSAgdDAgPSB0MTsKLQl9CisJKytzbGVlcF90aW1lOwogICAg ICAgaWYgKHBpLT5zdG9wX3RocmVhZCkKIAlicmVhazsKICAgICB9CkBAIC03NjgsNyArNzYyLDEz IEBAIHN0YXJ0X3RocmVhZF9waXBlIChzZWxlY3RfcmVjb3JkICptZSwgc2VsZWN0X3N0dWZmICpz dHVmZikKICAgICB7CiAgICAgICBwaS0+c3RhcnQgPSAmc3R1ZmYtPnN0YXJ0OwogICAgICAgcGkt PnN0b3BfdGhyZWFkID0gZmFsc2U7Ci0gICAgICBwaS0+YnllID0gQ3JlYXRlRXZlbnQgKCZzZWNf bm9uZV9uaWgsIFRSVUUsIEZBTFNFLCBOVUxMKTsKKyAgICAgIHBpLT5ieWUgPSBtZS0+ZmgtPmdl dF9zZWxlY3Rfc2VtICgpOworICAgICAgaWYgKHBpLT5ieWUpCisJRHVwbGljYXRlSGFuZGxlIChH ZXRDdXJyZW50UHJvY2VzcyAoKSwgcGktPmJ5ZSwKKwkJCSBHZXRDdXJyZW50UHJvY2VzcyAoKSwg JnBpLT5ieWUsCisJCQkgMCwgMCwgRFVQTElDQVRFX1NBTUVfQUNDRVNTKTsKKyAgICAgIGVsc2UK KwlwaS0+YnllID0gQ3JlYXRlU2VtYXBob3JlICgmc2VjX25vbmVfbmloLCAwLCBJTlQzMl9NQVgs IE5VTEwpOwogICAgICAgcGktPnRocmVhZCA9IG5ldyBjeWd0aHJlYWQgKHRocmVhZF9waXBlLCBw aSwgInBpcGVzZWwiKTsKICAgICAgIG1lLT5oID0gKnBpLT50aHJlYWQ7CiAgICAgICBpZiAoIW1l LT5oKQpAQCAtNzg2LDcgKzc4Niw3IEBAIHBpcGVfY2xlYW51cCAoc2VsZWN0X3JlY29yZCAqLCBz ZWxlY3Rfc3R1ZmYgKnN0dWZmKQogICBpZiAocGktPnRocmVhZCkKICAgICB7CiAgICAgICBwaS0+ c3RvcF90aHJlYWQgPSB0cnVlOwotICAgICAgU2V0RXZlbnQgKHBpLT5ieWUpOworICAgICAgUmVs ZWFzZVNlbWFwaG9yZSAocGktPmJ5ZSwgZ2V0X29ial9oYW5kbGVfY291bnQgKHBpLT5ieWUpLCBO VUxMKTsKICAgICAgIHBpLT50aHJlYWQtPmRldGFjaCAoKTsKICAgICAgIENsb3NlSGFuZGxlIChw aS0+YnllKTsKICAgICB9CkBAIC05MjcsNyArOTI3LDYgQEAgdGhyZWFkX2ZpZm8gKHZvaWQgKmFy ZykKICAgc2VsZWN0X2ZpZm9faW5mbyAqcGkgPSAoc2VsZWN0X2ZpZm9faW5mbyAqKSBhcmc7CiAg IERXT1JEIHNsZWVwX3RpbWUgPSAwOwogICBib29sIGxvb3BpbmcgPSB0cnVlOwotICBEV09SRCB0 MCA9IEdldFRpY2tDb3VudCAoKTsKIAogICB3aGlsZSAobG9vcGluZykKICAgICB7CkBAIC05NDcs MTIgKzk0Niw3IEBAIHRocmVhZF9maWZvICh2b2lkICphcmcpCiAJYnJlYWs7CiAgICAgICBjeWd3 YWl0IChwaS0+YnllLCBzbGVlcF90aW1lID4+IDMpOwogICAgICAgaWYgKHNsZWVwX3RpbWUgPCA4 MCkKLQl7Ci0JICBEV09SRCB0MSA9IEdldFRpY2tDb3VudCAoKTsKLQkgIGlmICh0MCAhPSB0MSkK LQkgICAgKytzbGVlcF90aW1lOwotCSAgdDAgPSB0MTsKLQl9CisJKytzbGVlcF90aW1lOwogICAg ICAgaWYgKHBpLT5zdG9wX3RocmVhZCkKIAlicmVhazsKICAgICB9CkBAIC0xMTI4LDcgKzExMjIs NiBAQCB0aHJlYWRfY29uc29sZSAodm9pZCAqYXJnKQogICBzZWxlY3RfY29uc29sZV9pbmZvICpj aSA9IChzZWxlY3RfY29uc29sZV9pbmZvICopIGFyZzsKICAgRFdPUkQgc2xlZXBfdGltZSA9IDA7 CiAgIGJvb2wgbG9vcGluZyA9IHRydWU7Ci0gIERXT1JEIHQwID0gR2V0VGlja0NvdW50ICgpOwog CiAgIHdoaWxlIChsb29waW5nKQogICAgIHsKQEAgLTExNDgsMTIgKzExNDEsNyBAQCB0aHJlYWRf Y29uc29sZSAodm9pZCAqYXJnKQogCWJyZWFrOwogICAgICAgY3lnd2FpdCAoY2ktPmJ5ZSwgc2xl ZXBfdGltZSA+PiAzKTsKICAgICAgIGlmIChzbGVlcF90aW1lIDwgODApCi0JewotCSAgRFdPUkQg dDEgPSBHZXRUaWNrQ291bnQgKCk7Ci0JICBpZiAodDAgIT0gdDEpCi0JICAgICsrc2xlZXBfdGlt ZTsKLQkgIHQwID0gdDE7Ci0JfQorCSsrc2xlZXBfdGltZTsKICAgICAgIGlmIChjaS0+c3RvcF90 aHJlYWQpCiAJYnJlYWs7CiAgICAgfQpAQCAtMTM3Myw3ICsxMzYxLDYgQEAgdGhyZWFkX3B0eV9z bGF2ZSAodm9pZCAqYXJnKQogICBzZWxlY3RfcGlwZV9pbmZvICpwaSA9IChzZWxlY3RfcGlwZV9p bmZvICopIGFyZzsKICAgRFdPUkQgc2xlZXBfdGltZSA9IDA7CiAgIGJvb2wgbG9vcGluZyA9IHRy dWU7Ci0gIERXT1JEIHQwID0gR2V0VGlja0NvdW50ICgpOwogCiAgIHdoaWxlIChsb29waW5nKQog ICAgIHsKQEAgLTEzOTMsMTIgKzEzODAsNyBAQCB0aHJlYWRfcHR5X3NsYXZlICh2b2lkICphcmcp CiAJYnJlYWs7CiAgICAgICBjeWd3YWl0IChwaS0+YnllLCBzbGVlcF90aW1lID4+IDMpOwogICAg ICAgaWYgKHNsZWVwX3RpbWUgPCA4MCkKLQl7Ci0JICBEV09SRCB0MSA9IEdldFRpY2tDb3VudCAo KTsKLQkgIGlmICh0MCAhPSB0MSkKLQkgICAgKytzbGVlcF90aW1lOwotCSAgdDAgPSB0MTsKLQl9 CisJKytzbGVlcF90aW1lOwogICAgICAgaWYgKHBpLT5zdG9wX3RocmVhZCkKIAlicmVhazsKICAg ICB9Ci0tIAoyLjMzLjAKCg== --Multipart=_Wed__8_Sep_2021_18_01_42_+0900_cahK7Z06iAHoDmBn--