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 1vwU1q-009fqG-0p for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 23:47:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vwU1n-00BgXE-2T for pgsql-hackers@arkaria.postgresql.org; Sat, 28 Feb 2026 23:47:19 +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 1vwU1n-00BgX6-1D for pgsql-hackers@lists.postgresql.org; Sat, 28 Feb 2026 23:47:19 +0000 Received: from mail-qv1-xf32.google.com ([2607:f8b0:4864:20::f32]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vwU1k-00000001nLE-1ZlS for pgsql-hackers@lists.postgresql.org; Sat, 28 Feb 2026 23:47:19 +0000 Received: by mail-qv1-xf32.google.com with SMTP id 6a1803df08f44-899b95707afso46091266d6.3 for ; Sat, 28 Feb 2026 15:47:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772322435; cv=none; d=google.com; s=arc-20240605; b=dMuL0Etu0BghOJ/H/fVju9WPto8jzoWNmLMaWjUlxYOTSHlh6tBRFzRUrNY3ciuX8y Ne1pmnKsAuAbEM7r7MyilOmQKYvenjV32qPMrQ0Q0I+BVH7WtDMWkxsc1zER5CCz3uVk 0ztSAoF2nCtxCacsZH2DbLOvSM+QIgZCq/XVfTc+B08r9NS9qaJwX4dG3w5m3izxUojv egdKD4SmlpPoFpEi9x0frX3kVsNku8r1EmJxaiQ4fcDU70I0OYxY07ZCAjpQhJDxfLvC A1WRqDUuhGMT6BckT6QfSIuiSxWxINQ7YcDTDaCbj9yb1fDHL+gmhRZ0vA08SP13nHoA geHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=tY7XjEu+I0dur8umA0PoO5Pb318KEuoZuCl2wyyBrdk=; fh=dxJXJbLzq9Nah1LUdsj4QTuQ3JoDScd0wp1YHY64NXM=; b=SYbSDfdzW33CipEAYmIA/FUQHww98eDvth6rNh33a1ydBPDwiLIgzOAFhRtN1mBKyo PJTp+vnoWxCWFm44lQV/LPboCHhfORMyVLMQg9gbOIQO3MzZCkjOODDoGXsZXVZxr+fF S0R0ubUgbfMDhvF1T+2LDjK0ka7V2YvQgwxbtP26hP7XciA2in88t6CKmgsC7GtJe/58 bKke8Ln28t8geuEilkz2yuvsdh5SvQYi7CG8o/2zZRZ7/rNBT2gPReuEd60r2JFA7OCk 3hQys2EhbBFZGGzkiXuUSyXgey1YnKFpLNcrVdBkAF198nss+ickwVxRAT9ApSxxytye IFrQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fittl.com; s=google; t=1772322435; x=1772927235; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=tY7XjEu+I0dur8umA0PoO5Pb318KEuoZuCl2wyyBrdk=; b=dPVPDrespcSGCuZ4isL+h4jH2QqkaFt0ROJDtZ0TSTDJl2M8zt038+Pk1QJNeS/28y GwL3G8QPpcU24Ki2nzZZLxuL4lLkB5PkTrbRPpGmhhS3E18osw687Losd3JM613fTfhQ Wvg9vNipwaMyEN11zj4BP28RTF8WpU10Wflxc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772322435; x=1772927235; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tY7XjEu+I0dur8umA0PoO5Pb318KEuoZuCl2wyyBrdk=; b=ArbwEyRt8/z8tOIa4/SytB16apssjHetQ8H3DYYT+7ykwClRFJ9lmesC93Pdv2sBSA eYRVVPvKBHYVxbUE8WhIFV9BZ5aH1RBoq0Kssg/vo1iUTOa5ui2lMKydwiOIkk/Azvk/ Fh4aJGIa79aLDCh3+PnOeOBoR6y8ChcawyZKIufitN1AlRqUXS/PqiiGJyn+v63KsbDw FV7GAMmIAXcP9u8s1LQH4P902Q3oYRnqPFjziGLpYYeh8DFc99a4/2uhWNI9L49GXreD A/MRBLFeCNimh6I6f+WGasSaWoimupcLBjPSXRgAA0leZZhm/4gH2rQVlgnngCGBdTyE eeJg== X-Gm-Message-State: AOJu0YwpEFMfCm+qgh+EYog5t0sioPQrlhcoi4PJtrHKQR51pZ/QiXZi IiwTfAYHt9n4atP70ADEjN7y89vRQsQwT2EPE+qzBi5Ne36nzlXZq8xNerOrH6qIc19qLvjIZq+ cCVtISq7j3XgZB8UyFCMoweeSvny8oEVtlu1i6BLjlMffAogiNMuEcA== X-Gm-Gg: ATEYQzzfW7CvPa6oCWZmiES/iEr/YU6CwMiJIA7uzCu54h+hu7fi8F4X34gqcQtsD0X kzZRxkXqSvl7usirGvhU+gw3iPMVX2J2Dxx6SrGFZygeOcVUYVWjZa1qCbSHR+wO1ifz9tPrwFu d1u33hL7HgiBevsruAGh/wHOg8Vk8WhAqqHSTw3yBdXYxNPi9FMa4PC4ufEHkvDAZLfFhAW7bXk k9b90b6FXZj0TtA9cYKKYhOoCYkFxM6nFCzZmccR4gnRXKqlAk7GPogFXiHUsHogohbZ4rs4nTA +DBjI8HWbxtPvwBEM9Q2qAyFMjORC4fk8aGOGxhG X-Received: by 2002:a05:6214:4b83:b0:899:ea9e:31c5 with SMTP id 6a1803df08f44-899ea9e39d2mr24127686d6.57.1772322435524; Sat, 28 Feb 2026 15:47:15 -0800 (PST) MIME-Version: 1.0 From: Lukas Fittl Date: Sat, 28 Feb 2026 15:46:39 -0800 X-Gm-Features: AaiRm50ZxoKYzUvHr6L6JKnIc7iPOkWaq9NVjxodT4ra1QsaL-PV8MnDf46586k Message-ID: Subject: pg_stat_statements: Add gc_count and query_file_size to pgss_info To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000003297e6064beaf945" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003297e6064beaf945 Content-Type: text/plain; charset="UTF-8" Hi, Over the last weeks we've been fighting again with pg_stat_statements issues, specifically with the issue of having too many unique entries, and the corresponding problem of large query text files and LWLock wait events related to pg_stat_statements. I think we can improve debugging for such situations by adding two more columns to pg_stat_statements_info that expose information already tracked: 1) "gc_count", showing when the pg_stat_statements query garbage collection cycles occur (which can correlate with LWLock:pg_stat_statements) 2) "query_file_size" which tells us the extent of the query text file, so we can fine-tune when we query the texts from pg_stat_statements in monitoring scripts (i.e. query it less frequently if the query text file is very large). I've had a patch to improve this prepared for a previous cycle, but wasn't sure it was still needed because of the discussion re: keeping query texts in shared memory. But since it looks like that won't change for 19 (though I'm hoping to contribute more to improving that in the PG 20 cycle), see attached for consideration. Thanks, Lukas -- Lukas Fittl --0000000000003297e6064beaf945 Content-Type: application/octet-stream; name="v1-0001-pg_stat_statements-Add-gc_count-and-query_file_si.patch" Content-Disposition: attachment; filename="v1-0001-pg_stat_statements-Add-gc_count-and-query_file_si.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm6yyuwp0 RnJvbSA5NjZlZTE1MWNhYjJjZDM1YmY5ZjcwYWI3OTkzMTEwMTBjNmEzMzA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWthcyBGaXR0bCA8bHVrYXNAZml0dGwuY29tPgpEYXRlOiBT YXQsIDI4IEZlYiAyMDI2IDE0OjU2OjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSCB2MV0gcGdfc3Rh dF9zdGF0ZW1lbnRzOiBBZGQgZ2NfY291bnQgYW5kIHF1ZXJ5X2ZpbGVfc2l6ZSB0bwogcGdzc19p bmZvCgpUaGlzIHN1cmZhY2VzIHR3byBpbnRlcm5hbCBtZXRyaWNzIHRvIGVuZC11c2VycyBhbmQg bW9uaXRvcmluZyBzY3JpcHRzCnRoYXQgYWxsb3cgdXNpbmcgcGdfc3RhdF9zdGF0ZW1lbnRzIG1v cmUgZWZmZWN0aXZlbHk6CgpUaGUgImdjX2NvdW50IiBmaWVsZCBjb21wbGVtZW50cyB0aGUgZXhp c3RpbmcgZGVhbGxvY2F0aW9uIGNvdW50ZXIKKCJkZWFsbG9jIiksIGJ1dCBjb3VudHMgdXAgd2hl biB0aGUgYWN0dWFsIHF1ZXJ5IHRleHQgZ2FyYmFnZSBjb2xsZWN0aW9uCm9jY3VycnMsIHdoaWNo IGlzIHdoZW4gdGhlIHBnX3N0YXRfc3RhdGVtZW50cyBMV0xvY2sgaXMgdHlwaWNhbGx5IGhlbGQK dGhlIGxvbmdlc3QsIGFuZCBzaWduaWZpY2FudCBJL08gY2FuIG9jY3VyIGZvciBsYXJnZSBxdWVy eSB0ZXh0IGZpbGVzLgoKVGhlICJxdWVyeV9maWxlX3NpemUiIGZpZWxkIHJldHVybnMgdGhlIGN1 cnJlbnQgc2l6ZSBvZiB0aGUgcXVlcnkgdGV4dApmaWxlLCBhcyB0cmFja2VkIGJ5IHBnX3N0YXRf c3RhdGVtZW50cyBhbHJlYWR5LCB3aXRob3V0IHJlcXVpcmluZyBhIHN0YXQoKQpjYWxsLiBUaGlz IGNhbiBiZSB1c2VmdWwgZm9yIGF1dG9tYXRlZCBjb2xsZWN0aW9uIG9mIHF1ZXJ5IHRleHRzLCB0 bwp0d2VhayBob3cgb2Z0ZW4gdG8gY29sbGVjdCB0aGVtLCBiYXNlZCBvbiB0aGUgcXVlcnkgZmls ZSBzaXplLiBJdCBhbHNvCmhlbHBzIGNvcnJlbGF0ZSB0aGUgYW1vdW50IG9mIEkvTyBwZXJmb3Jt ZWQgd2l0aCB0aGUgYWN0dWFsIGZpbGUgc2l6ZSwKd2hpY2ggY2FuIGJlIHVwIHRvIDJ4IG9mIHRo ZSBzdW0gb2YgdGhlIHF1ZXJ5IHRleHRzIGFjdHVhbGx5IHJldHVybmVkLgoKQnVtcCBwZ19zdGF0 X3N0YXRlbWVudHMgdmVyc2lvbiB0byAxLjE0IGR1ZSB0byB0aGUgYWRkaXRpb24gb2YgdGhlIHR3 bwpuZXcgY29sdW1ucyB0byBwZ19zdGF0X3N0YXRlbWVudHNfaW5mby4KCkF1dGhvcjogTHVrYXMg Rml0dGwgPGx1a2FzQGZpdHRsLmNvbT4KUmV2aWV3ZWQgYnk6CkRpc2N1c3Npb246Ci0tLQogY29u dHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvTWFrZWZpbGUgICAgICAgICAgIHwgIDEgKwogLi4uL2V4 cGVjdGVkL29sZGV4dHZlcnNpb25zLm91dCAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrCiBj b250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9tZXNvbi5idWlsZCAgICAgICAgfCAgMSArCiAuLi4v cGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjEzLS0xLjE0LnNxbCAgICAgICAgfCAyOCArKysrKysrKysr KysrKysrKysrCiAuLi4vcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jICAg fCAxMCArKysrKy0tCiAuLi4vcGdfc3RhdF9zdGF0ZW1lbnRzLmNvbnRyb2wgICAgICAgICAgICAg ICAgfCAgMiArLQogLi4uL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvb2xkZXh0dmVyc2lvbnMuc3Fs IHwgIDQgKysrCiBkb2Mvc3JjL3NnbWwvcGdzdGF0c3RhdGVtZW50cy5zZ21sICAgICAgICAgICAg fCAyMCArKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvcGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjEzLS0xLjE0LnNxbAoKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcGdfc3RhdF9zdGF0ZW1lbnRzL01ha2VmaWxlIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvTWFrZWZpbGUKaW5kZXggYzI3ZTk1MjliYjYuLmQ3MTQyZjcxY2Y3IDEwMDY0NAotLS0gYS9j b250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9NYWtlZmlsZQorKysgYi9jb250cmliL3BnX3N0YXRf c3RhdGVtZW50cy9NYWtlZmlsZQpAQCAtNyw2ICs3LDcgQEAgT0JKUyA9IFwKIAogRVhURU5TSU9O ID0gcGdfc3RhdF9zdGF0ZW1lbnRzCiBEQVRBID0gcGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjQuc3Fs IFwKKwlwZ19zdGF0X3N0YXRlbWVudHMtLTEuMTMtLTEuMTQuc3FsIFwKIAlwZ19zdGF0X3N0YXRl bWVudHMtLTEuMTItLTEuMTMuc3FsIFwKIAlwZ19zdGF0X3N0YXRlbWVudHMtLTEuMTEtLTEuMTIu c3FsIHBnX3N0YXRfc3RhdGVtZW50cy0tMS4xMC0tMS4xMS5zcWwgXAogCXBnX3N0YXRfc3RhdGVt ZW50cy0tMS45LS0xLjEwLnNxbCBwZ19zdGF0X3N0YXRlbWVudHMtLTEuOC0tMS45LnNxbCBcCmRp ZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9vbGRleHR2ZXJz aW9ucy5vdXQgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9vbGRleHR2ZXJz aW9ucy5vdXQKaW5kZXggNzI2MzgzYTk5ZDcuLmI5YzdkZjQ1NzBhIDEwMDY0NAotLS0gYS9jb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9vbGRleHR2ZXJzaW9ucy5vdXQKKysrIGIv Y29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvb2xkZXh0dmVyc2lvbnMub3V0CkBA IC00NzQsNCArNDc0LDE3IEBAIFNFTEVDVCBjb3VudCgqKSA+IDAgQVMgaGFzX2RhdGEgRlJPTSBw Z19zdGF0X3N0YXRlbWVudHM7CiAgdAogKDEgcm93KQogCistLSBOZXcgZnVuY3Rpb25zIGFuZCB2 aWV3cyBmb3IgcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8gaW4gMS4xNAorQWxURVIgRVhURU5TSU9O IHBnX3N0YXRfc3RhdGVtZW50cyBVUERBVEUgVE8gJzEuMTQnOworU0VMRUNUIHBnX2dldF9mdW5j dGlvbmRlZigncGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8nOjpyZWdwcm9jKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfZnVuY3Rpb25kZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHB1YmxpYy5wZ19zdGF0X3N0YXRlbWVudHNfaW5mbyhPVVQgZGVh bGxvYyBiaWdpbnQsIE9VVCBnY19jb3VudCBiaWdpbnQsIE9VVCBxdWVyeV9maWxlX3NpemUgYmln aW50LCBPVVQgc3RhdHNfcmVzZXQgdGltZXN0YW1wIHdpdGggdGltZSB6b25lKSsKKyAgUkVUVVJO UyByZWNvcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgIExBTkdV QUdFIGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICBQQVJB TExFTCBTQUZFIFNUUklDVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBBUyAn JGxpYmRpci9wZ19zdGF0X3N0YXRlbWVudHMnLCAkZnVuY3Rpb24kcGdfc3RhdF9zdGF0ZW1lbnRz X2luZm8kZnVuY3Rpb24kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgCiso MSByb3cpCisKIERST1AgRVhURU5TSU9OIHBnX3N0YXRfc3RhdGVtZW50czsKZGlmZiAtLWdpdCBh L2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL21lc29uLmJ1aWxkIGIvY29udHJpYi9wZ19zdGF0 X3N0YXRlbWVudHMvbWVzb24uYnVpbGQKaW5kZXggOWQ3OGNiODhiN2QuLjc3MTQ4OTQ5YzBkIDEw MDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9tZXNvbi5idWlsZAorKysgYi9j b250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9tZXNvbi5idWlsZApAQCAtMjEsNiArMjEsNyBAQCBj b250cmliX3RhcmdldHMgKz0gcGdfc3RhdF9zdGF0ZW1lbnRzCiBpbnN0YWxsX2RhdGEoCiAgICdw Z19zdGF0X3N0YXRlbWVudHMuY29udHJvbCcsCiAgICdwZ19zdGF0X3N0YXRlbWVudHMtLTEuNC5z cWwnLAorICAncGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjEzLS0xLjE0LnNxbCcsCiAgICdwZ19zdGF0 X3N0YXRlbWVudHMtLTEuMTItLTEuMTMuc3FsJywKICAgJ3BnX3N0YXRfc3RhdGVtZW50cy0tMS4x MS0tMS4xMi5zcWwnLAogICAncGdfc3RhdF9zdGF0ZW1lbnRzLS0xLjEwLS0xLjExLnNxbCcsCmRp ZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMt LTEuMTMtLTEuMTQuc3FsIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0 ZW1lbnRzLS0xLjEzLS0xLjE0LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNjY4N2FlNGUxYzMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX3N0YXRfc3Rh dGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMtLTEuMTMtLTEuMTQuc3FsCkBAIC0wLDAgKzEsMjgg QEAKKy8qIGNvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy0tMS4x My0tMS4xNC5zcWwgKi8KKworLS0gY29tcGxhaW4gaWYgc2NyaXB0IGlzIHNvdXJjZWQgaW4gcHNx bCwgcmF0aGVyIHRoYW4gdmlhIEFMVEVSIEVYVEVOU0lPTgorXGVjaG8gVXNlICJBTFRFUiBFWFRF TlNJT04gcGdfc3RhdF9zdGF0ZW1lbnRzIFVQREFURSBUTyAnMS4xNCciIHRvIGxvYWQgdGhpcyBm aWxlLiBccXVpdAorCisvKiBGaXJzdCB3ZSBoYXZlIHRvIHJlbW92ZSB0aGVtIGZyb20gdGhlIGV4 dGVuc2lvbiAqLworQUxURVIgRVhURU5TSU9OIHBnX3N0YXRfc3RhdGVtZW50cyBEUk9QIFZJRVcg cGdfc3RhdF9zdGF0ZW1lbnRzX2luZm87CitBTFRFUiBFWFRFTlNJT04gcGdfc3RhdF9zdGF0ZW1l bnRzIERST1AgRlVOQ1RJT04gcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8oKTsKKworLyogVGhlbiB3 ZSBjYW4gZHJvcCB0aGVtICovCitEUk9QIFZJRVcgcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm87CitE Uk9QIEZVTkNUSU9OIHBnX3N0YXRfc3RhdGVtZW50c19pbmZvKCk7CisKKy8qIE5vdyByZWRlZmlu ZSAqLworQ1JFQVRFIEZVTkNUSU9OIHBnX3N0YXRfc3RhdGVtZW50c19pbmZvKAorICAgIE9VVCBk ZWFsbG9jIGJpZ2ludCwKKyAgICBPVVQgZ2NfY291bnQgYmlnaW50LAorICAgIE9VVCBxdWVyeV9m aWxlX3NpemUgYmlnaW50LAorICAgIE9VVCBzdGF0c19yZXNldCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUKKykKK1JFVFVSTlMgcmVjb3JkCitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0Ug QyBTVFJJQ1QgVk9MQVRJTEUgUEFSQUxMRUwgU0FGRTsKKworQ1JFQVRFIFZJRVcgcGdfc3RhdF9z dGF0ZW1lbnRzX2luZm8gQVMKKyAgU0VMRUNUICogRlJPTSBwZ19zdGF0X3N0YXRlbWVudHNfaW5m bygpOworCitHUkFOVCBTRUxFQ1QgT04gcGdfc3RhdF9zdGF0ZW1lbnRzX2luZm8gVE8gUFVCTElD OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1l bnRzLmMgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYwpp bmRleCA0YTQyNzUzM2JkOC4uZmNkYTg0N2I0ZGUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3Rh dF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9z dGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jCkBAIC0yMDQ5LDcgKzIwNDksNyBAQCBwZ19z dGF0X3N0YXRlbWVudHNfaW50ZXJuYWwoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sCiB9CiAKIC8q IE51bWJlciBvZiBvdXRwdXQgYXJndW1lbnRzIChjb2x1bW5zKSBmb3IgcGdfc3RhdF9zdGF0ZW1l bnRzX2luZm8gKi8KLSNkZWZpbmUgUEdfU1RBVF9TVEFURU1FTlRTX0lORk9fQ09MUwkyCisjZGVm aW5lIFBHX1NUQVRfU1RBVEVNRU5UU19JTkZPX0NPTFMJNAogCiAvKgogICogUmV0dXJuIHN0YXRp c3RpY3Mgb2YgcGdfc3RhdF9zdGF0ZW1lbnRzLgpAQCAtMjA2MSw2ICsyMDYxLDggQEAgcGdfc3Rh dF9zdGF0ZW1lbnRzX2luZm8oUEdfRlVOQ1RJT05fQVJHUykKIAlUdXBsZURlc2MJdHVwZGVzYzsK IAlEYXR1bQkJdmFsdWVzW1BHX1NUQVRfU1RBVEVNRU5UU19JTkZPX0NPTFNdID0gezB9OwogCWJv b2wJCW51bGxzW1BHX1NUQVRfU1RBVEVNRU5UU19JTkZPX0NPTFNdID0gezB9OworCWludDY0CQln Y19jb3VudCwKKwkJCQlleHRlbnQ7CiAKIAlpZiAoIXBnc3MgfHwgIXBnc3NfaGFzaCkKIAkJZXJl cG9ydChFUlJPUiwKQEAgLTIwNzQsMTAgKzIwNzYsMTQgQEAgcGdfc3RhdF9zdGF0ZW1lbnRzX2lu Zm8oUEdfRlVOQ1RJT05fQVJHUykKIAkvKiBSZWFkIGdsb2JhbCBzdGF0aXN0aWNzIGZvciBwZ19z dGF0X3N0YXRlbWVudHMgKi8KIAlTcGluTG9ja0FjcXVpcmUoJnBnc3MtPm11dGV4KTsKIAlzdGF0 cyA9IHBnc3MtPnN0YXRzOworCWdjX2NvdW50ID0gcGdzcy0+Z2NfY291bnQ7CisJZXh0ZW50ID0g cGdzcy0+ZXh0ZW50OwogCVNwaW5Mb2NrUmVsZWFzZSgmcGdzcy0+bXV0ZXgpOwogCiAJdmFsdWVz WzBdID0gSW50NjRHZXREYXR1bShzdGF0cy5kZWFsbG9jKTsKLQl2YWx1ZXNbMV0gPSBUaW1lc3Rh bXBUekdldERhdHVtKHN0YXRzLnN0YXRzX3Jlc2V0KTsKKwl2YWx1ZXNbMV0gPSBJbnQ2NEdldERh dHVtKGdjX2NvdW50KTsKKwl2YWx1ZXNbMl0gPSBJbnQ2NEdldERhdHVtKGV4dGVudCk7CisJdmFs dWVzWzNdID0gVGltZXN0YW1wVHpHZXREYXR1bShzdGF0cy5zdGF0c19yZXNldCk7CiAKIAlQR19S RVRVUk5fREFUVU0oSGVhcFR1cGxlR2V0RGF0dW0oaGVhcF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZh bHVlcywgbnVsbHMpKSk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50 cy9wZ19zdGF0X3N0YXRlbWVudHMuY29udHJvbCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRz L3BnX3N0YXRfc3RhdGVtZW50cy5jb250cm9sCmluZGV4IDJlZWUwY2VmZmE4Li42MWFlNDFlZmMx NCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1l bnRzLmNvbnRyb2wKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0 ZW1lbnRzLmNvbnRyb2wKQEAgLTEsNSArMSw1IEBACiAjIHBnX3N0YXRfc3RhdGVtZW50cyBleHRl bnNpb24KIGNvbW1lbnQgPSAndHJhY2sgcGxhbm5pbmcgYW5kIGV4ZWN1dGlvbiBzdGF0aXN0aWNz IG9mIGFsbCBTUUwgc3RhdGVtZW50cyBleGVjdXRlZCcKLWRlZmF1bHRfdmVyc2lvbiA9ICcxLjEz JworZGVmYXVsdF92ZXJzaW9uID0gJzEuMTQnCiBtb2R1bGVfcGF0aG5hbWUgPSAnJGxpYmRpci9w Z19zdGF0X3N0YXRlbWVudHMnCiByZWxvY2F0YWJsZSA9IHRydWUKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9vbGRleHR2ZXJzaW9ucy5zcWwgYi9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9zcWwvb2xkZXh0dmVyc2lvbnMuc3FsCmluZGV4IGU0MTZlZmU5ZmZi Li4wZjA1MDE3MzI0OSAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3Fs L29sZGV4dHZlcnNpb25zLnNxbAorKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwv b2xkZXh0dmVyc2lvbnMuc3FsCkBAIC02OCw0ICs2OCw4IEBAIEFsVEVSIEVYVEVOU0lPTiBwZ19z dGF0X3N0YXRlbWVudHMgVVBEQVRFIFRPICcxLjEzJzsKIFxkIHBnX3N0YXRfc3RhdGVtZW50cwog U0VMRUNUIGNvdW50KCopID4gMCBBUyBoYXNfZGF0YSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50czsK IAorLS0gTmV3IGZ1bmN0aW9ucyBhbmQgdmlld3MgZm9yIHBnX3N0YXRfc3RhdGVtZW50c19pbmZv IGluIDEuMTQKK0FsVEVSIEVYVEVOU0lPTiBwZ19zdGF0X3N0YXRlbWVudHMgVVBEQVRFIFRPICcx LjE0JzsKK1NFTEVDVCBwZ19nZXRfZnVuY3Rpb25kZWYoJ3BnX3N0YXRfc3RhdGVtZW50c19pbmZv Jzo6cmVncHJvYyk7CisKIERST1AgRVhURU5TSU9OIHBnX3N0YXRfc3RhdGVtZW50czsKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9wZ3N0YXRzdGF0ZW1lbnRzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cGdzdGF0c3RhdGVtZW50cy5zZ21sCmluZGV4IGQ3NTNkZTU4MzZlLi4xMTI1NmVmOWUzZCAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Bnc3RhdHN0YXRlbWVudHMuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcGdzdGF0c3RhdGVtZW50cy5zZ21sCkBAIC04MDAsNiArODAwLDI2IEBAIGNhbGxzIHwg MgogICAgICAgIDx2YXJuYW1lPnBnX3N0YXRfc3RhdGVtZW50cy5tYXg8L3Zhcm5hbWU+IHdlcmUg b2JzZXJ2ZWQKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmdjX2NvdW50PC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgVG90YWwgbnVtYmVyIG9mIHRpbWVzIHRoZSA8c3RydWN0bmFtZT5wZ19zdGF0X3N0YXRlbWVu dHM8L3N0cnVjdG5hbWU+IHF1ZXJ5IHRleHQKKyAgICAgICBmaWxlIHdhcyByZXdyaXR0ZW4gZm9y IGdhcmJhZ2UgY29sbGVjdGlvbiAoR0MpIHB1cnBvc2VzLiBUaGlzIG1heSBvY2N1ciBhZnRlciBh bgorICAgICAgIGV4cGxpY2l0IGNhbGwgdG8gPGZ1bmN0aW9uPnBnX3N0YXRfc3RhdGVtZW50c19y ZXNldDwvZnVuY3Rpb24+LCBvciB3aGVuIHN1ZmZpY2llbnQKKyAgICAgICBzdGFsZSBxdWVyeSB0 ZXh0cyBoYXZlIGFjY3VtdWxhdGVkIGR1ZSB0byBkZWFsbG9jYXRpb25zLgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+cXVlcnlfZmlsZV9zaXplPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50 PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGN1bXVsYXRp dmUgc2l6ZSAoaW4gYnl0ZXMpIG9mIGFsbCBxdWVyeSB0ZXh0cyBzdG9yZWQgaW4gdGhlCisgICAg ICAgPHN0cnVjdG5hbWU+cGdfc3RhdF9zdGF0ZW1lbnRzPC9zdHJ1Y3RuYW1lPiBxdWVyeSB0ZXh0 IGZpbGUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgIDxyb3c+CiAg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5zdGF0c19yZXNldDwvc3RydWN0Zmll bGQ+IDx0eXBlPnRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZTwvdHlwZT4KLS0gCjIuNDcuMQoK --0000000000003297e6064beaf945--