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.94.2) (envelope-from ) id 1s43gz-000HmA-S2 for pgsql-hackers@arkaria.postgresql.org; Mon, 06 May 2024 19:08:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1s43gw-00FI81-Dp for pgsql-hackers@arkaria.postgresql.org; Mon, 06 May 2024 19:08:03 +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.94.2) (envelope-from ) id 1s43gv-00FI6N-Vl for pgsql-hackers@lists.postgresql.org; Mon, 06 May 2024 19:08:02 +0000 Received: from mail-oo1-xc2b.google.com ([2607:f8b0:4864:20::c2b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1s43gs-001sxe-74 for pgsql-hackers@postgresql.org; Mon, 06 May 2024 19:08:02 +0000 Received: by mail-oo1-xc2b.google.com with SMTP id 006d021491bc7-5b2180a5330so599765eaf.0 for ; Mon, 06 May 2024 12:07:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=neon.tech; s=google; t=1715022475; x=1715627275; darn=postgresql.org; h=from:to:subject:cc:message-id:date:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=0/RqQ8RViBv1A95kedra/qLrHcPT6qDzDqG/m3frSvc=; b=bErZRAlobxr0YTjFvudR58XRJewhdJgG6eUwZkEQg6J7/PUMG+mCU/70arDQtZesZ4 QFZ+q5QlEj2iq44rkzO7X2k9PSXfqUQUsOmFjfNLpt55oxTapkl90EoCnMJoC7TF3yQ8 HS3rL8k9jnSt8oL9A6szcfhzHshw4AREr8mWo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715022475; x=1715627275; h=from:to:subject:cc:message-id:date:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=0/RqQ8RViBv1A95kedra/qLrHcPT6qDzDqG/m3frSvc=; b=ZM1FyrVryi37zGIEAYxaQgqH/X/iTccqW75O1nE2/kiQV/+nQjYRF/a7unYvh09F6t HGW+4PuLdbFsg8JvYb6GRdY5Ti3KrhcCge2OSaooyg7lh1amIdkCX0jxewna59GwSJgq odA9lJmCGDUdavy374XHwEgd2mQJpB7P5cSYaA/3oEPMg2v1tczLxwRiU0wsb2adZCEO nl3RV25iPw5HRA2LNbL9574urSZP04OengSjlAb5guBBGCVRMRmgkuGG4SGHdBpOH71E 6DxToAuPbIkHo+cL2AIeamKGmBkU2PVMeQ8AlEDYWJ0ZKieavznPgVzU2qYTw4bEnbcL idHQ== X-Gm-Message-State: AOJu0YxvFcGhCO+nGZY7l+S30jgL63uAUWW01eVe+YCcSkBvhMwSptAr ds+OkjSW8LdIjUYE1D0J8eiQJJ1AYsRodJydDuNGaw+ww2hsjhq7xyXGS4LW393NmzCJADWYXeY lIlsACA== X-Google-Smtp-Source: AGHT+IF0S18896p3Z7TeMN440uTSV9W9EzSpqgeGyJFxHvJebgq4Wh8ulYiYlvkYFQtVeAxNHBZYzw== X-Received: by 2002:a05:6870:1589:b0:233:5b4d:ff90 with SMTP id j9-20020a056870158900b002335b4dff90mr15586850oab.50.1715022475320; Mon, 06 May 2024 12:07:55 -0700 (PDT) Received: from localhost ([2607:fb90:e690:15c7:3996:e070:71ee:42fb]) by smtp.gmail.com with ESMTPSA id mv2-20020a056871d04200b002399c0f9d5bsm2026494oac.26.2024.05.06.12.07.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 06 May 2024 12:07:54 -0700 (PDT) Content-Type: multipart/mixed; boundary=493d3dae273e9d05bdd71c64fe3a82daebff5cb85e7651774abea29c067e Mime-Version: 1.0 Date: Mon, 06 May 2024 14:07:53 -0500 Message-Id: Cc: "Andres Freund" Subject: Use pgstat_kind_infos to read fixed shared stats structs To: "pgsql-hackers" From: "Tristan Partin" X-Mailer: aerc 0.17.0-122-g7b4c8f67eb5f List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --493d3dae273e9d05bdd71c64fe3a82daebff5cb85e7651774abea29c067e Content-Type: multipart/alternative; boundary=eca4e0f67e46d1e260ff8346337bc4e49258cada7f5650498963f95b7091 --eca4e0f67e46d1e260ff8346337bc4e49258cada7f5650498963f95b7091 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed Instead of needing to be explicit, we can just iterate the pgstat_kind_infos array to find the memory locations to read into. This was originally thought of by Andres in 5891c7a8ed8f2d3d577e7eea34dacff12d7b6bbd. Not a fix, per se, but it does remove a comment. Perhaps the discussion=20 will just lead to someone deleting the comment, and keeping the code=20 as is. Either way, a win :). --=20 Tristan Partin Neon (https://neon.tech) --eca4e0f67e46d1e260ff8346337bc4e49258cada7f5650498963f95b7091-- --493d3dae273e9d05bdd71c64fe3a82daebff5cb85e7651774abea29c067e Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v1-0001-Use-pgstat_kind_infos-to-read-fixed-shared-stats-.patch Content-Type: text/x-patch; charset=utf-8; name=v1-0001-Use-pgstat_kind_infos-to-read-fixed-shared-stats-.patch RnJvbSA1Y2M1YTY3ZWRiZDNkZWUxNDVlYTU4MmMwMjRiNmVlMjA3YWU0MDg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUcmlzdGFuIFBhcnRpbiA8dHJpc3RhbkBuZW9uLnRlY2g+CkRh dGU6IE1vbiwgNiBNYXkgMjAyNCAxMzo1Mjo1OCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIFVz ZSBwZ3N0YXRfa2luZF9pbmZvcyB0byByZWFkIGZpeGVkIHNoYXJlZCBzdGF0cyBzdHJ1Y3RzCgpJ bnN0ZWFkIG9mIG5lZWRpbmcgdG8gYmUgZXhwbGljaXQsIHdlIGNhbiBqdXN0IGl0ZXJhdGUgdGhl CnBnc3RhdF9raW5kX2luZm9zIGFycmF5IHRvIGZpbmQgdGhlIG1lbW9yeSBsb2NhdGlvbnMgdG8g cmVhZCBpbnRvLgoKVGhpcyB3YXMgb3JpZ2luYWxseSB0aG91Z2h0IG9mIGJ5IEFuZHJlcyBpbgo1 ODkxYzdhOGVkOGYyZDNkNTc3ZTdlZWEzNGRhY2ZmMTJkN2I2YmJkLgotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jIHwgNzUgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0KIHNyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oIHwgIDYgKysrCiAyIGZpbGVz IGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCAu L3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jIGluY29taW5nL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCmluZGV4IGRjYzJhZDhkOTU0Li44MWUzZDcwMmNjZCAx MDA2NDQKLS0tIC4vc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0LmMKKysrIGluY29t aW5nL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdC5jCkBAIC0zNDIsNiArMzQyLDEw IEBAIHN0YXRpYyBjb25zdCBQZ1N0YXRfS2luZEluZm8gcGdzdGF0X2tpbmRfaW5mb3NbUEdTVEFU X05VTV9LSU5EU10gPSB7CiAKIAkJLmZpeGVkX2Ftb3VudCA9IHRydWUsCiAKKwkJLnNoYXJlZF9j dGxfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0X1NobWVtQ29udHJvbCwgYXJjaGl2ZXIpLAorCQkuc2hh cmVkX2RhdGFfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0U2hhcmVkX0FyY2hpdmVyLCBzdGF0cyksCisJ CS5zaGFyZWRfZGF0YV9sZW4gPSBzaXplb2YoKChQZ1N0YXRTaGFyZWRfQXJjaGl2ZXIgKikgMCkt PnN0YXRzKSwKKwogCQkucmVzZXRfYWxsX2NiID0gcGdzdGF0X2FyY2hpdmVyX3Jlc2V0X2FsbF9j YiwKIAkJLnNuYXBzaG90X2NiID0gcGdzdGF0X2FyY2hpdmVyX3NuYXBzaG90X2NiLAogCX0sCkBA IC0zNTEsNiArMzU1LDEwIEBAIHN0YXRpYyBjb25zdCBQZ1N0YXRfS2luZEluZm8gcGdzdGF0X2tp bmRfaW5mb3NbUEdTVEFUX05VTV9LSU5EU10gPSB7CiAKIAkJLmZpeGVkX2Ftb3VudCA9IHRydWUs CiAKKwkJLnNoYXJlZF9jdGxfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0X1NobWVtQ29udHJvbCwgYmd3 cml0ZXIpLAorCQkuc2hhcmVkX2RhdGFfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0U2hhcmVkX0JnV3Jp dGVyLCBzdGF0cyksCisJCS5zaGFyZWRfZGF0YV9sZW4gPSBzaXplb2YoKChQZ1N0YXRTaGFyZWRf QmdXcml0ZXIgKikgMCktPnN0YXRzKSwKKwogCQkucmVzZXRfYWxsX2NiID0gcGdzdGF0X2Jnd3Jp dGVyX3Jlc2V0X2FsbF9jYiwKIAkJLnNuYXBzaG90X2NiID0gcGdzdGF0X2Jnd3JpdGVyX3NuYXBz aG90X2NiLAogCX0sCkBAIC0zNjAsNiArMzY4LDEwIEBAIHN0YXRpYyBjb25zdCBQZ1N0YXRfS2lu ZEluZm8gcGdzdGF0X2tpbmRfaW5mb3NbUEdTVEFUX05VTV9LSU5EU10gPSB7CiAKIAkJLmZpeGVk X2Ftb3VudCA9IHRydWUsCiAKKwkJLnNoYXJlZF9jdGxfb2ZmID0gb2Zmc2V0b2YoUGdTdGF0X1No bWVtQ29udHJvbCwgY2hlY2twb2ludGVyKSwKKwkJLnNoYXJlZF9kYXRhX29mZiA9IG9mZnNldG9m KFBnU3RhdFNoYXJlZF9DaGVja3BvaW50ZXIsIHN0YXRzKSwKKwkJLnNoYXJlZF9kYXRhX2xlbiA9 IHNpemVvZigoKFBnU3RhdFNoYXJlZF9DaGVja3BvaW50ZXIgKikgMCktPnN0YXRzKSwKKwogCQku cmVzZXRfYWxsX2NiID0gcGdzdGF0X2NoZWNrcG9pbnRlcl9yZXNldF9hbGxfY2IsCiAJCS5zbmFw c2hvdF9jYiA9IHBnc3RhdF9jaGVja3BvaW50ZXJfc25hcHNob3RfY2IsCiAJfSwKQEAgLTM2OSw2 ICszODEsMTAgQEAgc3RhdGljIGNvbnN0IFBnU3RhdF9LaW5kSW5mbyBwZ3N0YXRfa2luZF9pbmZv c1tQR1NUQVRfTlVNX0tJTkRTXSA9IHsKIAogCQkuZml4ZWRfYW1vdW50ID0gdHJ1ZSwKIAorCQku c2hhcmVkX2N0bF9vZmYgPSBvZmZzZXRvZihQZ1N0YXRfU2htZW1Db250cm9sLCBpbyksCisJCS5z aGFyZWRfZGF0YV9vZmYgPSBvZmZzZXRvZihQZ1N0YXRTaGFyZWRfSU8sIHN0YXRzKSwKKwkJLnNo YXJlZF9kYXRhX2xlbiA9IHNpemVvZigoKFBnU3RhdFNoYXJlZF9JTyAqKSAwKS0+c3RhdHMpLAor CiAJCS5yZXNldF9hbGxfY2IgPSBwZ3N0YXRfaW9fcmVzZXRfYWxsX2NiLAogCQkuc25hcHNob3Rf Y2IgPSBwZ3N0YXRfaW9fc25hcHNob3RfY2IsCiAJfSwKQEAgLTM3OCw2ICszOTQsMTAgQEAgc3Rh dGljIGNvbnN0IFBnU3RhdF9LaW5kSW5mbyBwZ3N0YXRfa2luZF9pbmZvc1tQR1NUQVRfTlVNX0tJ TkRTXSA9IHsKIAogCQkuZml4ZWRfYW1vdW50ID0gdHJ1ZSwKIAorCQkuc2hhcmVkX2N0bF9vZmYg PSBvZmZzZXRvZihQZ1N0YXRfU2htZW1Db250cm9sLCBzbHJ1KSwKKwkJLnNoYXJlZF9kYXRhX29m ZiA9IG9mZnNldG9mKFBnU3RhdFNoYXJlZF9TTFJVLCBzdGF0cyksCisJCS5zaGFyZWRfZGF0YV9s ZW4gPSBzaXplb2YoKChQZ1N0YXRTaGFyZWRfU0xSVSAqKSAwKS0+c3RhdHMpLAorCiAJCS5yZXNl dF9hbGxfY2IgPSBwZ3N0YXRfc2xydV9yZXNldF9hbGxfY2IsCiAJCS5zbmFwc2hvdF9jYiA9IHBn c3RhdF9zbHJ1X3NuYXBzaG90X2NiLAogCX0sCkBAIC0zODcsNiArNDA3LDEwIEBAIHN0YXRpYyBj b25zdCBQZ1N0YXRfS2luZEluZm8gcGdzdGF0X2tpbmRfaW5mb3NbUEdTVEFUX05VTV9LSU5EU10g PSB7CiAKIAkJLmZpeGVkX2Ftb3VudCA9IHRydWUsCiAKKwkJLnNoYXJlZF9jdGxfb2ZmID0gb2Zm c2V0b2YoUGdTdGF0X1NobWVtQ29udHJvbCwgd2FsKSwKKwkJLnNoYXJlZF9kYXRhX29mZiA9IG9m ZnNldG9mKFBnU3RhdFNoYXJlZF9XYWwsIHN0YXRzKSwKKwkJLnNoYXJlZF9kYXRhX2xlbiA9IHNp emVvZigoKFBnU3RhdFNoYXJlZF9XYWwgKikgMCktPnN0YXRzKSwKKwogCQkucmVzZXRfYWxsX2Ni ID0gcGdzdGF0X3dhbF9yZXNldF9hbGxfY2IsCiAJCS5zbmFwc2hvdF9jYiA9IHBnc3RhdF93YWxf c25hcHNob3RfY2IsCiAJfSwKQEAgLTE1MjAsNDcgKzE1NDQsMjAgQEAgcGdzdGF0X3JlYWRfc3Rh dHNmaWxlKHZvaWQpCiAJCWZvcm1hdF9pZCAhPSBQR1NUQVRfRklMRV9GT1JNQVRfSUQpCiAJCWdv dG8gZXJyb3I7CiAKLQkvKgotCSAqIFhYWDogVGhlIGZvbGxvd2luZyBjb3VsZCBub3cgYmUgZ2Vu ZXJhbGl6ZWQgdG8ganVzdCBpdGVyYXRlIG92ZXIKLQkgKiBwZ3N0YXRfa2luZF9pbmZvcyBpbnN0 ZWFkIG9mIGtub3dpbmcgYWJvdXQgdGhlIGRpZmZlcmVudCBraW5kcyBvZgotCSAqIHN0YXRzLgot CSAqLworCS8qIFJlYWQgdmFyaW91cyBzdGF0cyBzdHJ1Y3RzICovCisJZm9yIChQZ1N0YXRfS2lu ZCBraW5kID0gUEdTVEFUX0tJTkRfRklSU1RfVkFMSUQ7IGtpbmQgPCBQR1NUQVRfTlVNX0tJTkRT OyArK2tpbmQpCisJeworCQljaGFyCSAgICpwdHI7CisJCWNvbnN0IFBnU3RhdF9LaW5kSW5mbyAq aW5mbzsKIAotCS8qCi0JICogUmVhZCBhcmNoaXZlciBzdGF0cyBzdHJ1Y3QKLQkgKi8KLQlpZiAo IXJlYWRfY2h1bmtfcyhmcGluLCAmc2htZW0tPmFyY2hpdmVyLnN0YXRzKSkKLQkJZ290byBlcnJv cjsKKwkJaW5mbyA9IHBnc3RhdF9raW5kX2luZm9zICsga2luZDsKKwkJaWYgKCFpbmZvLT5maXhl ZF9hbW91bnQpCisJCQljb250aW51ZTsKIAotCS8qCi0JICogUmVhZCBiZ3dyaXRlciBzdGF0cyBz dHJ1Y3QKLQkgKi8KLQlpZiAoIXJlYWRfY2h1bmtfcyhmcGluLCAmc2htZW0tPmJnd3JpdGVyLnN0 YXRzKSkKLQkJZ290byBlcnJvcjsKLQotCS8qCi0JICogUmVhZCBjaGVja3BvaW50ZXIgc3RhdHMg c3RydWN0Ci0JICovCi0JaWYgKCFyZWFkX2NodW5rX3MoZnBpbiwgJnNobWVtLT5jaGVja3BvaW50 ZXIuc3RhdHMpKQotCQlnb3RvIGVycm9yOwotCi0JLyoKLQkgKiBSZWFkIElPIHN0YXRzIHN0cnVj dAotCSAqLwotCWlmICghcmVhZF9jaHVua19zKGZwaW4sICZzaG1lbS0+aW8uc3RhdHMpKQotCQln b3RvIGVycm9yOwotCi0JLyoKLQkgKiBSZWFkIFNMUlUgc3RhdHMgc3RydWN0Ci0JICovCi0JaWYg KCFyZWFkX2NodW5rX3MoZnBpbiwgJnNobWVtLT5zbHJ1LnN0YXRzKSkKLQkJZ290byBlcnJvcjsK LQotCS8qCi0JICogUmVhZCBXQUwgc3RhdHMgc3RydWN0Ci0JICovCi0JaWYgKCFyZWFkX2NodW5r X3MoZnBpbiwgJnNobWVtLT53YWwuc3RhdHMpKQotCQlnb3RvIGVycm9yOworCQlwdHIgPSAoKGNo YXIgKikgc2htZW0pICsgaW5mby0+c2hhcmVkX2N0bF9vZmYgKyBpbmZvLT5zaGFyZWRfZGF0YV9v ZmY7CisJCWlmICghcmVhZF9jaHVuayhmcGluLCBwdHIsIGluZm8tPnNoYXJlZF9kYXRhX2xlbikp CisJCQlnb3RvIGVycm9yOworCX0KIAogCS8qCiAJICogV2UgZm91bmQgYW4gZXhpc3Rpbmcgc3Rh dGlzdGljcyBmaWxlLiBSZWFkIGl0IGFuZCBwdXQgYWxsIHRoZSBoYXNoCmRpZmYgLS1naXQgLi9z cmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaCBpbmNvbWluZy9zcmMvaW5jbHVkZS91 dGlscy9wZ3N0YXRfaW50ZXJuYWwuaAppbmRleCBkYmJjYTMxNjAyNS4uMjQwYzQ3NDgwNDAgMTAw NjQ0Ci0tLSAuL3NyYy9pbmNsdWRlL3V0aWxzL3Bnc3RhdF9pbnRlcm5hbC5oCisrKyBpbmNvbWlu Zy9zcmMvaW5jbHVkZS91dGlscy9wZ3N0YXRfaW50ZXJuYWwuaApAQCAtMTk5LDYgKzE5OSwxMiBA QCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfS2luZEluZm8KIAkgKi8KIAlib29sCQluYW1lZF9vbl9k aXNrOjE7CiAKKwkvKgorCSAqIFRoZSBvZmZzZXQgb2YgdGhlIHN0cnVjdCBpbiB0aGUgY29udGFp bmluZyBzaGFyZWQgbWVtb3J5IGNvbnRyb2wKKwkgKiBzdHJ1Y3R1cmUuCisJICovCisJdWludDMy CQlzaGFyZWRfY3RsX29mZjsKKwogCS8qCiAJICogVGhlIHNpemUgb2YgYW4gZW50cnkgaW4gdGhl IHNoYXJlZCBzdGF0cyBoYXNoIHRhYmxlIChwb2ludGVkIHRvIGJ5CiAJICogUGdTdGF0U2hhcmVk X0hhc2hFbnRyeS0+Ym9keSkuCi0tIApUcmlzdGFuIFBhcnRpbgpOZW9uIChodHRwczovL25lb24u dGVjaCkKCg== --493d3dae273e9d05bdd71c64fe3a82daebff5cb85e7651774abea29c067e--