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 1wU2Pz-000uNY-0e for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Jun 2026 13:10: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 1wU2Py-00A8D0-0Q for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Jun 2026 13:10:58 +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 1wU2Px-00A8Cr-2h for pgsql-hackers@lists.postgresql.org; Mon, 01 Jun 2026 13:10:57 +0000 Received: from mail-yx1-xb12c.google.com ([2607:f8b0:4864:20::b12c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wU2Pv-00000000f10-2ZHn for pgsql-hackers@lists.postgresql.org; Mon, 01 Jun 2026 13:10:57 +0000 Received: by mail-yx1-xb12c.google.com with SMTP id 956f58d0204a3-6606678420bso1537319d50.1 for ; Mon, 01 Jun 2026 06:10:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780319454; cv=none; d=google.com; s=arc-20240605; b=gT3aLFJaTvcEGISc71skop9QaEOBJ/zEOJ8VswzVcs/cj2iRQTPWxqBv0unQ6WdMpo Ee6KqgA7UDD4GzHU+s+pkF+S2ppAtdeQMDinxKU+W/pvVIUd8SSOlogf3CjJOUCVNQvS /MzEBM24/YOWdc7zON78G9hJSo3cVhhA5AKcZ+6wJIMhXP/JQh4YDE8bWu141Lt4YXP/ lD37g55TAsT7WYG7melHwOGonfigquIvsXvZWb22LxZcan11FT0jS4SlamBGAEeKwiVg U0gC0E2Jt3KH4YJYAQWGJ2KP+jIIz+zVQvI+Xian63+JgXn7qmqtleCRj3qsYjyE1gxH lRUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=NDkHx1/goH3UhisK6AJbB0PeBMJj22OXqQMBQeXlU7U=; fh=TMionsg0bhah9OVyZV3Q56EdmlcPhqO2FlHbCT7OMjE=; b=kk9Gz74MGxcmOvtXKV9SEeL9BDP8RtsmuGQKzN1xJnDZhk4d08HpHdOX0a9EEwSQxy FfxRaSvZ1ft5PhH/nrv4188Gu2B8OHS11ITus2OrLdABibAfttQ+BxT/pMBP1RsSuuKs E/WlQSflaAaKvY4BNIwpXs94zbczfsD3VXF2pwGfNK2sSc1ChfzPs6wJzNBKnhWoZnAw euQZIgJ5L8NRxorhT7VXIl5f6UMupavkdmg9oZh8JsgR4YPTMTQTxSTCn+LKNk5Q/YWb RWSrDu2n5ARPKO/6o3cgFHfsW08oPz3UjlKguwSaUi/TFDdqM3/jZLEbKjT1oc2v5iRa arXg==; 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=gmail.com; s=20251104; t=1780319454; x=1780924254; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=NDkHx1/goH3UhisK6AJbB0PeBMJj22OXqQMBQeXlU7U=; b=A9VaASXP/Yb3qFj78hpOZUuIN7nEi4Q7Lsyz9LWwlDpQcTvv7KquSOC7XUZPBkOmWQ AixnSucKJgHA9VBbpBLm7Bnz3+ti+NomYM2HxYHqQrb05XaATar23+uX2IkKB3ynnfKa vGa1NYA6qzWgYekcqYzbETV9F8U/PiFu2J3/xjtlmeG1VukCeMJ1SGAHHcCYYi3kWh1N 8hqlPeysmXN/Xd+21NceSphaoi2cWEFoLqRYzOBii/4FzgS4JTNgmbEqhMqaGHRANATV OAfSBc7mdcOc5huueFXRqvuPRhPEGJrjY4Lz2987zv+4G7FgmsNOvevsDd8R43DJ+uOe eM5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780319454; x=1780924254; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NDkHx1/goH3UhisK6AJbB0PeBMJj22OXqQMBQeXlU7U=; b=fwuVLoNZXfbv7Imk8azX7gRNrlWhggqklC+TdeIc1NCg06WOMtG8old5pWo+eDZxNn T1gPjgEPLrdD3PYcH4dSL1ATfxxv3v9Jc/yFOI8iRFocj+mrdh4Qmlv+awSiwFLOnUkf VoF83L67JE31MuKwadiuuUdgyjIQxy3102sd6Zau7TCZJw1M3jPZaV7WP2rm4ckmFu/s BRW94svdBN6/5XM2sHo9hHAj1a0g6kPUg9VM2isa0uDStRUqtrj6flwalNljhnAe76Ir n6vsnZRnV2hPgHD6kq/vu96SS2C81zXkoEeoZRq8myEXR2TjzE/EqoHzigKBJulCdhwN Tl9Q== X-Gm-Message-State: AOJu0Yy7Su6Z+/O6t+YqrJUdsZZj/1ULgX/L3+elyTbflGhOxGgoUJu/ VWG9dIYe4dhE56szdLy6uBreY+tAltKKMLsW1vheUTakskz6ckUWWrlHIq3Eszk0ZrJR5XkGqWj D9VNrYPo3dDyJRn/Gp2Qq/Ld8/NqFXoc= X-Gm-Gg: Acq92OFimNjLPDAuX0LSFGKV9OOQZLU8yS3SQBS1J9K0Q8qoc2XkmNv8kAt5sOJLx4Y AxTcsIgNjukli7nq6wl38JQIG+KiD7SKjVgBPIuwFG65Nf4D08N3uWWdvP/lxCX6nv7KtySKeFn hJyKBrm2BLMGnxpnEuQf47HeIUWx0b0JGmJOnymXfnVAOTzKmKorXQEdKd7BbZlcYuR/xYDv9Oj GHxrdADDfCQW0Le8StPfLNkTjB9wTFhyQ1n96e9h0lzP54shnvb9EaqZ7FjHaj8WgJbh5btsauz jxdPqu5u1cPw0/L7YBiGytiqqcXWsRQinlKDhZZr4jOJfQLC0IA= X-Received: by 2002:a53:d60e:0:b0:654:acd4:9c10 with SMTP id 956f58d0204a3-6605ef7462emr6723845d50.13.1780319453731; Mon, 01 Jun 2026 06:10:53 -0700 (PDT) MIME-Version: 1.0 References: <178013424821.1017.15729495841275970312.pgcf@coridan.postgresql.org> In-Reply-To: <178013424821.1017.15729495841275970312.pgcf@coridan.postgresql.org> From: Atsushi Torikoshi Date: Mon, 1 Jun 2026 22:10:41 +0900 X-Gm-Features: AVHnY4ItQTR4tQMJj4sOWLMGBY7SOTxJ58NWt_qW30xp-K4Y9GewRRkJqx47V-U Message-ID: Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information To: Ilmar Y , Lukas Fittl Cc: pgsql-hackers@lists.postgresql.org, Atsushi Torikoshi Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tue, May 26, 2026 at 3:44=E2=80=AFAM Lukas Fittl wrote= : Thanks for your comment! > Maybe we should try to figure out what would be needed to do better > I/O tracking on the Linux side in a way that is compatible with I/O > workers? That may well be true. Unfortunately, I do not currently have a good idea of how to achieve this in a way that works with I/O workers. I'll keep thinking about whether there might be another approach. > e.g. I assume rusage is too expensive to run on individual I/Os that > the workers process (so its not just a communication problem) -- but > would be good to benchmark. Yes, I suspect that would be the case. Although this is somewhat different from the current discussion, I once experimented with an implementation that called getrusage() for each plan node, and the overhead was high enough that it was not practically usable. [1] I agree that many users will choose, or be required to choose, io_method =3D worker. However, there are also users who will continue to use sync or choose io_uring, so I do not think providing I/O statistics for those users would be without value. In particular, from a performance perspective, io_uring seems likely to be the preferred option in the long run. In high-performance on-premises environments, for example, it would not be surprising to see users selecting io_uring. Those users would also be among those most interested in understanding how much I/O is being generated against storage, which is the motivation behind this proposal. On Sat, May 30, 2026 at 6:45=E2=80=AFPM Ilmar Y wrote= : Thanks for your review! > The patch applies cleanly on current master at > db5ed03217b9c238703df8b4b286115d6e940488, but git am warned about trailin= g > whitespace. git diff --check origin/master...HEAD reports: > src/test/modules/test_misc/t/011_explain_storage_io.pl:47: trailing white= space > src/test/modules/test_misc/t/011_explain_storage_io.pl:55: trailing white= space > src/test/modules/test_misc/t/011_explain_storage_io.pl:61: trailing white= space I'll fix it. > A second thing I noticed is that, with io_method=3Dsync, structured EXPLA= IN > output can show an Execution Storage I/O section even when ANALYZE is not > used. We are currently considering moving this functionality to a new IO option t= hat, unlike BUFFERS, would require ANALYZE to be specified.[2] [1] https://www.postgresql.org/message-id/CAGXjcj%3DhnEZCCDDMRv06EQnDcv0mRe= 6%2BPh1gv8%3DHb7NEc51y5A%40mail.gmail.com [2] https://www.postgresql.org/message-id/CAM6-o%3DBL59LgruKXm3DCjzFzvr7TTJ= PtryEPj51YeGMFrWO0EQ%40mail.gmail.com --- Regards, Atsushi Torikoshi