On Fri, Dec 01, 2017 at 04:01:24PM +1300, Thomas Munro wrote:
> Hi hackers,
>
> The manual implies that only Linux can use huge pages. That is not
> true: FreeBSD, Illumos and probably others support larger page sizes
> using transparent page coalescing algorithms. On my FreeBSD box
> procstat -v often shows PostgreSQL shared buffers in "S"-flagged
> memory. I think we should adjust the manual to make clear that it's
> the *explicit request for huge pages* that is supported only on Linux
> (and hopefully soon Windows). Am I being too pedantic?
I suggest to remove "other" and include Linux in the enumeration, since it also
supports "transparent" hugepages.
Justin
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 3060597..98d42e5 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1363,7 +1363,7 @@ include_dir 'conf.d'
</term>
<listitem>
<para>
- Enables/disables the use of huge memory pages. Valid values are
+ Controls whether huge memory pages are explicitly requested. Valid
values are
<literal>try</literal> (the default), <literal>on</literal>,
and <literal>off</literal>.
</para>
@@ -1371,6 +1371,9 @@ include_dir 'conf.d'
<para>
At present, this feature is supported only on Linux. The setting is
ignored on other systems when set to <literal>try</literal>.
+ Note that some operating systems including Linux, FreeBSD and Illumos
+ support huge pages (also known as "super" pages or "large" pages)
+ automatically without an explicit request from PostgreSQL.
</para>
<para>
@@ -1384,7 +1387,7 @@ include_dir 'conf.d'
the server will try to use huge pages, but fall back to using
normal allocation if that fails. With <literal>on</literal>, failure
to use huge pages will prevent the server from starting up. With
- <literal>off</literal>, huge pages will not be used.
+ <literal>off</literal>, huge pages will not be specifically requested.
</para>
</listitem>
</varlistentry>