git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a030a0c)
Reject huge_pages=on if shared_memory_type=sysv.
2021年10月25日 23:54:55 +0000 (12:54 +1300)
2021年10月25日 23:54:55 +0000 (12:54 +1300)
It doesn't work (it could, but hasn't been implemented).
Back-patch to 12, where shared_memory_type arrived.

Reported-by: Alexander Lakhin <exclusion@gmail.com>
Reviewed-by: Alexander Lakhin <exclusion@gmail.com>
Discussion: https://postgr.es/m/163271880203.22789.1125998876173795966@wrigleys.postgresql.org


diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 4c73fe6ce8ee21076f0b17716bfbb9d6769ace5c..de77f145736a7d1c212b76fdf71e53b46ce1a9fb 100644 (file)
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1664,7 +1664,9 @@ include_dir 'conf.d'
<para>
At present, this setting is supported only on Linux and Windows. The
setting is ignored on other systems when set to
- <literal>try</literal>.
+ <literal>try</literal>. On Linux, it is only supported when
+ <varname>shared_memory_type</varname> is set to <literal>mmap</literal>
+ (the default).
</para>
<para>
diff --git a/src/backend/port/sysv_shmem.c b/src/backend/port/sysv_shmem.c
index cd385c4df650df53688ee74eb18823d6d42116d7..e7474cee59666e0086b5bdeca2da2f4fcc2c2012 100644 (file)
--- a/src/backend/port/sysv_shmem.c
+++ b/src/backend/port/sysv_shmem.c
@@ -703,6 +703,12 @@ PGSharedMemoryCreate(Size size,
errmsg("huge pages not supported on this platform")));
#endif
+ /* For now, we don't support huge pages in SysV memory */
+ if (huge_pages == HUGE_PAGES_ON && shared_memory_type != SHMEM_TYPE_MMAP)
+ ereport(ERROR,
+ (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+ errmsg("huge pages not supported with the current shared_memory_type setting")));
+
/* Room for a header? */
Assert(size > MAXALIGN(sizeof(PGShmemHeader)));
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /