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 1jsHYX-00036k-9O for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Jul 2020 03:12:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jsHYW-00059r-3W for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Jul 2020 03:12:32 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jsHYV-00059k-QC for pgsql-hackers@lists.postgresql.org; Mon, 06 Jul 2020 03:12:31 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jsHYN-0001IU-Ft for pgsql-hackers@postgresql.org; Mon, 06 Jul 2020 03:12:31 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTP id 1609E6055F; Mon, 6 Jul 2020 12:12:18 +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="=_74f8b203694752ae841d498370d8e6ba" Date: Mon, 06 Jul 2020 12:12:18 +0900 From: torikoshia To: Fujii Masao Cc: pgsql-hackers@postgresql.org Subject: Re: Creating a function for exposing memory usage of backend process In-Reply-To: References: <72a656e0f71d0860161e0b3f67e4d771@oss.nttdata.com> <398eb7cd-5f75-be1c-3897-36865b7bfabf@oss.nttdata.com> <3193c7d590f3212e543b63df977da758@oss.nttdata.com> <78268b5f-53ed-4645-1abb-23c1030cce0a@oss.nttdata.com> <6c828f3a1d44dba81999fc7990b8f1c5@oss.nttdata.com> <062bab2db5645812fae12e3a965de463@oss.nttdata.com> <5cbed0cc-79fc-3b98-120a-20e07848d10a@oss.nttdata.com> <805313b5f7dc2e6c19b209ff930a7a61@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 --=_74f8b203694752ae841d498370d8e6ba Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8; format=flowed On Fri, Jul 3, 2020 at 7:33 PM Fujii Masao wrote: Thanks for your review! > I like more specific name like pg_backend_memory_contexts. Agreed. When I was trying to add this function as statistics function, I thought that naming pg_stat_getbackend_memory_context() might make people regarded it as a "per-backend statistics function", whose parameter is backend ID number. So I removed "backend", but now there is no necessity to do so. > But I'd like to hear more opinions about the name from others. I changed the name to pg_backend_memory_contexts for the time being. >> - function name: pg_get_memory_contexts() >> - source file: mainly src/backend/utils/mmgr/mcxt.c >> +       Identification information of the memory context. This field >> is truncated if the identification field is longer than 1024 >> characters > > "characters" should be "bytes"? Fixed, but I used "characters" while referring to the descriptions on the manual of pg_stat_activity.query below. | By default the query text is truncated at 1024 characters; It has nothing to do with this thread, but considering multibyte characters, it also may be better to change it to "bytes". Regarding the other comments, I revised the patch as you pointed. Regards, -- Atsushi Torikoshi NTT DATA CORPORATION --=_74f8b203694752ae841d498370d8e6ba Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0004-Adding-a-function-exposing-memory-usage-of-local-backend.patch Content-Disposition: attachment; filename*0*=UTF-8''0004-Adding-a-function-exposing-memory-usage-of-local-; filename*1*=backend.patch; size=12835 RnJvbSAwNTVhZjkwM2EzZGJmMTQ2ZDk3ZGQzZmIwMWE2YTdkM2QzYmQyYWUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IE1vbiwgNiBKdWwgMjAyMCAxMDo1MDo0OSArMDkwMApTdWJqZWN0OiBb UEFUQ0hdIEFkZCBhIGZ1bmN0aW9uIGV4cG9zaW5nIG1lbW9yeSB1c2FnZSBvZiBsb2NhbCBiYWNr ZW5kLgoKUHJldmlvdXNseSwgdGhlIG9ubHkgd2F5IHRvIGV4YW1pbmUgdGhlIHVzYWdlIG9mIGJh Y2tlbmQgcHJvY2Vzc2VzCndhcyBhdHRhY2hpbmcgYSBkZWJ1Z2dlciBhbmQgY2FsbCBNZW1vcnlD b250ZXh0U3RhdHMoKSBhbmQgaXQgd2FzCm5vdCBzbyBjb252ZW5pZW50IGluIHNvbWUgY2FzZXMu CgpUaGlzIHBhdGNoIGltcGxlbWVudHMgYSBuZXcgU1FMLWNhbGxhYmxlIGZ1bmN0aW9uCnBnX2dl dF9iYWNrZW5kX21lbW9yeV9jb250ZXh0cyB3aGljaCBleHBvc2VzIG1lbW9yeSB1c2FnZSBvZiB0 aGUKbG9jYWwgYmFja2VuZC4KSXQgYWxzbyBhZGRzIGEgbmV3IHZpZXcgcGdfYmFja2VuZF9tZW1v cnlfY29udGV4dHMgZm9yIGV4cG9zaW5nCmxvY2FsIGJhY2tlbmQgbWVtb3J5IGNvbnRleHRzLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICB8IDEyNiArKysrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgfCAg IDMgKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9tY3h0LmMgICAgICAgIHwgMTMyICsrKysrKysr KysrKysrKysrKysrKysrKysrLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAg IHwgICA5ICsrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgfCAgMTAgKysK IDUgZmlsZXMgY2hhbmdlZCwgMjc5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCmluZGV4IDQ5YTg4MWIyNjIuLmFiYzA5NzE3OWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05 MjQ4LDYgKzkyNDgsMTEgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDxlbnRyeT5t YXRlcmlhbGl6ZWQgdmlld3M8L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAg ICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9InZpZXctcGctYmFja2VuZC1tZW1vcnktY29udGV4dHMi PjxzdHJ1Y3RuYW1lPnBnX2JhY2tlbmRfbWVtb3J5X2NvbnRleHRzPC9zdHJ1Y3RuYW1lPjwvbGlu az48L2VudHJ5PgorICAgICAgPGVudHJ5PmJhY2tlbmQgbWVtb3J5IGNvbnRleHRzPC9lbnRyeT4K KyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJ2 aWV3LXBnLXBvbGljaWVzIj48c3RydWN0bmFtZT5wZ19wb2xpY2llczwvc3RydWN0bmFtZT48L2xp bms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5wb2xpY2llczwvZW50cnk+CkBAIC0xMDUyNiw2ICsx MDUzMSwxMjcgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBMRUZUIEpPSU4gcGdfcHJlcGFy ZWRfeGFjdHMgcHB4CiAKICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJ2aWV3LXBnLWJhY2tlbmQt bWVtb3J5LWNvbnRleHRzIj4KKyAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2JhY2tlbmRfbWVtb3J5 X2NvbnRleHRzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJ2aWV3 LXBnLWJhY2tlbmQtbWVtb3J5LWNvbnRleHRzIj4KKyAgIDxwcmltYXJ5PnBnX2JhY2tlbmRfbWVt b3J5X2NvbnRleHRzPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8aW5kZXh0ZXJtIHpv bmU9InZpZXctcGctYmFja2VuZC1tZW1vcnktY29udGV4dHMiPgorICAgPHByaW1hcnk+YmFja2Vu ZCBtZW1vcnkgY29udGV4dHM8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgor ICAgVGhlIHZpZXcgPHN0cnVjdG5hbWU+cGdfYmFja2VuZF9tZW1vcnlfY29udGV4dHM8L3N0cnVj dG5hbWU+IGRpc3BsYXlzIGFsbAorICAgdGhlIGxvY2FsIGJhY2tlbmQgbWVtb3J5IGNvbnRleHRz LgorICA8L3BhcmE+CisgIDxwYXJhPgorICAgPHN0cnVjdG5hbWU+cGdfYmFja2VuZF9tZW1vcnlf Y29udGV4dHM8L3N0cnVjdG5hbWU+IGNvbnRhaW5zIG9uZSByb3cKKyAgIGZvciBlYWNoIG1lbW9y eSBjb250ZXh0LgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1l PnBnX2JhY2tlbmRfbWVtb3J5X2NvbnRleHRzPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4K KyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAg ICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+bmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+Cisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBtZW1vcnkgY29u dGV4dAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5pZGVudDwvc3RydWN0ZmllbGQ+IDx0 eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZGVu dGlmaWNhdGlvbiBpbmZvcm1hdGlvbiBvZiB0aGUgbWVtb3J5IGNvbnRleHQuIFRoaXMgZmllbGQg aXMgdHJ1bmNhdGVkIGF0IDEwMjQgYnl0ZXMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ cGFyZW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHBhcmVudCBvZiB0aGlzIG1lbW9yeSBjb250 ZXh0CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmxldmVsPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50NDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERpc3Rh bmNlIGZyb20gVG9wTWVtb3J5Q29udGV4dCBpbiBjb250ZXh0IHRyZWUKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dG90YWxfYnl0ZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgYnl0ZXMgYWxsb2Nh dGVkIGZvciB0aGlzIG1lbW9yeSBjb250ZXh0CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnRvdGFsX25ibG9ja3M8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ4PC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVG90YWwgbnVtYmVyIG9mIGJsb2NrcyBhbGxvY2F0 ZWQgZm9yIHRoaXMgbWVtb3J5IGNvbnRleHQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ ZnJlZV9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDg8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBGcmVlIHNwYWNlIGluIGJ5dGVzCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPmZyZWVfY2h1bmtzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRvdGFsIG51bWJlciBvZiBm cmVlIGNodW5rcworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD51c2VkX2J5dGVzPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+aW50ODwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFVzZWQgc3BhY2UgaW4gYnl0ZXMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisKKyA8L3NlY3Qx PgorCiAgPHNlY3QxIGlkPSJ2aWV3LXBnLW1hdHZpZXdzIj4KICAgPHRpdGxlPjxzdHJ1Y3RuYW1l PnBnX21hdHZpZXdzPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X3ZpZXdzLnNxbAppbmRleCA1MzE0ZTkzNDhmLi40MDM5NTQwMzliIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCkBAIC01NTQsNiArNTU0LDkgQEAgQ1JFQVRFIFZJRVcgcGdfc2ht ZW1fYWxsb2NhdGlvbnMgQVMKIFJFVk9LRSBBTEwgT04gcGdfc2htZW1fYWxsb2NhdGlvbnMgRlJP TSBQVUJMSUM7CiBSRVZPS0UgRVhFQ1VURSBPTiBGVU5DVElPTiBwZ19nZXRfc2htZW1fYWxsb2Nh dGlvbnMoKSBGUk9NIFBVQkxJQzsKIAorQ1JFQVRFIFZJRVcgcGdfYmFja2VuZF9tZW1vcnlfY29u dGV4dHMgQVMKKyAgICBTRUxFQ1QgKiBGUk9NIHBnX2dldF9iYWNrZW5kX21lbW9yeV9jb250ZXh0 cygpOworCiAtLSBTdGF0aXN0aWNzIHZpZXdzCiAKIENSRUFURSBWSUVXIHBnX3N0YXRfYWxsX3Rh YmxlcyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9tY3h0LmMgYi9zcmMv YmFja2VuZC91dGlscy9tbWdyL21jeHQuYwppbmRleCBhYmRhMjJmYTU3Li5iMDczMmVjNTYwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL21jeHQuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9tbWdyL21jeHQuYwpAQCAtMjEsMTIgKzIxLDEzIEBACiAKICNpbmNsdWRlICJwb3N0 Z3Jlcy5oIgogCisjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgi CiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNp bmNsdWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAK LQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCiAgKgkgIEdMT0JBTCBNRU1PUlkJCQkJCQkJCQkJCQkJ CQkgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtNjcsNiArNjgsMTIgQEAgc3RhdGljIHZv aWQgTWVtb3J5Q29udGV4dFN0YXRzUHJpbnQoTWVtb3J5Q29udGV4dCBjb250ZXh0LCB2b2lkICpw YXNzdGhydSwKICNkZWZpbmUgQXNzZXJ0Tm90SW5Dcml0aWNhbFNlY3Rpb24oY29udGV4dCkgXAog CUFzc2VydChDcml0U2VjdGlvbkNvdW50ID09IDAgfHwgKGNvbnRleHQpLT5hbGxvd0luQ3JpdFNl Y3Rpb24pCiAKKy8qIC0tLS0tLS0tLS0KKyAqIFRoZSBtYXggYnl0ZXMgZm9yIHNob3dpbmcgaWRl bnRpZmllcnMgb2YgTWVtb3J5Q29udGV4dC4KKyAqIC0tLS0tLS0tLS0KKyAqLworI2RlZmluZSBN RU1PUllfQ09OVEVYVF9JREVOVF9TSVpFCTEwMjQKKwogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAg KgkgIEVYUE9SVEVEIFJPVVRJTkVTCQkJCQkJCQkJCQkJCQkgKgogICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLwpAQCAtMTIyMCwzICsxMjI3LDEyNiBAQCBwY2hvbXAoY29uc3QgY2hhciAqaW4pCiAJCW4t LTsKIAlyZXR1cm4gcG5zdHJkdXAoaW4sIG4pOwogfQorCisvKgorICogUHV0TWVtb3J5Q29udGV4 dHNTdGF0c1R1cGxlU3RvcmUKKyAqCQlPbmUgcmVjdXJzaW9uIGxldmVsIGZvciBwZ19nZXRfYmFj a2VuZF9tZW1vcnlfY29udGV4dHMuCisgKi8KK3N0YXRpYyB2b2lkCitQdXRNZW1vcnlDb250ZXh0 c1N0YXRzVHVwbGVTdG9yZShUdXBsZXN0b3Jlc3RhdGUgKnR1cHN0b3JlLAorCQkJCQkJCQlUdXBs ZURlc2MgdHVwZGVzYywgTWVtb3J5Q29udGV4dCBjb250ZXh0LAorCQkJCQkJCQlNZW1vcnlDb250 ZXh0IHBhcmVudCwgaW50IGxldmVsKQoreworI2RlZmluZSBQR19HRVRfTUVNT1JZX0NPTlRFWFRT X0NPTFMJOQorCURhdHVtCQl2YWx1ZXNbUEdfR0VUX01FTU9SWV9DT05URVhUU19DT0xTXTsKKwli b29sCQludWxsc1tQR19HRVRfTUVNT1JZX0NPTlRFWFRTX0NPTFNdOworCU1lbW9yeUNvbnRleHRD b3VudGVycyBzdGF0OworCU1lbW9yeUNvbnRleHQgY2hpbGQ7CisJY29uc3QgY2hhciAqbmFtZSA9 IGNvbnRleHQtPm5hbWU7CisJY29uc3QgY2hhciAqaWRlbnQgPSBjb250ZXh0LT5pZGVudDsKKwor CWlmIChjb250ZXh0ID09IE5VTEwpCisJCXJldHVybjsKKworCS8qCisJICogVG8gYmUgY29uc2lz dGVudCB3aXRoIGxvZ2dpbmcgb3V0cHV0LCB3ZSBsYWJlbCBkeW5haGFzaCBjb250ZXh0cworCSAq IHdpdGgganVzdCB0aGUgaGFzaCB0YWJsZSBuYW1lIGFzIHdpdGggTWVtb3J5Q29udGV4dFN0YXRz UHJpbnQoKS4KKwkgKi8KKwlpZiAoaWRlbnQgJiYgc3RyY21wKG5hbWUsICJkeW5haGFzaCIpID09 IDApCisJeworCQluYW1lID0gaWRlbnQ7CisJCWlkZW50ID0gTlVMTDsKKwl9CisKKwkvKiBFeGFt aW5lIHRoZSBjb250ZXh0IGl0c2VsZiAqLworCW1lbXNldCgmc3RhdCwgMCwgc2l6ZW9mKHN0YXQp KTsKKwkoKmNvbnRleHQtPm1ldGhvZHMtPnN0YXRzKSAoY29udGV4dCwgTlVMTCwgKHZvaWQgKikg JmxldmVsLCAmc3RhdCk7CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJ bWVtc2V0KG51bGxzLCAwLCBzaXplb2YobnVsbHMpKTsKKworCXZhbHVlc1swXSA9IENTdHJpbmdH ZXRUZXh0RGF0dW0obmFtZSk7CisKKwlpZiAoaWRlbnQpCisJeworCQlpbnQJCWlkbGVuID0gc3Ry bGVuKGlkZW50KTsKKwkJY2hhcgkJY2xpcHBlZF9pZGVudFtNRU1PUllfQ09OVEVYVF9JREVOVF9T SVpFXTsKKworCQkvKgorCQkgKiBTb21lIGlkZW50aWZpZXJzIHN1Y2ggYXMgU1FMIHF1ZXJ5IHN0 cmluZyBjYW4gYmUgdmVyeSBsb25nLAorCQkgKiB0cnVuY2F0ZSBvdmVyc2l6ZSBpZGVudGlmaWVy cy4KKwkJICovCisJCWlmIChpZGxlbiA+PSBNRU1PUllfQ09OVEVYVF9JREVOVF9TSVpFKQorCQkJ aWRsZW4gPSBwZ19tYmNsaXBsZW4oaWRlbnQsIGlkbGVuLCBNRU1PUllfQ09OVEVYVF9JREVOVF9T SVpFIC0gMSk7CisKKwkJbWVtY3B5KGNsaXBwZWRfaWRlbnQsIGlkZW50LCBpZGxlbik7CisJCWNs aXBwZWRfaWRlbnRbaWRsZW5dID0gJ1wwJzsKKwkJdmFsdWVzWzFdID0gQ1N0cmluZ0dldFRleHRE YXR1bShjbGlwcGVkX2lkZW50KTsKKwl9CisJZWxzZQorCQludWxsc1sxXSA9IHRydWU7CisKKwlp ZiAocGFyZW50ID09IE5VTEwpCisJCW51bGxzWzJdID0gdHJ1ZTsKKwllbHNlCisJCXZhbHVlc1sy XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocGFyZW50LT5uYW1lKTsKKwl2YWx1ZXNbM10gPSBJbnQz MkdldERhdHVtKGxldmVsKTsKKwl2YWx1ZXNbNF0gPSBJbnQ2NEdldERhdHVtKHN0YXQudG90YWxz cGFjZSk7CisJdmFsdWVzWzVdID0gSW50NjRHZXREYXR1bShzdGF0Lm5ibG9ja3MpOworCXZhbHVl c1s2XSA9IEludDY0R2V0RGF0dW0oc3RhdC5mcmVlc3BhY2UpOworCXZhbHVlc1s3XSA9IEludDY0 R2V0RGF0dW0oc3RhdC5mcmVlY2h1bmtzKTsKKwl2YWx1ZXNbOF0gPSBJbnQ2NEdldERhdHVtKHN0 YXQudG90YWxzcGFjZSAtIHN0YXQuZnJlZXNwYWNlKTsKKwl0dXBsZXN0b3JlX3B1dHZhbHVlcyh0 dXBzdG9yZSwgdHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisKKwlmb3IgKGNoaWxkID0gY29udGV4 dC0+Zmlyc3RjaGlsZDsgY2hpbGQgIT0gTlVMTDsgY2hpbGQgPSBjaGlsZC0+bmV4dGNoaWxkKQor CXsKKwkJUHV0TWVtb3J5Q29udGV4dHNTdGF0c1R1cGxlU3RvcmUodHVwc3RvcmUsIHR1cGRlc2Ms CisJCQkJCQkJCSAgY2hpbGQsIGNvbnRleHQsIGxldmVsICsgMSk7CisJfQorfQorCisvKgorICog cGdfZ2V0X2JhY2tlbmRfbWVtb3J5X2NvbnRleHRzCisgKgkJU1FMIFNSRiBzaG93aW5nIGJhY2tl bmQgbWVtb3J5IGNvbnRleHQuCisgKi8KK0RhdHVtCitwZ19nZXRfYmFja2VuZF9tZW1vcnlfY29u dGV4dHMoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlSZXR1cm5TZXRJbmZvICpyc2luZm8gPSAoUmV0 dXJuU2V0SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJ VHVwbGVzdG9yZXN0YXRlICp0dXBzdG9yZTsKKwlNZW1vcnlDb250ZXh0IHBlcl9xdWVyeV9jdHg7 CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisJLyogY2hlY2sgdG8gc2VlIGlmIGNhbGxl ciBzdXBwb3J0cyB1cyByZXR1cm5pbmcgYSB0dXBsZXN0b3JlICovCisJaWYgKHJzaW5mbyA9PSBO VUxMIHx8ICFJc0EocnNpbmZvLCBSZXR1cm5TZXRJbmZvKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygi c2V0LXZhbHVlZCBmdW5jdGlvbiBjYWxsZWQgaW4gY29udGV4dCB0aGF0IGNhbm5vdCBhY2NlcHQg YSBzZXQiKSkpOworCWlmICghKHJzaW5mby0+YWxsb3dlZE1vZGVzICYgU0ZSTV9NYXRlcmlhbGl6 ZSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCSBlcnJtc2coIm1hdGVyaWFsaXplIG1vZGUgcmVxdWlyZWQsIGJ1dCBp dCBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIGNvbnRleHQiKSkpOworCisJLyogQnVpbGQgYSB0dXBs ZSBkZXNjcmlwdG9yIGZvciBvdXIgcmVzdWx0IHR5cGUgKi8KKwlpZiAoZ2V0X2NhbGxfcmVzdWx0 X3R5cGUoZmNpbmZvLCBOVUxMLCAmdHVwZGVzYykgIT0gVFlQRUZVTkNfQ09NUE9TSVRFKQorCQll bG9nKEVSUk9SLCAicmV0dXJuIHR5cGUgbXVzdCBiZSBhIHJvdyB0eXBlIik7CisKKwlwZXJfcXVl cnlfY3R4ID0gcnNpbmZvLT5lY29udGV4dC0+ZWN4dF9wZXJfcXVlcnlfbWVtb3J5OworCW9sZGNv bnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8ocGVyX3F1ZXJ5X2N0eCk7CisKKwl0dXBzdG9y ZSA9IHR1cGxlc3RvcmVfYmVnaW5faGVhcCh0cnVlLCBmYWxzZSwgd29ya19tZW0pOworCXJzaW5m by0+cmV0dXJuTW9kZSA9IFNGUk1fTWF0ZXJpYWxpemU7CisJcnNpbmZvLT5zZXRSZXN1bHQgPSB0 dXBzdG9yZTsKKwlyc2luZm8tPnNldERlc2MgPSB0dXBkZXNjOworCisJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGNvbnRleHQpOworCisJUHV0TWVtb3J5Q29udGV4dHNTdGF0c1R1cGxlU3RvcmUo dHVwc3RvcmUsIHR1cGRlc2MsCisJCQkJCQkJCVRvcE1lbW9yeUNvbnRleHQsIE5VTEwsIDApOwor CisJLyogY2xlYW4gdXAgYW5kIHJldHVybiB0aGUgdHVwbGVzdG9yZSAqLworCXR1cGxlc3RvcmVf ZG9uZXN0b3JpbmcodHVwc3RvcmUpOworCisJcmV0dXJuIChEYXR1bSkgMDsKK30KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0CmluZGV4IDM4Mjk1YWNhNDguLmE0ODk4MmVkYWQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdApAQCAtNzc5Nyw2ICs3Nzk3LDE1IEBACiAgIHByb2FyZ25hbWVzID0+ICd7bmFt ZSxvZmYsc2l6ZSxhbGxvY2F0ZWRfc2l6ZX0nLAogICBwcm9zcmMgPT4gJ3BnX2dldF9zaG1lbV9h bGxvY2F0aW9ucycgfSwKIAorIyBtZW1vcnkgY29udGV4dCBvZiBsb2NhbCBiYWNrZW5kCit7IG9p ZCA9PiAnMjI4MicsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBpbmZvcm1hdGlvbiBhYm91dCBhbGwg bWVtb3J5IGNvbnRleHRzIG9mIGxvY2FsIGJhY2tlbmQnLAorICBwcm9uYW1lID0+ICdwZ19nZXRf YmFja2VuZF9tZW1vcnlfY29udGV4dHMnLCBwcm9yb3dzID0+ICcxMDAnLCBwcm9yZXRzZXQgPT4g J3QnLAorICBwcm92b2xhdGlsZSA9PiAndicsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlw ZSA9PiAncmVjb3JkJywgcHJvYXJndHlwZXMgPT4gJycsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7 dGV4dCx0ZXh0LHRleHQsaW50NCxpbnQ4LGludDgsaW50OCxpbnQ4LGludDh9JywKKyAgcHJvYXJn bW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne25hbWUs IGlkZW50LCBwYXJlbnQsIGxldmVsLCB0b3RhbF9ieXRlcywgdG90YWxfbmJsb2NrcywgZnJlZV9i eXRlcywgZnJlZV9jaHVua3MsIHVzZWRfYnl0ZXN9JywKKyAgcHJvc3JjID0+ICdwZ19nZXRfYmFj a2VuZF9tZW1vcnlfY29udGV4dHMnIH0sCisKICMgbm9uLXBlcnNpc3RlbnQgc2VyaWVzIGdlbmVy YXRvcgogeyBvaWQgPT4gJzEwNjYnLCBkZXNjciA9PiAnbm9uLXBlcnNpc3RlbnQgc2VyaWVzIGdl bmVyYXRvcicsCiAgIHByb25hbWUgPT4gJ2dlbmVyYXRlX3NlcmllcycsIHByb3Jvd3MgPT4gJzEw MDAnLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCBiODEzZTMyMjE1Li4zMGFj MTk3YWY3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTMyNCw2ICsxMzI0 LDE2IEBAIHBnX2F2YWlsYWJsZV9leHRlbnNpb25zfCBTRUxFQ1QgZS5uYW1lLAogICAgIGUuY29t bWVudAogICAgRlJPTSAocGdfYXZhaWxhYmxlX2V4dGVuc2lvbnMoKSBlKG5hbWUsIGRlZmF1bHRf dmVyc2lvbiwgY29tbWVudCkKICAgICAgTEVGVCBKT0lOIHBnX2V4dGVuc2lvbiB4IE9OICgoZS5u YW1lID0geC5leHRuYW1lKSkpOworcGdfYmFja2VuZF9tZW1vcnlfY29udGV4dHN8IFNFTEVDVCBw Z19nZXRfYmFja2VuZF9tZW1vcnlfY29udGV4dHMubmFtZSwKKyAgICBwZ19nZXRfYmFja2VuZF9t ZW1vcnlfY29udGV4dHMuaWRlbnQsCisgICAgcGdfZ2V0X2JhY2tlbmRfbWVtb3J5X2NvbnRleHRz LnBhcmVudCwKKyAgICBwZ19nZXRfYmFja2VuZF9tZW1vcnlfY29udGV4dHMubGV2ZWwsCisgICAg cGdfZ2V0X2JhY2tlbmRfbWVtb3J5X2NvbnRleHRzLnRvdGFsX2J5dGVzLAorICAgIHBnX2dldF9i YWNrZW5kX21lbW9yeV9jb250ZXh0cy50b3RhbF9uYmxvY2tzLAorICAgIHBnX2dldF9iYWNrZW5k X21lbW9yeV9jb250ZXh0cy5mcmVlX2J5dGVzLAorICAgIHBnX2dldF9iYWNrZW5kX21lbW9yeV9j b250ZXh0cy5mcmVlX2NodW5rcywKKyAgICBwZ19nZXRfYmFja2VuZF9tZW1vcnlfY29udGV4dHMu dXNlZF9ieXRlcworICAgRlJPTSBwZ19nZXRfYmFja2VuZF9tZW1vcnlfY29udGV4dHMoKSBwZ19n ZXRfYmFja2VuZF9tZW1vcnlfY29udGV4dHMobmFtZSwgaWRlbnQsIHBhcmVudCwgbGV2ZWwsIHRv dGFsX2J5dGVzLCB0b3RhbF9uYmxvY2tzLCBmcmVlX2J5dGVzLCBmcmVlX2NodW5rcywgdXNlZF9i eXRlcyk7CiBwZ19jb25maWd8IFNFTEVDVCBwZ19jb25maWcubmFtZSwKICAgICBwZ19jb25maWcu c2V0dGluZwogICAgRlJPTSBwZ19jb25maWcoKSBwZ19jb25maWcobmFtZSwgc2V0dGluZyk7Ci0t IAoyLjE4LjEKCg== --=_74f8b203694752ae841d498370d8e6ba--