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 1wRaHo-002UVH-02 for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 18:44:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wRaHm-001pVr-01 for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 18:44:22 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wRaHl-001pVj-2G for pgsql-hackers@lists.postgresql.org; Mon, 25 May 2026 18:44:22 +0000 Received: from mail-qt1-x82d.google.com ([2607:f8b0:4864:20::82d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wRaHk-00000000jxf-42NT for pgsql-hackers@postgresql.org; Mon, 25 May 2026 18:44:21 +0000 Received: by mail-qt1-x82d.google.com with SMTP id d75a77b69052e-5102582e23eso77080541cf.1 for ; Mon, 25 May 2026 11:44:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779734660; cv=none; d=google.com; s=arc-20240605; b=leV6njCLIlnOU68on5F+44hq8DIXJC8l0nea+YA6ftbr6SVeQ7BtvwnNbK4zEUDX5t MEWG/3QkoaeGc0EX+W/QeVCqZ5SF6KVIm76XerUI9sng3hs2BpswPzAKna5Os4YIkmix 8HA5UscMg/ZgGS+lh1xn8p2J7iGCmMxOTDN/tsJEhSZrh+FGolgjHkPpdRzjcHntgoY2 WDszAFleDr6xAL+kTaD43rxJC/Y/MiSHEWrGF/r6RATh7NwV8a9KaKvrZHRRbo++mfU4 GC3BM4D++9penydK4iTAe9FMCdefv2kZ9VoR2OC60J6GaLGpiJXQhrbG2xY9izOZ02TX MTXg== 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=wADjI0iJb8ALOlz0+J6/PKZX00g4k4Lr7Yoj5BOc6Q0=; fh=gfFNdDNOXHMB1XUgXtmkvGJiRYL9fymBtJYs3Xbqeqw=; b=IlkQ9rlLZHeFHf8AIeW/l7Tl7ZGx8D1Sn7vA9Xz+3Hvh8k5IBTVVy5Wu6H0YmAvgzo N7CKezONOAjgwFJg4u1eaNsLhn9L6KMhTKz8nbWVKCbNLmpVZEfE69bFWOzchfVGygG9 Yzra2CmH8rvoVsr9jurpeCYKPpDRUEe0NWOV0bypLaCOaAiRIse8aW84+DTbUD6WHyt7 BI7bfBgV8dyRXB6wBY01+ud++44sAbwhodmXCDAMJYMcgnVuDYXBHSVMz9iYZ9vY1jTw JghY7/26Bg8QpS971eMPjL2HNM36B6ikY86lDVH1ogZBVYg7nrwuZOnDQO0KUFYIg4vi WYag==; darn=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=1779734660; x=1780339460; darn=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=wADjI0iJb8ALOlz0+J6/PKZX00g4k4Lr7Yoj5BOc6Q0=; b=AxyDq8K+n7yvyQuivqZ2GCJcokm1ZtcQEeBk51LmAvCtWGqTDxvOtlW+9K8gUgty6U Y36slnHkO3g1M288wSOt5RKde1MSTja6yLMoxXauR4QDYVE0aHY+hDn+4785bZosYJAX BackALeHsdnNdYyl4x88VbVoMJ9IuAESiApZM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779734660; x=1780339460; 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=wADjI0iJb8ALOlz0+J6/PKZX00g4k4Lr7Yoj5BOc6Q0=; b=Yg/01vMAv+aNzWG+2xGv5RTJ16m0XLBHP+MwIa/dihQ4xB3FPOHjh/hwUytLdBdD/o ZAkjX3rtat8OA8Ii8fHKx1vinXpMwE71233qT5OOgD1mK9qJ9vCrHU4MLxwVpusNFniz yoWLI0cU04ryRI/ifngcqyF6TnK/2mK/03YPDtibnkOKHISaDRMAcfm+wlXALTfMzkPC Sode1zwjOY/N3B+LqgOIBQ59IAq1MMZt/+WIavsqdFYj0CqfT84A23NybbBEHiefwxPr XdanJsg35COt5fAKVFTlDKdTxN9Uuds+HE6c/C3Opw6iUa97MLCBX+CT92fBkekZhUlv 3eTQ== X-Forwarded-Encrypted: i=1; AFNElJ/ZPmifIRZs2pjsuwdpzB73eslpjNdslaWCt0cOAgXGBBsQYyU/l4HLsuU+jsIy8qAvIj6gHY1qKdjGiivb@postgresql.org X-Gm-Message-State: AOJu0YwpwPbeVH3Zd+oc46FpfBrCVrYOK4AwR1qYgf7eTkAqMq6dPmUU VdVsnSIeQzP7ODRK/QcBkHfxcH7fITwiH7dWjMC3eNBeF1gunVZuBl+7Bh92PKnByitNaUQ34wj 5IvdT+OVwajVOyPAWJgXg7ConZrroFAXU9kPfGrU3 X-Gm-Gg: Acq92OGCY0y3uXvamRLlWOwk50A9QTL2IzuYSrV6q19xryl4kXKdhfsjbaZHxYB3jld tPx7w58uk9Px9EYKyTnc6ri79uWhLe5lRgK/upq406zC5OYUAoGYxPiB/WXHLSbDsrBUZjdGOVe Q3Z+zSYLURzVH3NhGnK8jwRKLW0FeZDW+ZcOPRoGo27DbGeNb/mfq7bGFZI/0aZljfvOll5ilxl JBpV/0df38bbZOpSx7hwMw/ao+zG66vWtMWx3Oc0sCheqCSqtSOLtctWp+zFkgw+G1+T5j1JJsz RnCm85nH2RMUV5/GEzKZAbntduAuBtG8oFQZXyFphWnQnpbFKVA3aRm/7BXRawxjdYw/aw0= X-Received: by 2002:a05:622a:488b:b0:516:e722:5ed1 with SMTP id d75a77b69052e-516e7227354mr136025871cf.29.1779734660097; Mon, 25 May 2026 11:44:20 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Lukas Fittl Date: Mon, 25 May 2026 11:43:43 -0700 X-Gm-Features: AVHnY4I3izUQrZbv9hvTlPq8KR66RRC1LTL2qwDJL3eqBgjuXKDL1BNeFt4xTf8 Message-ID: Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information To: Atsushi Torikoshi Cc: vellaipandiyan sm , torikoshia , Pgsql Hackers , Andres Freund , Jeremy Schneider 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 Fri, May 22, 2026 at 9:07=E2=80=AFAM Atsushi Torikoshi wrote: > > Thanks for the review! > > On Thu, May 21, 2026 at 2:38=E2=80=AFPM vellaipandiyan sm > wrote: > > > > Hello hackers, > > > > I reviewed the EXPLAIN storage I/O patch and the overall direction seem= s useful, especially for distinguishing shared-buffer hits from actual stor= age reads during query analysis. > > > > One concern that stood out to me from the later discussion is the inter= action with asynchronous I/O and worker-based I/O accounting. > > > > Since the patch currently relies on per-process getrusage() statistics,= it seems possible that the reported values could become partial or mislead= ing once I/O is performed outside the backend process context. In particula= r, worker-based AIO could undercount storage reads/writes while still retur= ning non-zero values, which may make the output appear more accurate than i= t actually is. > > Yeah, to avoid reporting the misleadingly underestimated values, no > output is shown when worker-based AIO is used, as described in the > docs: I think having something like this patch proposes would be extremely valuable, but: Do we even have a path forward here if this simply won't work with I/O work= ers? This was discussed before on this thread, but if anything it seems to me the situation has become more clear that I/O workers are going to be used for the majority of Postgres 19+ installations. At least for my part, I've seen both managed providers only offering I/O workers (e.g. AWS RDS/Aurora), as well as challenges in container environments where io_uring is not enabled. 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? 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. Thanks, Lukas --=20 Lukas Fittl