Tom Lane wrote: > Gregory Stark <stark@xxxxxxxxxxxxxxxx> writes: > > Tom Lane <tgl@xxxxxxxxxxxxx> writes: > >> Ugh. So apparently, we actually need to special-case Solaris to not > >> believe that posix_fadvise works, or we'll waste cycles uselessly > >> calling a do-nothing function. Thanks, Sun. > > > Do we? Or do we just document that setting effective_cache_size on Solaris > > won't help? > > I assume you meant effective_io_concurrency. We'd still need a special > case because the default is currently hard-wired at 1, not 0, if > configure thinks the function exists. Also there's a posix_fadvise call > in xlog.c that that parameter doesn't control anyhow. The attached patch prevents the posix_fadvise() probe in configure on Solaris, and adds a comment why. I have already documented why Solaris can't do effective_io_concurrency. -- Bruce Momjian <bruce@xxxxxxxxxx> http://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
Index: configure.in =================================================================== RCS file: /cvsroot/pgsql/configure.in,v retrieving revision 1.592 diff -c -c -r1.592 configure.in *** configure.in 27 Mar 2009 19:58:11 -0000 1.592 --- configure.in 2 Apr 2009 21:23:36 -0000 *************** *** 1141,1150 **** AC_FUNC_ACCEPT_ARGTYPES PGAC_FUNC_GETTIMEOFDAY_1ARG ! AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid getpeerucred getrlimit memmove poll posix_fadvise pstat readlink setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs]) ! AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>]) AC_CHECK_DECLS(posix_fadvise, [], [], [#include <fcntl.h>]) AC_CHECK_DECLS([strlcat, strlcpy]) # This is probably only present on Darwin, but may as well check always AC_CHECK_DECLS(F_FULLFSYNC, [], [], [#include <fcntl.h>]) --- 1141,1157 ---- AC_FUNC_ACCEPT_ARGTYPES PGAC_FUNC_GETTIMEOFDAY_1ARG ! AC_CHECK_FUNCS([cbrt dlopen fcvt fdatasync getpeereid getpeerucred getrlimit memmove poll pstat readlink setproctitle setsid sigprocmask symlink sysconf towlower utime utimes waitpid wcstombs]) ! # posix_fadvise() is a no-op on Solaris, so don't incur function overhead ! # by calling it, 2009-04-02 ! # http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libc/port/gen/posix_fadvise.c ! if test "$PORTNAME" != "solaris"; then ! AC_CHECK_FUNCS(posix_fadvise); AC_CHECK_DECLS(posix_fadvise, [], [], [#include <fcntl.h>]) + fi + + AC_CHECK_DECLS(fdatasync, [], [], [#include <unistd.h>]) AC_CHECK_DECLS([strlcat, strlcpy]) # This is probably only present on Darwin, but may as well check always AC_CHECK_DECLS(F_FULLFSYNC, [], [], [#include <fcntl.h>])
-- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance