diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2018-09-28 16:12:13 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2018-09-28 16:12:13 -0400 |
commit | 2b04dfc4724970231ac338aa71e529c823fc5ff6 (patch) | |
tree | f2bc1d2d27adc014afa5d2e14548a7f6c46df3aa /src | |
parent | 61f14cc8c85b5e6186c3b86c2c929821d7b33589 (diff) | |
download | postgresql-2b04dfc4724970231ac338aa71e529c823fc5ff6.tar.gz postgresql-2b04dfc4724970231ac338aa71e529c823fc5ff6.zip |
Improve error reporting for unsupported effective_io_concurrency setting.
Give a specific error complaining about lack of posix_fadvise() when
someone tries to set effective_io_concurrency > 0 on platforms
without that.
This probably isn't worth extensive back-patching, but I (tgl) felt
cramming it into v11 was reasonable.
James Robinson
Discussion: https://postgr.es/m/153771876450.14994.560017943128223619@wrigleys.postgresql.org
Discussion: https://postgr.es/m/A3942987-5BC7-4F05-B54D-2A0EC2914B33@jlr-photo.com
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/misc/guc.c | 10 | ||||
-rw-r--r-- | src/include/pg_config_manual.h | 4 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index e9f542cfedd..d14ea851847 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -2649,10 +2649,11 @@ static struct config_int ConfigureNamesInt[] = }, &effective_io_concurrency, #ifdef USE_PREFETCH - 1, 0, MAX_IO_CONCURRENCY, + 1, #else - 0, 0, 0, + 0, #endif + 0, MAX_IO_CONCURRENCY, check_effective_io_concurrency, assign_effective_io_concurrency, NULL }, @@ -10709,6 +10710,11 @@ check_effective_io_concurrency(int *newval, void **extra, GucSource source) else return false; #else + if (*newval != 0) + { + GUC_check_errdetail("effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()"); + return false; + } return true; #endif /* USE_PREFETCH */ } diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h index b0365254f65..cc5eedfc41d 100644 --- a/src/include/pg_config_manual.h +++ b/src/include/pg_config_manual.h @@ -136,7 +136,9 @@ /* * USE_PREFETCH code should be compiled only if we have a way to implement * prefetching. (This is decoupled from USE_POSIX_FADVISE because there - * might in future be support for alternative low-level prefetch APIs.) + * might in future be support for alternative low-level prefetch APIs. + * If you change this, you probably need to adjust the error message in + * check_effective_io_concurrency.) */ #ifdef USE_POSIX_FADVISE #define USE_PREFETCH |