aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/activity/pgstat_io.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/activity/pgstat_io.c')
-rw-r--r--src/backend/utils/activity/pgstat_io.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/backend/utils/activity/pgstat_io.c b/src/backend/utils/activity/pgstat_io.c
index e7362b52a37..ba11545a17f 100644
--- a/src/backend/utils/activity/pgstat_io.c
+++ b/src/backend/utils/activity/pgstat_io.c
@@ -83,20 +83,22 @@ pgstat_count_io_op(IOObject io_object, IOContext io_context, IOOp io_op,
}
/*
- * Initialize the internal timing for an IO operation.
+ * Initialize the internal timing for an IO operation, depending on an
+ * IO timing GUC.
*/
instr_time
-pgstat_prepare_io_time(void)
+pgstat_prepare_io_time(bool track_io_guc)
{
instr_time io_start;
- if (track_io_timing)
+ if (track_io_guc)
INSTR_TIME_SET_CURRENT(io_start);
else
{
/*
- * There is no need to set io_start when an IO timing GUC is disabled,
- * still initialize it to zero to avoid compiler warnings.
+ * There is no need to set io_start when an IO timing GUC is disabled.
+ * Initialize it to zero to avoid compiler warnings and to let
+ * pgstat_count_io_op_time() know that timings should be ignored.
*/
INSTR_TIME_SET_ZERO(io_start);
}
@@ -119,7 +121,7 @@ void
pgstat_count_io_op_time(IOObject io_object, IOContext io_context, IOOp io_op,
instr_time start_time, uint32 cnt, uint64 bytes)
{
- if (track_io_timing)
+ if (!INSTR_TIME_IS_ZERO(start_time))
{
instr_time io_time;