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 1wpCRT-001V3E-1V for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Jul 2026 22:07:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wpCRR-008IJ4-04 for pgsql-hackers@arkaria.postgresql.org; Wed, 29 Jul 2026 22:07:57 +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 1wpCRP-008IIv-38 for pgsql-hackers@lists.postgresql.org; Wed, 29 Jul 2026 22:07:56 +0000 Received: from fhigh-b5-smtp.messagingengine.com ([202.12.124.156]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wpCRM-00000000zsl-3Y5U for pgsql-hackers@postgresql.org; Wed, 29 Jul 2026 22:07:55 +0000 Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfhigh.stl.internal (Postfix) with ESMTP id 6473D7A03EA for ; Wed, 29 Jul 2026 18:07:49 -0400 (EDT) Received: from phl-imap-15 ([10.202.2.104]) by phl-compute-05.internal (MEProxy); Wed, 29 Jul 2026 18:07:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=partin.io; h=cc :content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm3; t=1785362869; x=1785449269; bh=O7o04iDmUMAQmTvfh8InBdAeRR7fBk+M xggRLwerKAI=; b=CAYAotue0ZkF9+kX+exPEetGxLP9IBqcxo6Zpakmqz7fZ2M2 2zhdhxSaUuNxlRo0L7JOejMx2BTEiQ3c14hVdX5vBCQYJpzhPB+4aqt/YzenOmpZ vvDRtMTQNCDRqibdItMpDkeEafHT+4glVvlcUvT7Kk49DFPc9rYuL4eUOZxlStuM lYwK7wYsylwH7Ii4k0apbu8etgD91zAKwVZLL/RAwdoybMuENziaYq+0zobQHan3 IEraVAkmZkGg77cCOQRWNxBrfACWUHvzqU9w+DUmjHE4lM+9Yk4tkLf2m7mHRY3v 00F0O42qPIYiRKqz+avoSRLDFva5rUBS5tIcuA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1785362869; x= 1785449269; bh=O7o04iDmUMAQmTvfh8InBdAeRR7fBk+MxggRLwerKAI=; b=Y 7zsqDfnubgY1RO/KxQrUFpmqSq1JFq2hlbcfJXtZ/M2RRRY9gfOCvzWbY6XzKql6 95arI4Hl9yX09Q8P+KLNlEmfHUOBi9Gawo0HQOZZZCFbjZzWr+LUdDYvj5wjlibG Q+CGqkXfVuUB0cEIq2iLwuFNTP47bop9PAUVQwPUXHqJ5+uFrmf2bOk9KXPQk3LF mQlXxqRhQPOls7hAFxMh9h3VRX7iCqGVRvEUEBoh1Fgsu+4MEFOxZg3TQvwglKV0 1JlVnXDPK3+gA3n+ClBSJuifwVoUuwJYNRHycwYoVKPNfkn0IeRAfwTMprI/ssd1 /Cek3XT6wbwUSPFBemzVg== X-ME-Sender: X-ME-Proxy-Cause: dmFkZTEp/zFjFcIPH8+yA4FLurLE3PWBf83n0HwXjx6pI7QjXI2VyKDcK21ERTCggcAZkA h5W3bzHc+5GcIMZ+otx6bE7lpB+/7lqZs9DTwhYqGXMD0r7SaxQH0f5YRGTXz3cZEBZoBp jgKmu2B9SzvbzTbzdVYWvvTXrVwFEgrW1HXYWIUvib7AcSnoLDwRQFO3I3YuFtBUhQamPV vXMbTSUoo7TiljANhuQJLTT5aKcIQvpNaK+Kfh/EArzEl4vuzxq5HwX4cZ215VDekRr+ik rWJ+JvUtv3jBNDxF2uVWZfJdn8tPmqJaZGjsIwdfJGzVcbVsjw8HEZA49zWOGi1N0ch3lY L2vm46QNHWLj2DLhQjLPApFKPfelcXncywLZn22GpYus65v6q2m1ozYYl0ZusUEbm1Wdwf ED30weJVGtvWjej2XIw4mhAPrMNZ8cpPqLBzI2UYL4MP0QP5m9KwoUdjv5hFSUZDFhMWJa EkXQoxol8xbxBp/jGP4ixPkuD51utd/BEpoPboPO1v3louEDpaSynie+vpKysFWyRE96Q/ QPTx3InPchRnpB2zjokj0UfTrztVCkhCa3G0KI40/7NIBfcO9jeGU85snboN80f/QRnrgd B+VskfNpBYlnhlbvOcnolbuCEHt8zSQdP23Y+NwFDKQd2HxHcx81IUvxBiOQ X-ME-Proxy: Feedback-ID: idd01497b:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id D94AA780070; Wed, 29 Jul 2026 18:07:48 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface Content-Type: multipart/mixed; boundary=bef22cc33ac1c11ff670e05d93dcf69676cf2ec87957399a57cb1291ae16 Mime-Version: 1.0 Date: Wed, 29 Jul 2026 22:07:48 +0000 Message-Id: Subject: Add counted_by attribute To: "pgsql-hackers" From: "Tristan Partin" X-Mailer: aerc 0.21.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --bef22cc33ac1c11ff670e05d93dcf69676cf2ec87957399a57cb1291ae16 Content-Type: multipart/alternative; boundary=7f0395fd9456a5e75bbc9f6626c52eda75f1ccdb1f6242b296afa984fe1a --7f0395fd9456a5e75bbc9f6626c52eda75f1ccdb1f6242b296afa984fe1a Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 The counted_by[0] compiler attribute is fairly new. It was added in GCC=20 15 and Clang 18. It has been used fairly extensively in the Linux=20 kernel[0]. To summarize the benefits of the attribute: - Runtime bounds checking with -DFORTIFY_SOURCE=3D3 and -fsanitize-bounds - Accurate reporting of __builtin_dynamic_object_size() While we don't use __builtin_dynamic_object_size(), I think the runtime=20 bounds checking improvements are easily worth the little bit of effort=20 to add the attribute in various locations and review the code. I think=20 it will improve things for buildfarm animals using ASan due to expanded=20 coverage. Adding this attribute to the codebase was previously proposed back in=20 2024[1], but the thread never got any traction. I figured that I would=20 try again, but bring some patches this time. I figured that I would=20 start small, and then after people agree that it has value, I can look=20 into adding the attribute in many more places. [0]: https://gcc.gnu.org/onlinedocs/gcc/Common-Attributes.html#index-counte= d_005fby [1]: https://people.kernel.org/gustavoars/how-to-use-the-new-counted_by-att= ribute-in-c-and-linux [2]: https://www.postgresql.org/message-id/ME3P282MB3166210CDE36BD485B703BF= 6B6C82@ME3P282MB3166.AUSP282.PROD.OUTLOOK.COM --=20 Tristan Partin PostgreSQL Contributors Team AWS (https://aws.amazon.com) --7f0395fd9456a5e75bbc9f6626c52eda75f1ccdb1f6242b296afa984fe1a-- --bef22cc33ac1c11ff670e05d93dcf69676cf2ec87957399a57cb1291ae16 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v1-0001-Add-pg_attribute_counted_by.patch Content-Type: text/x-patch; charset=utf-8; name=v1-0001-Add-pg_attribute_counted_by.patch RnJvbSAyN2NjN2M1N2JiMjExYjc0YmJjZjBkMmYyYmI2NjE4YTc1OWI3NWRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUcmlzdGFuIFBhcnRpbiA8dHJpc3RhbkBwYXJ0aW4uaW8+CkRh dGU6IFdlZCwgMjkgSnVsIDIwMjYgMTk6Mzg6MzkgKzAwMDAKU3ViamVjdDogW1BBVENIIHYxIDEv Ml0gQWRkIHBnX2F0dHJpYnV0ZV9jb3VudGVkX2J5KCkKClRoZSBjb3VudGVkX2J5IGF0dHJpYnV0 ZSBhbGxvd3Mgc3BlY2lmeWluZyB0aGF0IGFuIGFycmF5IG1lbWJlciAocG9pbnRlcgpvciBmbGV4 aWJsZSBhcnJheSkgb2YgYSBzdHJ1Y3QgaXMgImNvdW50ZWQgYnkiIGFub3RoZXIgbWVtYmVyIG9m IHRoZQpzYW1lIHN0cnVjdC4gTm90IG9ubHkgZG9lcyB0aGlzIGF0dHJpYnV0ZSBtYWtlIGFycmF5 cyBhIGxpdHRsZSBtb3JlCnNlbGYtZG9jdW1lbnRpbmcsIGJ1dCBpdCBpcyBhbHNvIGEgaGludCB0 byB0aGUgY29tcGlsZXIgdGhhdCBjYW4gaW1wcm92ZQpkZXRlY3Rpb24gb2Ygb2JqZWN0IHNpemUg aW5mb3JtYXRpb24gYW5kIHByb3ZpZGUgYmV0dGVyIHJlc3VsdHMgaW4KY29tcGlsZSB0aW1lIGRp YWdub3N0aWNzIGFuZCBydW50aW1lIGZlYXR1cmVzIGxpa2UgdGhlIGFycmF5IGJvdW5kCnNhbml0 aXplci4KClNpZ25lZC1vZmYtYnk6IFRyaXN0YW4gUGFydGluIDx0cmlzdGFuQHBhcnRpbi5pbz4K LS0tCiBzcmMvaW5jbHVkZS9jLmggfCAxMiArKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3JjL2luY2x1 ZGUvYy5oCmluZGV4IDIwY2ZiYWM1NGU3Li5lODNjMWUzOTFhNyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2MuaApAQCAtMjk3LDYgKzI5NywxOCBAQCBleHRl cm4gIkMrKyIKICNkZWZpbmUgcGdfYXR0cmlidXRlX3RhcmdldCguLi4pCiAjZW5kaWYKIAorLyoK KyAqIHBnX2F0dHJpYnV0ZV9jb3VudGVkX2J5IGFsbG93cyBzcGVjaWZ5aW5nIHRoYXQgYW4gYXJy YXkgaXMgImNvdW50ZWQgYnkiCisgKiBhbm90aGVyIHN0cnVjdCBtZW1iZXIuIFRoaXMgcHJvdmlk ZXMgdGhlIGNvbXBpbGVyIHRvIGltcHJvdmUgZGV0ZWN0aW9uIG9mCisgKiBvYmplY3Qgc2l6ZSBp bmZvcm1hdGlvbiBhbmQgcHJvdmlkZSBiZXR0ZXIgcmVzdWx0cyBpbiBjb21waWxlIHRpbWUKKyAq IGRpYWdub3N0aWNzIGFuZCBydW50aW1lIGZlYXR1cmVzIGxpa2UgdGhlIGFycmF5IGJvdW5kIHNh bml0aXplci4KKyAqLworI2lmIF9faGFzX2F0dHJpYnV0ZSAoY291bnRlZF9ieSkKKyNkZWZpbmUg cGdfYXR0cmlidXRlX2NvdW50ZWRfYnkoLi4uKSBfX2F0dHJpYnV0ZV9fKChjb3VudGVkX2J5KF9f VkFfQVJHU19fKSkpCisjZWxzZQorI2RlZmluZSBwZ19hdHRyaWJ1dGVfY291bnRlZF9ieSguLi4p CisjZW5kaWYKKwogLyoKICAqIEFwcGVuZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFkgdG8gZGVm aW5pdGlvbnMgb2YgdmFyaWFibGVzIHRoYXQgYXJlIG9ubHkKICAqIHVzZWQgaW4gYXNzZXJ0LWVu YWJsZWQgYnVpbGRzLCB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCB1bnVzZWQKLS0g ClRyaXN0YW4gUGFydGluCmh0dHBzOi8vdHJpc3Rhbi5wYXJ0aW4uaW8KCg== --bef22cc33ac1c11ff670e05d93dcf69676cf2ec87957399a57cb1291ae16 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v1-0002-Make-use-of-counted_by-attribute.patch Content-Type: text/x-patch; charset=utf-8; name=v1-0002-Make-use-of-counted_by-attribute.patch RnJvbSBkZWM3NDQzMDQ4MDMzY2M2MjBiOWM1YTRmODRlNGQ0M2U5MGYwZjE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUcmlzdGFuIFBhcnRpbiA8dHJpc3RhbkBwYXJ0aW4uaW8+CkRh dGU6IFdlZCwgMjkgSnVsIDIwMjYgMjE6MTI6MTAgKzAwMDAKU3ViamVjdDogW1BBVENIIHYxIDIv Ml0gTWFrZSB1c2Ugb2YgY291bnRlZF9ieSBhdHRyaWJ1dGUKClRoZXNlIGFyZSB0d28gdHJpdmlh bCBjaGFuZ2VzIHRoYXQgc2hvdyBob3cgcGdfYXR0cmlidXRlX2NvdW50ZWRfYnkgY2FuCmJlIHVz ZWQgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuCgpTaWduZWQtb2ZmLWJ5OiBUcmlzdGFuIFBhcnRp biA8dHJpc3RhbkBwYXJ0aW4uaW8+Ci0tLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2J1ZmZp bGUuYyB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0LmMgfCAyICstCiAy IGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2ZpbGUvYnVmZmlsZS5jIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9maWxlL2J1ZmZpbGUuYwppbmRleCA1YzU5OTEzNjQ2Yi4uNjQ5ZDIxNDIwYTIgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9idWZmaWxlLmMKKysrIGIvc3JjL2JhY2tl bmQvc3RvcmFnZS9maWxlL2J1ZmZpbGUuYwpAQCAtNzIsNyArNzIsNyBAQCBzdHJ1Y3QgQnVmRmls ZQogewogCWludAkJCW51bUZpbGVzOwkJLyogbnVtYmVyIG9mIHBoeXNpY2FsIGZpbGVzIGluIHNl dCAqLwogCS8qIGFsbCBmaWxlcyBleGNlcHQgdGhlIGxhc3QgaGF2ZSBsZW5ndGggZXhhY3RseSBN QVhfUEhZU0lDQUxfRklMRVNJWkUgKi8KLQlGaWxlCSAgICpmaWxlczsJCQkvKiBwYWxsb2MnZCBh cnJheSB3aXRoIG51bUZpbGVzIGVudHJpZXMgKi8KKwlGaWxlCSAgICpmaWxlcyBwZ19hdHRyaWJ1 dGVfY291bnRlZF9ieShudW1GaWxlcyk7CS8qIHBhbGxvYydkIGFycmF5IHdpdGggbnVtRmlsZXMg ZW50cmllcyAqLwogCiAJYm9vbAkJaXNJbnRlclhhY3Q7CS8qIGtlZXAgb3BlbiBvdmVyIHRyYW5z YWN0aW9ucz8gKi8KIAlib29sCQlkaXJ0eTsJCQkvKiBkb2VzIGJ1ZmZlciBuZWVkIHRvIGJlIHdy aXR0ZW4/ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29ydC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYwppbmRleCBjMGU3NTI3YjljYS4u NDk4NjgwNzFjNjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0 LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYwpAQCAtMzY0LDcgKzM2 NCw3IEBAIHN0cnVjdCBTaGFyZWRzb3J0CiAJICogVGFwZXMgYXJyYXkgdXNlZCBieSB3b3JrZXJz IHRvIHJlcG9ydCBiYWNrIGluZm9ybWF0aW9uIG5lZWRlZCBieSB0aGUKIAkgKiBsZWFkZXIgdG8g Y29uY2F0ZW5hdGUgYWxsIHdvcmtlciB0YXBlcyBpbnRvIG9uZSBmb3IgbWVyZ2luZwogCSAqLwot CVRhcGVTaGFyZQl0YXBlc1tGTEVYSUJMRV9BUlJBWV9NRU1CRVJdOworCVRhcGVTaGFyZQl0YXBl c1tGTEVYSUJMRV9BUlJBWV9NRU1CRVJdIHBnX2F0dHJpYnV0ZV9jb3VudGVkX2J5KG5UYXBlcyk7 CiB9OwogCiAvKgotLSAKVHJpc3RhbiBQYXJ0aW4KaHR0cHM6Ly90cmlzdGFuLnBhcnRpbi5pbwoK --bef22cc33ac1c11ff670e05d93dcf69676cf2ec87957399a57cb1291ae16--