diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 909a3f28c7..2073bafa1f 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -11160,6 +11160,38 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' + + debug_io_direct (string) + + debug_io_direct configuration parameter + + + + + Ask the kernel to minimize caching effects for relation data and WAL + files using O_DIRECT (most Unix-like systems), + F_NOCACHE (macOS) or + FILE_FLAG_NO_BUFFERING (Windows). + + + May be set to an empty string (the default) to disable use of direct + I/O, or a comma-separated list of operations that should use direct I/O. + The valid options are data for + main data files, wal for WAL files, and + wal_init for WAL files when being initially + allocated. + + + Some operating systems and file systems do not support direct I/O, so + non-default settings may be rejected at startup or cause errors. + + + Currently this feature reduces performance, and is intended for + developer testing only. + + + + debug_parallel_query (enum) @@ -11221,38 +11253,6 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' - - io_direct (string) - - io_direct configuration parameter - - - - - Ask the kernel to minimize caching effects for relation data and WAL - files using O_DIRECT (most Unix-like systems), - F_NOCACHE (macOS) or - FILE_FLAG_NO_BUFFERING (Windows). - - - May be set to an empty string (the default) to disable use of direct - I/O, or a comma-separated list of operations that should use direct I/O. - The valid options are data for - main data files, wal for WAL files, and - wal_init for WAL files when being initially - allocated. - - - Some operating systems and file systems do not support direct I/O, so - non-default settings may be rejected at startup or cause errors. - - - Currently this feature reduces performance, and is intended for - developer testing only. - - - - post_auth_delay (integer) diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index 4f86d44d6e..173476789c 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -3844,7 +3844,7 @@ check_io_direct(char **newval, void **extra, GucSource source) #if PG_O_DIRECT == 0 if (strcmp(*newval, "") != 0) { - GUC_check_errdetail("io_direct is not supported on this platform."); + GUC_check_errdetail("debug_io_direct is not supported on this platform."); result = false; } flags = 0; @@ -3859,7 +3859,7 @@ check_io_direct(char **newval, void **extra, GucSource source) if (!SplitGUCList(rawstring, ',', &elemlist)) { GUC_check_errdetail("invalid list syntax in parameter \"%s\"", - "io_direct"); + "debug_io_direct"); pfree(rawstring); list_free(elemlist); return false; @@ -3891,14 +3891,14 @@ check_io_direct(char **newval, void **extra, GucSource source) #if XLOG_BLCKSZ < PG_IO_ALIGN_SIZE if (result && (flags & (IO_DIRECT_WAL | IO_DIRECT_WAL_INIT))) { - GUC_check_errdetail("io_direct is not supported for WAL because XLOG_BLCKSZ is too small"); + GUC_check_errdetail("debug_io_direct is not supported for WAL because XLOG_BLCKSZ is too small"); result = false; } #endif #if BLCKSZ < PG_IO_ALIGN_SIZE if (result && (flags & IO_DIRECT_DATA)) { - GUC_check_errdetail("io_direct is not supported for data because BLCKSZ is too small"); + GUC_check_errdetail("debug_io_direct is not supported for data because BLCKSZ is too small"); result = false; } #endif diff --git a/src/backend/utils/misc/guc_tables.c b/src/backend/utils/misc/guc_tables.c index 5f90aecd47..efd59a47cf 100644 --- a/src/backend/utils/misc/guc_tables.c +++ b/src/backend/utils/misc/guc_tables.c @@ -4568,7 +4568,7 @@ struct config_string ConfigureNamesString[] = }, { - {"io_direct", PGC_POSTMASTER, DEVELOPER_OPTIONS, + {"debug_io_direct", PGC_POSTMASTER, DEVELOPER_OPTIONS, gettext_noop("Use direct I/O for file access."), NULL, GUC_LIST_INPUT | GUC_NOT_IN_SAMPLE diff --git a/src/test/modules/test_misc/t/004_io_direct.pl b/src/test/modules/test_misc/t/004_io_direct.pl index b8814bb640..dddcfb1aa9 100644 --- a/src/test/modules/test_misc/t/004_io_direct.pl +++ b/src/test/modules/test_misc/t/004_io_direct.pl @@ -40,7 +40,7 @@ my $node = PostgreSQL::Test::Cluster->new('main'); $node->init; $node->append_conf( 'postgresql.conf', qq{ -io_direct = 'data,wal,wal_init' +debug_io_direct = 'data,wal,wal_init' shared_buffers = '256kB' # tiny to force I/O wal_level = replica # minimal runs out of shared_buffers when set so tiny });