Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0g6v-0027HI-2M for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Mar 2026 13:29:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0g5t-00F3Qt-2u for pgsql-hackers@arkaria.postgresql.org; Thu, 12 Mar 2026 13:28:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0g5t-00F3Ql-1Y for pgsql-hackers@lists.postgresql.org; Thu, 12 Mar 2026 13:28:54 +0000 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w0g5r-00000002IwV-18FE for pgsql-hackers@postgresql.org; Thu, 12 Mar 2026 13:28:53 +0000 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-439b7c2788dso707240f8f.1 for ; Thu, 12 Mar 2026 06:28:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773322125; x=1773926925; darn=postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=0Dxp+87qBws0mu3W7W+TFrDP1zs4nLdoMBGs9WVMrho=; b=k/g0pkOLiBhDoxZPrroZGGOK2g6ZJegCh5qQDCGg+r0Ij7pwCz8oTeubKrPYc3jl56 5/y9XYcFuEAkIeGYBdDm0JMd+3vLOCjdyS0DyifHpKjE+z75XCmm2c58gzmNKJBRidjp yYc64o/8dJNL5QeuCx2SfNQdTquN56EX69Yo9bqqTkYWxH2oUrmZJpHKSQRa+3uBmcdk ANoZAa2cFbRkvjEQbdA7lGFbXiznZFFWh4IPAVlG+uoDJq+KaVN0UczQIGetPfs0Ly1Z yUaCJb3x13Fb9xh016L2hSIJSFZBMK5sLf5giOLx12Je74zpaOo7QHOT+FQsK/3W1YdI DCqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773322125; x=1773926925; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=0Dxp+87qBws0mu3W7W+TFrDP1zs4nLdoMBGs9WVMrho=; b=nSz50SkjvrSdQpI8K4Orwk5lGBw1YQVqjgpv/bCNRVtkRPxCxl8mUjeViSNU0PnRoa N3EsTAvZ+mtaPkzMAnTpiq/USwry7/SOTp7/oHOXq2X8SY7ZySpk8dNQ7xkCek11y1Bu tXr/Ga0oROps30fCy2k2C+OJkFLpGZa7uvGjNytWH9oon9MdojhqkVQINQx0dZEUwxFv LP74mtrTDAA9dHT3m5mp+ryB/PBm7C+Rgy+aw5uvFLNbab4ei5lV2aZk9SVPxu4pGChY 5IfxaQBG7CUA7DTI2QGuDRnp0slAZIvOdjl6l4V+CoDbtcQBsZAhM0KqcUH8xgUnUC3h 8dFg== X-Forwarded-Encrypted: i=1; AJvYcCU/7ZUF1LTGc5TzGSIJsyCCcu6QfnCA4sqDmobgvvZaSOXUprG3pLFE1meGQE6nsn4iihPOOYB22gRweQmO@postgresql.org X-Gm-Message-State: AOJu0Ywi/Se6FFxNqq+qlMwElGz9xaCINqtahC+mXVtgyTkyeUxKYQN2 q/mS5L5G/tTfy2QinH0oMR+Mq37rvpjh2WftuvVzDbvdInotQ+uD1xFS X-Gm-Gg: ATEYQzwIkXa20I36GqhhJGiWQ9Q+03E2Y5nQ7VcKc0uLGn87ZlgzrNd+LEUYNBDZVBC YDWw+pLFV2PqZ9w/QEBbQkPYhTgkjHVFp35BWWUd3cIOiRxMB7zeXpQgFG7qiggB0ud4mDcb30r udqFW+6qOfo44DOQgle9NzxOhs2nhPXKtGtR68oYRhaAzr5gbOQ1A1cAGss+AP+g/mmHdxfcvbY tJv6cfhBaDRgeMR/yaiwpWvSakl0m2dCQkOnR1s3FS9X5Svs43wBpT7PWjP9Gqu3/1ftoI84wn0 bj676JPBfAu/wBRRrqkV611oJ9CjxFXVMfup+WHX9CV3g2DhwmHky0TNcr928Vd1gacanYyxN7s nKSTkJ8sVt2Tl3LSUg73PSYy5Dz5d+xLE0SoVz4Eod21xMLVKFDSQsy0rXBRqlDs6GODPHvTCLE 6hXJaFfryjmUnDy6Vd5Vk2zIx59Hr+l88o8hd/qg== X-Received: by 2002:a5d:64e7:0:b0:439:d242:e8fe with SMTP id ffacd0b85a97d-439f81bd8c7mr11793488f8f.11.1773322124901; Thu, 12 Mar 2026 06:28:44 -0700 (PDT) Received: from [192.168.15.102] ([80.251.191.198]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe2273e8sm9207194f8f.33.2026.03.12.06.28.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Mar 2026 06:28:44 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------nK2LoeFMhxWmgn74CO4l2kGM" Message-ID: Date: Thu, 12 Mar 2026 14:28:42 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Vacuum statistics From: Andrei Lepikhov To: Alena Rybakina , pgsql-hackers Cc: Alexander Korotkov , Amit Kapila , Jim Nasby , Bertrand Drouvot , Kirill Reshke , Andrei Zubkov , Masahiko Sawada , Melanie Plageman , jian he , Sami Imseih , vignesh C , Ilia Evdokimov References: <86f76aa5-1ab5-4e2e-9b15-405051852a2a@postgrespro.ru> <5583261b-eede-4341-b3b1-91650fefc1cf@postgrespro.ru> <2a04ad18-5572-4633-848b-eb57209e7ac0@postgrespro.ru> <2f48399f-2959-4483-938f-64edb863ca76@postgrespro.ru> <18169b68-5b10-40fd-9657-be04f2bd0161@postgrespro.ru> <612819ad-beca-41fb-bb7f-d5a7c11f0045@yandex.ru> <277ce149-4333-463d-bad6-ccd785606c7f@yandex.ru> <3f9c57bc-dc1f-4ad8-a2e1-5be15ac79264@yandex.ru> <77f1b8bc-b365-4e88-b87b-ced37fabbbf0@yandex.ru> Content-Language: en-US In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------nK2LoeFMhxWmgn74CO4l2kGM Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 12/3/26 13:02, Andrei Lepikhov wrote: > On 9/3/26 16:46, Alena Rybakina wrote: >> I discovered that my last patches were incorrectly formed. I updated >> the correct version. > > I see that v29-0001-* is a quite separate feature itself at the moment. > It makes sense to remove the commit message phrase for > vm_new_frozen_pages and vm_new_visible_pages, introduced in later patches. > This patch itself looks good to me. Since this patch is almost ready for commit, I reviewed it carefully. I noticed a documentation entry was missing, so I added it. Please see the attachment. While updating the patch file, I also made a few small adjustments, including changing the parameter order in the struct and VIEW. The commit message is also fixed. In addition, it makes sense to discuss how these parameters are supposed to be used. I see the following use cases: 1. Which tables have the most VM churn? - monitoring rev_all_visible_pages normalised on the table size and its average tuple width might expose the most suspicious tables (in terms of table statistics). 2. DML Skew. Dividing rev_all_visible_pages by the number of tuple updates/deletes, normalised by the average table and tuple sizes, might indicate whether changes are localised within the table. 3. IndexOnlyScan effectiveness. Considering the speed of rev_all_visible_pages change, normalised to the value of the relallvisible statistic, we may detect tables where Index-Only Scan might be inefficiently used. Feel free to criticise it or add your own - I’m just a developer, not a DBA. Also, I’m not sure what use cases there are for the rev_all_frozen_pages parameter. -- regards, Andrei Lepikhov, pgEdge --------------nK2LoeFMhxWmgn74CO4l2kGM Content-Type: text/plain; charset=UTF-8; name="v30-0001-Track-table-VM-stability.patch" Content-Disposition: attachment; filename="v30-0001-Track-table-VM-stability.patch" Content-Transfer-Encoding: base64 RnJvbSA5Njc4OTE0NDQyNGU5OTFhYWI0NGU3YzhkZmFkOWRiNGEyZTM2OGUxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJhY2tpbmFA eWFuZGV4LnJ1PgpEYXRlOiBTYXQsIDI4IEZlYiAyMDI2IDE4OjMwOjEyICswMzAwClN1Ympl Y3Q6IFtQQVRDSCB2MzBdIFRyYWNrIHRhYmxlIFZNIHN0YWJpbGl0eS4KCkFkZCByZXZfYWxs X3Zpc2libGVfcGFnZXMgYW5kIHJldl9hbGxfZnJvemVuX3BhZ2VzIGNvdW50ZXJzIHRvCnBn X3N0YXRfYWxsX3RhYmxlcyB0cmFja2luZyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBhbGwt dmlzaWJsZSBhbmQKYWxsLWZyb3plbiBiaXRzIGFyZSBjbGVhcmVkIGluIHRoZSB2aXNpYmls aXR5IG1hcC4gVGhlc2UgYml0cyBhcmUgY2xlYXJlZCBieQpiYWNrZW5kIHByb2Nlc3NlcyBk dXJpbmcgcmVndWxhciBETUwgb3BlcmF0aW9ucy4gSGVuY2UsIHRoZSBjb3VudGVycyBhcmUg cGxhY2VkCmluIHRhYmxlIHN0YXRpc3RpYyBlbnRyeS4KCkEgaGlnaCByZXZfYWxsX3Zpc2li bGVfcGFnZXMgcmF0ZSByZWxhdGl2ZSB0byBETUwgdm9sdW1lIGluZGljYXRlcwp0aGF0IG1v ZGlmaWNhdGlvbnMgYXJlIHNjYXR0ZXJlZCBhY3Jvc3MgcHJldmlvdXNseS1jbGVhbiBwYWdl cyByYXRoZXIKdGhhbiBjb25jZW50cmF0ZWQgb24gYWxyZWFkeS1kaXJ0eSBvbmVzLCBjYXVz aW5nIGluZGV4LW9ubHkgc2NhbnMgdG8KZmFsbCBiYWNrIHRvIGhlYXAgZmV0Y2hlcy4gIEEg aGlnaCByZXZfYWxsX2Zyb3plbl9wYWdlcyByYXRlIGluZGljYXRlcwp0aGF0IHZhY3V1bSdz IGZyZWV6aW5nIHdvcmsgaXMgYmVpbmcgZnJlcXVlbnRseSB1bmRvbmUgYnkgY29uY3VycmVu dApETUwuCgpBdXRob3JzOiBBbGVuYSBSeWJha2luYSA8bGVuYS5yaWJhY2tpbmFAeWFuZGV4 LnJ1PiwKICAgICAgICAgQW5kcmVpIExlcGlraG92IDxsZXBpaG92QGdtYWlsLmNvbT4sCiAg ICAgICAgIEFuZHJlaSBadWJrb3YgPGEuenVia292QHBvc3RncmVzcHJvLnJ1PgpSZXZpZXdl ZC1ieTogRGlsaXAgS3VtYXIgPGRpbGlwYmFsYXV0QGdtYWlsLmNvbT4sCiAgICAgICAgIE1h c2FoaWtvIFNhd2FkYSA8c2F3YWRhLm1zaGtAZ21haWwuY29tPiwKICAgICAgICAgSWxpYSBF dmRva2ltb3YgPGlseWEuZXZkb2tpbW92QHRhbnRvcmxhYnMuY29tPiwKICAgICAgICAgSmlh biBIZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPiwKICAgICAgICAgS2lyaWxsIFJl c2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4sCiAgICAgICAgIEFsZXhhbmRlciBLb3Jv dGtvdiA8YWVrb3JvdGtvdkBnbWFpbC5jb20+LAogICAgICAgICBKaW0gTmFzYnkgPGpuYXNi eUB1cGdyYWRlLmNvbT4sCiAgICAgICAgIFNhbWkgSW1zZWloIDxzYW1pbXNlaWhAZ21haWwu Y29tPiwKICAgICAgICAgS2FyaW5hIExpdHNrZXZpY2ggPGxpdHNrZXZpY2hrYXJpbmFAZ21h aWwuY29tPgotLS0KIGRvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgICAgICAgICAgICAg ICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3Zpc2liaWxpdHltYXAuYyAgICAgIHwgMTAgKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwgICAgICAgICB8ICAyICsrCiBzcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyB8ICAyICsrCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICB8ICA2ICsrKysKIHNyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgIHwgMTIgKysrKysrKy0KIHNyYy9pbmNsdWRl L3Bnc3RhdC5oICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKysrKysrKysrKy0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgIHwgIDYgKysrKwog OCBmaWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwv bW9uaXRvcmluZy5zZ21sCmluZGV4IGNjMDE0NTY0Yzk3Li44Y2UwZDBkZDJjYiAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv bW9uaXRvcmluZy5zZ21sCkBAIC00MjQ5LDYgKzQyNDksMzggQEAgZGVzY3JpcHRpb24gfCBX YWl0aW5nIGZvciBhIG5ld2x5IGluaXRpYWxpemVkIFdBTCBmaWxlIHRvIHJlYWNoIGR1cmFi bGUgc3RvcmFnZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZXZfYWxs X3Zpc2libGVfcGFnZXM8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgdGltZXMgdGhlIGFs bC12aXNpYmxlIGJpdCBpbiB0aGUKKyAgICAgICA8bGluayBsaW5rZW5kPSJzdG9yYWdlLXZt Ij52aXNpYmlsaXR5IG1hcDwvbGluaz4gd2FzIGNsZWFyZWQgZm9yIGEKKyAgICAgICBwYWdl IG9mIHRoaXMgdGFibGUuICBUaGUgYWxsLXZpc2libGUgYml0IGlzIGNsZWFyZWQgYnkgYmFj a2VuZAorICAgICAgIHByb2Nlc3NlcyB3aGVuIHRoZXkgbW9kaWZ5IGEgaGVhcCBwYWdlIHRo YXQgd2FzIHByZXZpb3VzbHkgbWFya2VkCisgICAgICAgYWxsLXZpc2libGUsIGZvciBleGFt cGxlIGR1cmluZyBhbiA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+LAorICAgICAgIDxjb21t YW5kPlVQREFURTwvY29tbWFuZD4sIG9yIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4uCisg ICAgICAgQSBoaWdoIHJhdGUgb2YgY2hhbmdlIGluIHRoaXMgY291bnRlciBtZWFucyB0aGF0 IGluZGV4LW9ubHkgc2NhbnMKKyAgICAgICBvbiB0aGlzIHRhYmxlIG1heSBmcmVxdWVudGx5 IG5lZWQgdG8gZmFsbCBiYWNrIHRvIGhlYXAgZmV0Y2hlcywKKyAgICAgICBhbmQgdGhhdCB2 YWN1dW0gbXVzdCByZS1kbyB2aXNpYmlsaXR5IG1hcCB3b3JrIG9uIHRob3NlIHBhZ2VzLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5yZXZfYWxsX2Zyb3plbl9wYWdl czwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE51bWJlciBvZiB0aW1lcyB0aGUgYWxsLWZyb3plbiBiaXQg aW4gdGhlCisgICAgICAgPGxpbmsgbGlua2VuZD0ic3RvcmFnZS12bSI+dmlzaWJpbGl0eSBt YXA8L2xpbms+IHdhcyBjbGVhcmVkIGZvciBhCisgICAgICAgcGFnZSBvZiB0aGlzIHRhYmxl LiAgVGhlIGFsbC1mcm96ZW4gYml0IGlzIGNsZWFyZWQgYnkgYmFja2VuZAorICAgICAgIHBy b2Nlc3NlcyB3aGVuIHRoZXkgbW9kaWZ5IGEgaGVhcCBwYWdlIHRoYXQgd2FzIHByZXZpb3Vz bHkgbWFya2VkCisgICAgICAgYWxsLWZyb3plbi4gIEEgaGlnaCB2YWx1ZSBjb21wYXJlZCB0 byB0aGUgbnVtYmVyIG9mIHZhY3V1bSBjeWNsZXMKKyAgICAgICBpbmRpY2F0ZXMgdGhhdCBE TUwgYWN0aXZpdHkgaXMgZnJlcXVlbnRseSB1bmRvaW5nIHRoZSBmcmVlemluZyB3b3JrCisg ICAgICAgcGVyZm9ybWVkIGJ5IHZhY3V1bS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3Ry dWN0ZmllbGQ+bGFzdF92YWN1dW08L3N0cnVjdGZpZWxkPiA8dHlwZT50aW1lc3RhbXAgd2l0 aCB0aW1lIHpvbmU8L3R5cGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5 bWFwLmMKaW5kZXggZTIxYjk2MjgxYTYuLjllYTdhMDY4ZWYwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVk ZSAiYWNjZXNzL3hsb2dpbnNlcnQuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZ3V0aWxzLmgi CiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVk ZSAicG9ydC9wZ19iaXR1dGlscy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAj aW5jbHVkZSAic3RvcmFnZS9zbWdyLmgiCkBAIC0xNjMsNiArMTY0LDE1IEBAIHZpc2liaWxp dHltYXBfY2xlYXIoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIg dm1idWYsIHVpbnQ4IGZsYWdzCiAKIAlpZiAobWFwW21hcEJ5dGVdICYgbWFzaykKIAl7CisJ CS8qCisJCSAqIFRyYWNrIGhvdyBvZnRlbiBhbGwtdmlzaWJsZSBvciBhbGwtZnJvemVuIGJp dHMgYXJlIGNsZWFyZWQgaW4gdGhlCisJCSAqIHZpc2liaWxpdHkgbWFwLgorCQkgKi8KKwkJ aWYgKG1hcFttYXBCeXRlXSA+PiBtYXBPZmZzZXQgJiBmbGFncyAmIFZJU0lCSUxJVFlNQVBf QUxMX1ZJU0lCTEUpCisJCQlwZ3N0YXRfY291bnRfdm1fcmV2X2FsbF92aXNpYmxlKHJlbCk7 CisJCWlmIChtYXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0ICYgZmxhZ3MgJiBWSVNJQklMSVRZ TUFQX0FMTF9GUk9aRU4pCisJCQlwZ3N0YXRfY291bnRfdm1fcmV2X2FsbF9mcm96ZW4ocmVs KTsKKwogCQltYXBbbWFwQnl0ZV0gJj0gfm1hc2s7CiAKIAkJTWFya0J1ZmZlckRpcnR5KHZt YnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCAzMzljMDE2 ZTUxMC4uMWVhZjc5ZmRiNGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5z cWwKQEAgLTcyOSw2ICs3MjksOCBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X2FsbF90YWJsZXMg QVMKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RlYWRfdHVwbGVzKEMub2lkKSBBUyBuX2Rl YWRfdHVwLAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfbW9kX3NpbmNlX2FuYWx5emUoQy5v aWQpIEFTIG5fbW9kX3NpbmNlX2FuYWx5emUsCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9p bnNfc2luY2VfdmFjdXVtKEMub2lkKSBBUyBuX2luc19zaW5jZV92YWN1dW0sCisgICAgICAg ICAgICBwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMoQy5vaWQpIEFTIHJldl9h bGxfdmlzaWJsZV9wYWdlcywKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X3Jldl9hbGxfZnJv emVuX3BhZ2VzKEMub2lkKSBBUyByZXZfYWxsX2Zyb3plbl9wYWdlcywKICAgICAgICAgICAg IHBnX3N0YXRfZ2V0X2xhc3RfdmFjdXVtX3RpbWUoQy5vaWQpIGFzIGxhc3RfdmFjdXVtLAog ICAgICAgICAgICAgcGdfc3RhdF9nZXRfbGFzdF9hdXRvdmFjdXVtX3RpbWUoQy5vaWQpIGFz IGxhc3RfYXV0b3ZhY3V1bSwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2xhc3RfYW5hbHl6 ZV90aW1lKEMub2lkKSBhcyBsYXN0X2FuYWx5emUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfcmVsYXRpb24uYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3Bnc3RhdF9yZWxhdGlvbi5jCmluZGV4IGJjOGM0M2I5NmFhLi5iYjI2ZTk3 ODk4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3Jl bGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X3JlbGF0 aW9uLmMKQEAgLTg3OSw2ICs4NzksOCBAQCBwZ3N0YXRfcmVsYXRpb25fZmx1c2hfY2IoUGdT dGF0X0VudHJ5UmVmICplbnRyeV9yZWYsIGJvb2wgbm93YWl0KQogCiAJdGFiZW50cnktPmJs b2Nrc19mZXRjaGVkICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19mZXRjaGVkOwogCXRhYmVu dHJ5LT5ibG9ja3NfaGl0ICs9IGxzdGF0cy0+Y291bnRzLmJsb2Nrc19oaXQ7CisJdGFiZW50 cnktPnJldl9hbGxfdmlzaWJsZV9wYWdlcyArPSBsc3RhdHMtPmNvdW50cy5yZXZfYWxsX3Zp c2libGVfcGFnZXM7CisJdGFiZW50cnktPnJldl9hbGxfZnJvemVuX3BhZ2VzICs9IGxzdGF0 cy0+Y291bnRzLnJldl9hbGxfZnJvemVuX3BhZ2VzOwogCiAJLyogQ2xhbXAgbGl2ZV90dXBs ZXMgaW4gY2FzZSBvZiBuZWdhdGl2ZSBkZWx0YV9saXZlX3R1cGxlcyAqLwogCXRhYmVudHJ5 LT5saXZlX3R1cGxlcyA9IE1heCh0YWJlbnRyeS0+bGl2ZV90dXBsZXMsIDApOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCA1YWMwMjIyNzRhNy4uNmQ3YzRjYzFl ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCkBAIC0xMDcsNiArMTA3 LDEyIEBAIFBHX1NUQVRfR0VUX1JFTEVOVFJZX0lOVDY0KHR1cGxlc191cGRhdGVkKQogLyog cGdfc3RhdF9nZXRfdmFjdXVtX2NvdW50ICovCiBQR19TVEFUX0dFVF9SRUxFTlRSWV9JTlQ2 NCh2YWN1dW1fY291bnQpCiAKKy8qIHBnX3N0YXRfZ2V0X3Jldl9hbGxfZnJvemVuX3BhZ2Vz ICovCitQR19TVEFUX0dFVF9SRUxFTlRSWV9JTlQ2NChyZXZfYWxsX2Zyb3plbl9wYWdlcykK KworLyogcGdfc3RhdF9nZXRfcmV2X2FsbF92aXNpYmxlX3BhZ2VzICovCitQR19TVEFUX0dF VF9SRUxFTlRSWV9JTlQ2NChyZXZfYWxsX3Zpc2libGVfcGFnZXMpCisKICNkZWZpbmUgUEdf U1RBVF9HRVRfUkVMRU5UUllfRkxPQVQ4KHN0YXQpCQkJCQkJXAogRGF0dW0JCQkJCQkJCQkJ CQkJCQlcCiBDcHBDb25jYXQocGdfc3RhdF9nZXRfLHN0YXQpKFBHX0ZVTkNUSU9OX0FSR1Mp CQkJCQlcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCAzNjFlMmNmZmZlYi4uMjUy ZWFiMDc5ZDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI4MzEsNiArMTI4 MzEsMTYgQEAKICAgcHJvc3JjID0+ICdoYXNob2lkOCcgfSwKIHsgb2lkID0+ICc4MjgxJywg ZGVzY3IgPT4gJ2hhc2gnLAogICBwcm9uYW1lID0+ICdoYXNob2lkOGV4dGVuZGVkJywgcHJv cmV0dHlwZSA9PiAnaW50OCcsCi0gIHByb2FyZ3R5cGVzID0+ICdvaWQ4IGludDgnLCBwcm9z cmMgPT4gJ2hhc2hvaWQ4ZXh0ZW5kZWQnIH0sCisgIHByb2FyZ3R5cGVzID0+ICdvaWQ4IGlu dDgnLCAgIHByb3NyYyA9PiAnaGFzaG9pZDhleHRlbmRlZCcgfSwKIAoreyBvaWQgPT4gJzgw MDInLAorICBkZXNjciA9PiAnc3RhdGlzdGljczogbnVtYmVyIG9mIHRpbWVzIHRoZSBhbGwt dmlzaWJsZSBwYWdlcyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgd2FzIHJlbW92ZWQgZm9yIHBh Z2VzIG9mIHRhYmxlJywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfcmV2X2FsbF92aXNp YmxlX3BhZ2VzJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9PiAncics IHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3Jj ID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVfcGFnZXMnIH0sCit7IG9pZCA9PiAn ODAwMycsCisgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBudW1iZXIgb2YgdGltZXMgdGhlIGFs bC1mcm96ZW4gcGFnZXMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIHdhcyByZW1vdmVkIGZvciBw YWdlcyBvZiB0YWJsZScsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3Jldl9hbGxfZnJv emVuX3BhZ2VzJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9PiAncics IHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3Jj ID0+ICdwZ19zdGF0X2dldF9yZXZfYWxsX2Zyb3plbl9wYWdlcycgfSwKIF0KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXgg MjE2YjkzNDkyYmEuLjg0OWVlYTI0ZjI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0 YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAtMTU5LDYgKzE1OSw4IEBAIHR5 cGVkZWYgc3RydWN0IFBnU3RhdF9UYWJsZUNvdW50cwogCiAJUGdTdGF0X0NvdW50ZXIgYmxv Y2tzX2ZldGNoZWQ7CiAJUGdTdGF0X0NvdW50ZXIgYmxvY2tzX2hpdDsKKwlQZ1N0YXRfQ291 bnRlciByZXZfYWxsX3Zpc2libGVfcGFnZXM7CisJUGdTdGF0X0NvdW50ZXIgcmV2X2FsbF9m cm96ZW5fcGFnZXM7CiB9IFBnU3RhdF9UYWJsZUNvdW50czsKIAogLyogLS0tLS0tLS0tLQpA QCAtMjE3LDcgKzIxOSw3IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9UYWJsZVhhY3RTdGF0 dXMKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICovCiAKLSNkZWZpbmUgUEdTVEFUX0ZJTEVfRk9STUFUX0lECTB4 MDFBNUJDQkIKKyNkZWZpbmUgUEdTVEFUX0ZJTEVfRk9STUFUX0lECTB4MDFBNUJDQkMKIAog dHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X0FyY2hpdmVyU3RhdHMKIHsKQEAgLTQ1MCw2ICs0NTIs OCBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdFRhYkVudHJ5CiAKIAlQZ1N0YXRfQ291 bnRlciBibG9ja3NfZmV0Y2hlZDsKIAlQZ1N0YXRfQ291bnRlciBibG9ja3NfaGl0OworCVBn U3RhdF9Db3VudGVyIHJldl9hbGxfdmlzaWJsZV9wYWdlczsKKwlQZ1N0YXRfQ291bnRlciBy ZXZfYWxsX2Zyb3plbl9wYWdlczsKIAogCVRpbWVzdGFtcFR6IGxhc3RfdmFjdXVtX3RpbWU7 CS8qIHVzZXIgaW5pdGlhdGVkIHZhY3V1bSAqLwogCVBnU3RhdF9Db3VudGVyIHZhY3V1bV9j b3VudDsKQEAgLTcyNSw2ICs3MjksMTcgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9h bmFseXplKFJlbGF0aW9uIHJlbCwKIAkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRp b24ocmVsKSkJCQkJCQlcCiAJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5ibG9ja3Nf aGl0Kys7CQkJCVwKIAl9IHdoaWxlICgwKQorLyogY291bnQgcmV2b2NhdGlvbnMgb2YgYWxs LXZpc2libGUgYW5kIGFsbC1mcm96ZW4gYml0cyBpbiB2aXNpYmlsaXR5IG1hcCAqLworI2Rl ZmluZSBwZ3N0YXRfY291bnRfdm1fcmV2X2FsbF92aXNpYmxlKHJlbCkJCQkJCQlcCisJZG8g ewkJCQkJCQkJCQkJCQkJCVwKKwkJaWYgKHBnc3RhdF9zaG91bGRfY291bnRfcmVsYXRpb24o cmVsKSkJCQkJCQlcCisJCQkocmVsKS0+cGdzdGF0X2luZm8tPmNvdW50cy5yZXZfYWxsX3Zp c2libGVfcGFnZXMrKzsJXAorCX0gd2hpbGUgKDApCisjZGVmaW5lIHBnc3RhdF9jb3VudF92 bV9yZXZfYWxsX2Zyb3plbihyZWwpCQkJCQkJXAorCWRvIHsJCQkJCQkJCQkJCQkJCQlcCisJ CWlmIChwZ3N0YXRfc2hvdWxkX2NvdW50X3JlbGF0aW9uKHJlbCkpCQkJCQkJXAorCQkJKHJl bCktPnBnc3RhdF9pbmZvLT5jb3VudHMucmV2X2FsbF9mcm96ZW5fcGFnZXMrKzsJXAorCX0g d2hpbGUgKDApCiAKIGV4dGVybiB2b2lkIHBnc3RhdF9jb3VudF9oZWFwX2luc2VydChSZWxh dGlvbiByZWwsIFBnU3RhdF9Db3VudGVyIG4pOwogZXh0ZXJuIHZvaWQgcGdzdGF0X2NvdW50 X2hlYXBfdXBkYXRlKFJlbGF0aW9uIHJlbCwgYm9vbCBob3QsIGJvb2wgbmV3cGFnZSk7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IGYzNzNhZDcwNGI2Li40ZmIz MTY3ZTk5YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE4MzQs NiArMTgzNCw4IEBAIHBnX3N0YXRfYWxsX3RhYmxlc3wgU0VMRUNUIGMub2lkIEFTIHJlbGlk LAogICAgIHBnX3N0YXRfZ2V0X2RlYWRfdHVwbGVzKGMub2lkKSBBUyBuX2RlYWRfdHVwLAog ICAgIHBnX3N0YXRfZ2V0X21vZF9zaW5jZV9hbmFseXplKGMub2lkKSBBUyBuX21vZF9zaW5j ZV9hbmFseXplLAogICAgIHBnX3N0YXRfZ2V0X2luc19zaW5jZV92YWN1dW0oYy5vaWQpIEFT IG5faW5zX3NpbmNlX3ZhY3V1bSwKKyAgICBwZ19zdGF0X2dldF9yZXZfYWxsX3Zpc2libGVf cGFnZXMoYy5vaWQpIEFTIHJldl9hbGxfdmlzaWJsZV9wYWdlcywKKyAgICBwZ19zdGF0X2dl dF9yZXZfYWxsX2Zyb3plbl9wYWdlcyhjLm9pZCkgQVMgcmV2X2FsbF9mcm96ZW5fcGFnZXMs CiAgICAgcGdfc3RhdF9nZXRfbGFzdF92YWN1dW1fdGltZShjLm9pZCkgQVMgbGFzdF92YWN1 dW0sCiAgICAgcGdfc3RhdF9nZXRfbGFzdF9hdXRvdmFjdXVtX3RpbWUoYy5vaWQpIEFTIGxh c3RfYXV0b3ZhY3V1bSwKICAgICBwZ19zdGF0X2dldF9sYXN0X2FuYWx5emVfdGltZShjLm9p ZCkgQVMgbGFzdF9hbmFseXplLApAQCAtMjI4NSw2ICsyMjg3LDggQEAgcGdfc3RhdF9zeXNf dGFibGVzfCBTRUxFQ1QgcmVsaWQsCiAgICAgbl9kZWFkX3R1cCwKICAgICBuX21vZF9zaW5j ZV9hbmFseXplLAogICAgIG5faW5zX3NpbmNlX3ZhY3V1bSwKKyAgICByZXZfYWxsX3Zpc2li bGVfcGFnZXMsCisgICAgcmV2X2FsbF9mcm96ZW5fcGFnZXMsCiAgICAgbGFzdF92YWN1dW0s CiAgICAgbGFzdF9hdXRvdmFjdXVtLAogICAgIGxhc3RfYW5hbHl6ZSwKQEAgLTIzNDAsNiAr MjM0NCw4IEBAIHBnX3N0YXRfdXNlcl90YWJsZXN8IFNFTEVDVCByZWxpZCwKICAgICBuX2Rl YWRfdHVwLAogICAgIG5fbW9kX3NpbmNlX2FuYWx5emUsCiAgICAgbl9pbnNfc2luY2VfdmFj dXVtLAorICAgIHJldl9hbGxfdmlzaWJsZV9wYWdlcywKKyAgICByZXZfYWxsX2Zyb3plbl9w YWdlcywKICAgICBsYXN0X3ZhY3V1bSwKICAgICBsYXN0X2F1dG92YWN1dW0sCiAgICAgbGFz dF9hbmFseXplLAotLSAKMi41My4wCgo= --------------nK2LoeFMhxWmgn74CO4l2kGM--