Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l6vId-0002hy-K2 for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Feb 2021 13:00:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l6vIc-0001r4-EA for pgsql-hackers@arkaria.postgresql.org; Tue, 02 Feb 2021 13:00:54 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l6vIb-0001qx-Uz for pgsql-hackers@lists.postgresql.org; Tue, 02 Feb 2021 13:00:54 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l6vIY-0007Sb-Q9 for pgsql-hackers@postgresql.org; Tue, 02 Feb 2021 13:00:53 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id 28319625FA; Tue, 2 Feb 2021 22:00:47 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.102.3 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_bc6b336a8f575040ed83abf5dfab240a" Date: Tue, 02 Feb 2021 22:00:47 +0900 From: torikoshia To: Fujii Masao Cc: Ian Lawrence Barwick , Robert Haas , Justin Pryzby , pgsql-hackers Subject: Re: adding wait_start column to pg_locks In-Reply-To: <88c451c7-2729-4329-fbae-6ed7664adea1@oss.nttdata.com> References: <20210101214930.GH25152@telsasoft.com> <9e958478d8bcea814e7ce16511a18912@oss.nttdata.com> <23d39ee9c31643fad8f9ba9c5cf3aaf4@oss.nttdata.com> <0fd375a53e306566cea7f451cc8cfcde@oss.nttdata.com> <7b1bb07a-73ec-1fcc-2f65-41101adf0080@oss.nttdata.com> <8002219d-b999-12fa-2327-49afe40e5fbb@oss.nttdata.com> <88c451c7-2729-4329-fbae-6ed7664adea1@oss.nttdata.com> Message-ID: X-Sender: torikoshia@oss.nttdata.com User-Agent: Roundcube Webmail/1.1.9 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_bc6b336a8f575040ed83abf5dfab240a Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2021-01-25 23:44, Fujii Masao wrote: > Another comment is; Doesn't the change of MyProc->waitStart need the > lock table's partition lock? If yes, we can do that by moving > LWLockRelease(partitionLock) just after the change of > MyProc->waitStart, but which causes the time that lwlock is being held > to be long. So maybe we need another way to do that. Thanks for your comments! It would be ideal for the consistency of the view to record "waitstart" during holding the table partition lock. However, as you pointed out, it would give non-negligible performance impacts. I may miss something, but as far as I can see, the influence of not holding the lock is that "waitstart" can be NULL even though "granted" is false. I think people want to know the start time of the lock when locks are held for a long time. In that case, "waitstart" should have already been recorded. If this is true, I think the current implementation may be enough on the condition that users understand it can happen that "waitStart" is NULL and "granted" is false. Attached a patch describing this in the doc and comments. Any Thoughts? Regards, -- Atsushi Torikoshi --=_bc6b336a8f575040ed83abf5dfab240a Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v6-0001-To-examine-the-duration-of-locks-we-did-join-on-p.patch Content-Disposition: attachment; filename=v6-0001-To-examine-the-duration-of-locks-we-did-join-on-p.patch; size=11705 RnJvbSAwM2M2ZTFlZDZmZmEyMTVlZTg5OGI1YTZhNzVkNzcyNzdmYjhlNjcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFR1ZSwgMiBGZWIgMjAyMSAyMTozMjozNiArMDkwMApTdWJqZWN0OiBb UEFUQ0ggdjZdIFRvIGV4YW1pbmUgdGhlIGR1cmF0aW9uIG9mIGxvY2tzLCB3ZSBkaWQgam9pbiBv biBwZ19sb2NrcwogYW5kIHBnX3N0YXRfYWN0aXZpdHkgYW5kIHVzZWQgY29sdW1ucyBzdWNoIGFz IHF1ZXJ5X3N0YXJ0IG9yIHN0YXRlX2NoYW5nZS4KIEhvd2V2ZXIsIHNpbmNlIHRoZXkgYXJlIHRo ZSBtb21lbnQgd2hlbiBxdWVyaWVzIGhhdmUgc3RhcnRlZCBvciB0aGVpciBzdGF0ZQogaGFzIGNo YW5nZWQsIHdlIGNvdWxkIG5vdCBnZXQgdGhlIGxvY2sgZHVyYXRpb24gaW4gdGhpcyB3YXkuIFRo aXMgcGF0Y2ggYWRkcwogYSBuZXcgZmllbGQgIndhaXRzdGFydCIgcHJlc2VydmluZyBsb2NrIGFj cXVpc2l0aW9uIHdhaXQgc3RhcnQgdGltZS4KCk5vdGUgdGhhdCB1cGRhdGluZyB0aGlzIGZpZWxk IGFuZCBsb2NrIGFjcXVpc2l0aW9uIGFyZSBub3QgcGVyZm9ybWVkCnN5bmNocm9ub3VzbHkgZm9y IHBlcmZvcm1hbmNlIHJlYXNvbnMuICBUaGVyZWZvcmUsIGRlcGVuZGluZyBvbiB0aGUKdGltaW5n LCBpdCBjYW4gaGFwcGVuIHRoYXQgd2FpdHN0YXJ0IGlzIE5VTEwgZXZlbiB0aG91Z2ggZ3JhbnRl ZCBpcwpmYWxzZS4KCkF1dGhvcjogQXRzdXNoaSBUb3Jpa29zaGkKUmV2aWV3ZWQtYnk6IElhbiBM YXdyZW5jZSBCYXJ3aWNrLCBSb2JlcnQgSGFhcywgRnVqaWkgTWFzYW8KRGlzY3Vzc2lvbjogaHR0 cHM6Ly9wb3N0Z3IuZXMvbS9hOTYwMTNkYzUxY2RjNTZiMmEyYjg0ZmE4YTE2YTk5M0Bvc3MubnR0 ZGF0YS5jb20KLS0tCiBjb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0IHwg IDQgKystLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICB8IDE0ICsr KysrKysrKysrKysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMgICAgICAgIHwg MTYgKysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyAgICAg ICAgICB8ICA4ICsrKysrKysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jICAgICAg ICAgIHwgMTAgKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xvY2tmdW5jcy5jICAg ICAgICB8ICA5ICsrKysrKysrLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAg ICAgICB8ICA2ICsrKy0tLQogc3JjL2luY2x1ZGUvc3RvcmFnZS9sb2NrLmggICAgICAgICAgICAg ICB8ICAyICsrCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2MuaCAgICAgICAgICAgICAgIHwgIDEg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICB8ICA1ICsrKy0tCiAx MCBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUub3V0IGIvY29udHJp Yi9hbWNoZWNrL2V4cGVjdGVkL2NoZWNrX2J0cmVlLm91dAppbmRleCAxMzg0OGI3NDQ5Li41YTNm MWVmNzM3IDEwMDY0NAotLS0gYS9jb250cmliL2FtY2hlY2svZXhwZWN0ZWQvY2hlY2tfYnRyZWUu b3V0CisrKyBiL2NvbnRyaWIvYW1jaGVjay9leHBlY3RlZC9jaGVja19idHJlZS5vdXQKQEAgLTk3 LDggKzk3LDggQEAgU0VMRUNUIGJ0X2luZGV4X3BhcmVudF9jaGVjaygnYnR0ZXN0X2JfaWR4Jyk7 CiBTRUxFQ1QgKiBGUk9NIHBnX2xvY2tzCiBXSEVSRSByZWxhdGlvbiA9IEFOWShBUlJBWVsnYnR0 ZXN0X2EnLCAnYnR0ZXN0X2FfaWR4JywgJ2J0dGVzdF9iJywgJ2J0dGVzdF9iX2lkeCddOjpyZWdj bGFzc1tdKQogICAgIEFORCBwaWQgPSBwZ19iYWNrZW5kX3BpZCgpOwotIGxvY2t0eXBlIHwgZGF0 YWJhc2UgfCByZWxhdGlvbiB8IHBhZ2UgfCB0dXBsZSB8IHZpcnR1YWx4aWQgfCB0cmFuc2FjdGlv bmlkIHwgY2xhc3NpZCB8IG9iamlkIHwgb2Jqc3ViaWQgfCB2aXJ0dWFsdHJhbnNhY3Rpb24gfCBw aWQgfCBtb2RlIHwgZ3JhbnRlZCB8IGZhc3RwYXRoIAotLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLQorIGxvY2t0eXBlIHwgZGF0YWJhc2UgfCByZWxhdGlvbiB8 IHBhZ2UgfCB0dXBsZSB8IHZpcnR1YWx4aWQgfCB0cmFuc2FjdGlvbmlkIHwgY2xhc3NpZCB8IG9i amlkIHwgb2Jqc3ViaWQgfCB2aXJ0dWFsdHJhbnNhY3Rpb24gfCBwaWQgfCBtb2RlIHwgZ3JhbnRl ZCB8IGZhc3RwYXRoIHwgd2FpdHN0YXJ0IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQogKDAgcm93cykKIAogQ09NTUlUOwpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA4NjVlODI2ZmIwLi5kODFkNmUxYzUyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMTA1 OTIsNiArMTA1OTIsMjAgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICBsb2NrIHRh YmxlCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPndhaXRzdGFydDwvc3RydWN0ZmllbGQ+ IDx0eXBlPnRpbWVzdGFtcHR6PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgTG9jayBhY3F1aXNpdGlvbiB3YWl0IHN0YXJ0IHRpbWUuCisgICAgICAgTm90ZSB0aGF0 IHVwZGF0aW5nIHRoaXMgZmllbGQgYW5kIGxvY2sgYWNxdWlzaXRpb24gYXJlIG5vdCBwZXJmb3Jt ZWQKKyAgICAgICBzeW5jaHJvbm91c2x5IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLiAgVGhlcmVm b3JlLCBkZXBlbmRpbmcgb24gdGhlCisgICAgICAgdGltaW5nLCBpdCBjYW4gaGFwcGVuIHRoYXQg PHN0cnVjdGZpZWxkPndhaXRzdGFydDwvc3RydWN0ZmllbGQ+IGlzCisgICAgICAgPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4gZXZlbiB0aG91Z2gKKyAgICAgICA8c3RydWN0ZmllbGQ+Z3JhbnRlZDwv c3RydWN0ZmllbGQ+IGlzIGZhbHNlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBj L3N0YW5kYnkuYwppbmRleCAzOWEzMGMwMGY3Li4yMjgyMjI5NTY4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvc3RhbmRieS5jCkBAIC01MzksMTMgKzUzOSwyNSBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGlj dFdpdGhEYXRhYmFzZShPaWQgZGJpZCkKIHZvaWQKIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aExvY2soTE9DS1RBRyBsb2NrdGFnLCBib29sIGxvZ2dpbmdfY29uZmxpY3QpCiB7Ci0JVGltZXN0 YW1wVHogbHRpbWU7CisJVGltZXN0YW1wVHogbHRpbWUsIG5vdzsKIAogCUFzc2VydChJbkhvdFN0 YW5kYnkpOwogCiAJbHRpbWUgPSBHZXRTdGFuZGJ5TGltaXRUaW1lKCk7CisJbm93ID0gR2V0Q3Vy cmVudFRpbWVzdGFtcCgpOwogCi0JaWYgKEdldEN1cnJlbnRUaW1lc3RhbXAoKSA+PSBsdGltZSAm JiBsdGltZSAhPSAwKQorCS8qCisJICogUmVjb3JkIHdhaXRTdGFydCB1c2luZyB0aGUgY3VycmVu dCB0aW1lIG9idGFpbmVkIGZvciBjb21wYXJpc29uCisJICogd2l0aCBsdGltZS4KKwkgKgorCSAq IEl0IHdvdWxkIGJlIGlkZWFsIHRoaXMgY2FuIGJlIHN5bmNocm9ub3VzbHkgZG9uZSB3aXRoIHVw ZGF0aW5nCisJICogbG9jayBpbmZvcm1hdGlvbi4gSG93ZXJ2ZXIsIHNpbmNlIGl0IGdpdmVzIHBl cmZvcm1hbmNlIGltcGFjdHMKKwkgKiB0byBob2xkIHBhcnRpdGlvbkxvY2sgbG9uZ2VyIHRpbWUs IHdlIGRvIGl0IGhlcmUgYXN5bmNocm9ub3VzbHkuCisJICovCisJaWYgKE15UHJvYy0+d2FpdFN0 YXJ0ID09IDApCisJCU15UHJvYy0+d2FpdFN0YXJ0ID0gbm93OworCisJaWYgKG5vdyA+PSBsdGlt ZSAmJiBsdGltZSAhPSAwKQogCXsKIAkJLyoKIAkJICogV2UncmUgYWxyZWFkeSBiZWhpbmQsIHNv IGNsZWFyIGEgcGF0aCBhcyBxdWlja2x5IGFzIHBvc3NpYmxlLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2Nr LmMKaW5kZXggNzljMWNmOWI4Yi4uMjk1YzMyMjBlMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv c3RvcmFnZS9sbWdyL2xvY2suYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5j CkBAIC0zNjE5LDYgKzM2MTksMTIgQEAgR2V0TG9ja1N0YXR1c0RhdGEodm9pZCkKIAkJCWluc3Rh bmNlLT5sZWFkZXJQaWQgPSBwcm9jLT5waWQ7CiAJCQlpbnN0YW5jZS0+ZmFzdHBhdGggPSB0cnVl OwogCisJCQkvKgorCQkJICogU3VjY2Vzc2Z1bGx5IHRha2luZyBmYXN0IHBhdGggbG9jayBtZWFu cyB0aGVyZSB3ZXJlIG5vCisJCQkgKiBjb25mbGljdGluZyBsb2Nrcy4KKwkJCSAqLworCQkJaW5z dGFuY2UtPndhaXRTdGFydCA9IDA7CisKIAkJCWVsKys7CiAJCX0KIApAQCAtMzY0Niw2ICszNjUy LDcgQEAgR2V0TG9ja1N0YXR1c0RhdGEodm9pZCkKIAkJCWluc3RhbmNlLT5waWQgPSBwcm9jLT5w aWQ7CiAJCQlpbnN0YW5jZS0+bGVhZGVyUGlkID0gcHJvYy0+cGlkOwogCQkJaW5zdGFuY2UtPmZh c3RwYXRoID0gdHJ1ZTsKKwkJCWluc3RhbmNlLT53YWl0U3RhcnQgPSAwOwogCiAJCQllbCsrOwog CQl9CkBAIC0zNjk4LDYgKzM3MDUsNyBAQCBHZXRMb2NrU3RhdHVzRGF0YSh2b2lkKQogCQlpbnN0 YW5jZS0+cGlkID0gcHJvYy0+cGlkOwogCQlpbnN0YW5jZS0+bGVhZGVyUGlkID0gcHJvY2xvY2st Pmdyb3VwTGVhZGVyLT5waWQ7CiAJCWluc3RhbmNlLT5mYXN0cGF0aCA9IGZhbHNlOworCQlpbnN0 YW5jZS0+d2FpdFN0YXJ0ID0gcHJvYy0+d2FpdFN0YXJ0OwogCiAJCWVsKys7CiAJfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvbG1nci9wcm9jLmMKaW5kZXggYzg3ZmZjNjU0OS4uODQ0MDFlODQzMCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL3Byb2MuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2xtZ3IvcHJvYy5jCkBAIC00MDIsNiArNDAyLDcgQEAgSW5pdFByb2Nlc3Modm9pZCkKIAlNeVBy b2MtPmx3V2FpdE1vZGUgPSAwOwogCU15UHJvYy0+d2FpdExvY2sgPSBOVUxMOwogCU15UHJvYy0+ d2FpdFByb2NMb2NrID0gTlVMTDsKKwlNeVByb2MtPndhaXRTdGFydCA9IDA7CiAjaWZkZWYgVVNF X0FTU0VSVF9DSEVDS0lORwogCXsKIAkJaW50CQkJaTsKQEAgLTEyNjIsNiArMTI2MywxNCBAQCBQ cm9jU2xlZXAoTE9DQUxMT0NLICpsb2NhbGxvY2ssIExvY2tNZXRob2QgbG9ja01ldGhvZFRhYmxl KQogCQl9CiAJCWVsc2UKIAkJCWVuYWJsZV90aW1lb3V0X2FmdGVyKERFQURMT0NLX1RJTUVPVVQs IERlYWRsb2NrVGltZW91dCk7CisJCS8qCisJCSAqIFJlY29yZCB3YWl0U3RhcnQgcmV1c2luZyB0 aGUgZGVhZGxvY2sgdGltZW91dCB0aW1lci4KKwkJICoKKwkJICogSXQgd291bGQgYmUgaWRlYWwg dGhpcyBjYW4gYmUgc3luY2hyb25vdXNseSBkb25lIHdpdGggdXBkYXRpbmcKKwkJICogbG9jayBp bmZvcm1hdGlvbi4gSG93ZXJ2ZXIsIHNpbmNlIGl0IGdpdmVzIHBlcmZvcm1hbmNlIGltcGFjdHMK KwkJICogdG8gaG9sZCBwYXJ0aXRpb25Mb2NrIGxvbmdlciB0aW1lLCB3ZSBkbyBpdCBoZXJlIGFz eW5jaHJvbm91c2x5LgorCQkgKi8KKwkJTXlQcm9jLT53YWl0U3RhcnQgPSBnZXRfdGltZW91dF9z dGFydF90aW1lKERFQURMT0NLX1RJTUVPVVQpOwogCX0KIAllbHNlIGlmIChsb2dfcmVjb3Zlcnlf Y29uZmxpY3Rfd2FpdHMpCiAJewpAQCAtMTY3OCw2ICsxNjg3LDcgQEAgUHJvY1dha2V1cChQR1BS T0MgKnByb2MsIFByb2NXYWl0U3RhdHVzIHdhaXRTdGF0dXMpCiAJcHJvYy0+d2FpdExvY2sgPSBO VUxMOwogCXByb2MtPndhaXRQcm9jTG9jayA9IE5VTEw7CiAJcHJvYy0+d2FpdFN0YXR1cyA9IHdh aXRTdGF0dXM7CisJcHJvYy0+d2FpdFN0YXJ0ID0gMDsKIAogCS8qIEFuZCBhd2FrZW4gaXQgKi8K IAlTZXRMYXRjaCgmcHJvYy0+cHJvY0xhdGNoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9sb2NrZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9sb2NrZnVuY3MuYwpp bmRleCBiMWNmNWI3OWE3Li45N2YwMjY1YzEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvbG9ja2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2xvY2tmdW5jcy5j CkBAIC02Myw3ICs2Myw3IEBAIHR5cGVkZWYgc3RydWN0CiB9IFBHX0xvY2tfU3RhdHVzOwogCiAv KiBOdW1iZXIgb2YgY29sdW1ucyBpbiBwZ19sb2NrcyBvdXRwdXQgKi8KLSNkZWZpbmUgTlVNX0xP Q0tfU1RBVFVTX0NPTFVNTlMJCTE1CisjZGVmaW5lIE5VTV9MT0NLX1NUQVRVU19DT0xVTU5TCQkx NgogCiAvKgogICogVlhJREdldERhdHVtIC0gQ29uc3RydWN0IGEgdGV4dCByZXByZXNlbnRhdGlv biBvZiBhIFZYSUQKQEAgLTE0Miw2ICsxNDIsOCBAQCBwZ19sb2NrX3N0YXR1cyhQR19GVU5DVElP Tl9BUkdTKQogCQkJCQkJICAgQk9PTE9JRCwgLTEsIDApOwogCQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpIDE1LCAiZmFzdHBhdGgiLAogCQkJCQkJICAgQk9PTE9JRCwg LTEsIDApOworCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDE2LCAi d2FpdHN0YXJ0IiwKKwkJCQkJCSAgIFRJTUVTVEFNUFRaT0lELCAtMSwgMCk7CiAKIAkJZnVuY2N0 eC0+dHVwbGVfZGVzYyA9IEJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOwogCkBAIC0zMzYsNiArMzM4 LDEwIEBAIHBnX2xvY2tfc3RhdHVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXZhbHVlc1sxMl0gPSBD U3RyaW5nR2V0VGV4dERhdHVtKEdldExvY2ttb2RlTmFtZShpbnN0YW5jZS0+bG9ja3RhZy5sb2Nr dGFnX2xvY2ttZXRob2RpZCwgbW9kZSkpOwogCQl2YWx1ZXNbMTNdID0gQm9vbEdldERhdHVtKGdy YW50ZWQpOwogCQl2YWx1ZXNbMTRdID0gQm9vbEdldERhdHVtKGluc3RhbmNlLT5mYXN0cGF0aCk7 CisJCWlmICghZ3JhbnRlZCAmJiBpbnN0YW5jZS0+d2FpdFN0YXJ0ICE9IDApCisJCQl2YWx1ZXNb MTVdID0gVGltZXN0YW1wVHpHZXREYXR1bShpbnN0YW5jZS0+d2FpdFN0YXJ0KTsKKwkJZWxzZQor CQkJbnVsbHNbMTVdID0gdHJ1ZTsKIAogCQl0dXBsZSA9IGhlYXBfZm9ybV90dXBsZShmdW5jY3R4 LT50dXBsZV9kZXNjLCB2YWx1ZXMsIG51bGxzKTsKIAkJcmVzdWx0ID0gSGVhcFR1cGxlR2V0RGF0 dW0odHVwbGUpOwpAQCAtNDA2LDYgKzQxMiw3IEBAIHBnX2xvY2tfc3RhdHVzKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXZhbHVlc1sxMl0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKCJTSVJlYWRMb2NrIik7 CiAJCXZhbHVlc1sxM10gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CiAJCXZhbHVlc1sxNF0gPSBCb29s R2V0RGF0dW0oZmFsc2UpOworCQludWxsc1sxNV0gPSB0cnVlOwogCiAJCXR1cGxlID0gaGVhcF9m b3JtX3R1cGxlKGZ1bmNjdHgtPnR1cGxlX2Rlc2MsIHZhbHVlcywgbnVsbHMpOwogCQlyZXN1bHQg PSBIZWFwVHVwbGVHZXREYXR1bSh0dXBsZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCBm ODE3NDA2MWVmLi5hMWE5OWM5ZWY0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU5ODYs OSArNTk4Niw5IEBACiB7IG9pZCA9PiAnMTM3MScsIGRlc2NyID0+ICd2aWV3IHN5c3RlbSBsb2Nr IGluZm9ybWF0aW9uJywKICAgcHJvbmFtZSA9PiAncGdfbG9ja19zdGF0dXMnLCBwcm9yb3dzID0+ ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKICAgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0 eXBlID0+ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9PiAnJywKLSAgcHJvYWxsYXJndHlwZXMgPT4g J3t0ZXh0LG9pZCxvaWQsaW50NCxpbnQyLHRleHQseGlkLG9pZCxvaWQsaW50Mix0ZXh0LGludDQs dGV4dCxib29sLGJvb2x9JywKLSAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sb30nLAotICBwcm9hcmduYW1lcyA9PiAne2xvY2t0eXBlLGRhdGFiYXNlLHJlbGF0 aW9uLHBhZ2UsdHVwbGUsdmlydHVhbHhpZCx0cmFuc2FjdGlvbmlkLGNsYXNzaWQsb2JqaWQsb2Jq c3ViaWQsdmlydHVhbHRyYW5zYWN0aW9uLHBpZCxtb2RlLGdyYW50ZWQsZmFzdHBhdGh9JywKKyAg cHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LG9pZCxvaWQsaW50NCxpbnQyLHRleHQseGlkLG9pZCxv aWQsaW50Mix0ZXh0LGludDQsdGV4dCxib29sLGJvb2wsdGltZXN0YW1wdHp9JywKKyAgcHJvYXJn bW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHByb2FyZ25h bWVzID0+ICd7bG9ja3R5cGUsZGF0YWJhc2UscmVsYXRpb24scGFnZSx0dXBsZSx2aXJ0dWFseGlk LHRyYW5zYWN0aW9uaWQsY2xhc3NpZCxvYmppZCxvYmpzdWJpZCx2aXJ0dWFsdHJhbnNhY3Rpb24s cGlkLG1vZGUsZ3JhbnRlZCxmYXN0cGF0aCx3YWl0c3RhcnR9JywKICAgcHJvc3JjID0+ICdwZ19s b2NrX3N0YXR1cycgfSwKIHsgb2lkID0+ICcyNTYxJywKICAgZGVzY3IgPT4gJ2dldCBhcnJheSBv ZiBQSURzIG9mIHNlc3Npb25zIGJsb2NraW5nIHNwZWNpZmllZCBiYWNrZW5kIFBJRCBmcm9tIGFj cXVpcmluZyBhIGhlYXZ5d2VpZ2h0IGxvY2snLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3Rv cmFnZS9sb2NrLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL2xvY2suaAppbmRleCA2OGEzNDg3ZDQ5 Li44NDY0ODdmOTRiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL2xvY2suaAorKysg Yi9zcmMvaW5jbHVkZS9zdG9yYWdlL2xvY2suaApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUg InN0b3JhZ2UvbG9ja2RlZnMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2x3bG9jay5oIgogI2luY2x1 ZGUgInN0b3JhZ2Uvc2htZW0uaCIKKyNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKIAogLyog c3RydWN0IFBHUFJPQyBpcyBkZWNsYXJlZCBpbiBwcm9jLmgsIGJ1dCBtdXN0IGZvcndhcmQtcmVm ZXJlbmNlIGl0ICovCiB0eXBlZGVmIHN0cnVjdCBQR1BST0MgUEdQUk9DOwpAQCAtNDQ2LDYgKzQ0 Nyw3IEBAIHR5cGVkZWYgc3RydWN0IExvY2tJbnN0YW5jZURhdGEKIAlMT0NLTU9ERQl3YWl0TG9j a01vZGU7CS8qIGxvY2sgYXdhaXRlZCBieSB0aGlzIFBHUFJPQywgaWYgYW55ICovCiAJQmFja2Vu ZElkCWJhY2tlbmQ7CQkvKiBiYWNrZW5kIElEIG9mIHRoaXMgUEdQUk9DICovCiAJTG9jYWxUcmFu c2FjdGlvbklkIGx4aWQ7CS8qIGxvY2FsIHRyYW5zYWN0aW9uIElEIG9mIHRoaXMgUEdQUk9DICov CisJVGltZXN0YW1wVHoJd2FpdFN0YXJ0OwkJLyogdGltZSBhdCB3aGljaCB0aGlzIFBHUFJPQyBz dGFydGVkIHdhaXRpbmcgZm9yIGxvY2sgKi8KIAlpbnQJCQlwaWQ7CQkJLyogcGlkIG9mIHRoaXMg UEdQUk9DICovCiAJaW50CQkJbGVhZGVyUGlkOwkJLyogcGlkIG9mIGdyb3VwIGxlYWRlcjsgPSBw aWQgaWYgbm8gZ3JvdXAgKi8KIAlib29sCQlmYXN0cGF0aDsJCS8qIHRha2VuIHZpYSBmYXN0cGF0 aD8gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvYy5oIGIvc3JjL2luY2x1 ZGUvc3RvcmFnZS9wcm9jLmgKaW5kZXggNjgzYWI2NGY3Ni4uODNiNWVjM2JhYiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jLmgKKysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9w cm9jLmgKQEAgLTE4MSw2ICsxODEsNyBAQCBzdHJ1Y3QgUEdQUk9DCiAJTE9DS01PREUJd2FpdExv Y2tNb2RlOwkvKiB0eXBlIG9mIGxvY2sgd2UncmUgd2FpdGluZyBmb3IgKi8KIAlMT0NLTUFTSwlo ZWxkTG9ja3M7CQkvKiBiaXRtYXNrIGZvciBsb2NrIHR5cGVzIGFscmVhZHkgaGVsZCBvbiB0aGlz CiAJCQkJCQkJCSAqIGxvY2sgb2JqZWN0IGJ5IHRoaXMgYmFja2VuZCAqLworCVRpbWVzdGFtcFR6 CXdhaXRTdGFydDsJCS8qIHRpbWUgYXQgd2hpY2ggd2FpdCBmb3IgbG9jayBhY3F1aXNpdGlvbiBz dGFydGVkICovCiAKIAlib29sCQlkZWxheUNoa3B0OwkJLyogdHJ1ZSBpZiB0aGlzIHByb2MgZGVs YXlzIGNoZWNrcG9pbnQgc3RhcnQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApp bmRleCA2MTczNDczZGU5Li41Yjg2YzdkNWYyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVz Lm91dApAQCAtMTM5NCw4ICsxMzk0LDkgQEAgcGdfbG9ja3N8IFNFTEVDVCBsLmxvY2t0eXBlLAog ICAgIGwucGlkLAogICAgIGwubW9kZSwKICAgICBsLmdyYW50ZWQsCi0gICAgbC5mYXN0cGF0aAot ICAgRlJPTSBwZ19sb2NrX3N0YXR1cygpIGwobG9ja3R5cGUsIGRhdGFiYXNlLCByZWxhdGlvbiwg cGFnZSwgdHVwbGUsIHZpcnR1YWx4aWQsIHRyYW5zYWN0aW9uaWQsIGNsYXNzaWQsIG9iamlkLCBv YmpzdWJpZCwgdmlydHVhbHRyYW5zYWN0aW9uLCBwaWQsIG1vZGUsIGdyYW50ZWQsIGZhc3RwYXRo KTsKKyAgICBsLmZhc3RwYXRoLAorICAgIGwud2FpdHN0YXJ0CisgICBGUk9NIHBnX2xvY2tfc3Rh dHVzKCkgbChsb2NrdHlwZSwgZGF0YWJhc2UsIHJlbGF0aW9uLCBwYWdlLCB0dXBsZSwgdmlydHVh bHhpZCwgdHJhbnNhY3Rpb25pZCwgY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkLCB2aXJ0dWFsdHJh bnNhY3Rpb24sIHBpZCwgbW9kZSwgZ3JhbnRlZCwgZmFzdHBhdGgsIHdhaXRzdGFydCk7CiBwZ19t YXR2aWV3c3wgU0VMRUNUIG4ubnNwbmFtZSBBUyBzY2hlbWFuYW1lLAogICAgIGMucmVsbmFtZSBB UyBtYXR2aWV3bmFtZSwKICAgICBwZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMgbWF0dmll d293bmVyLAotLSAKMi4xOC4xCgo= --=_bc6b336a8f575040ed83abf5dfab240a--