4242 * Portions Copyright (c) 1994, Regents of the University of California
4343 * Portions taken from FreeBSD.
4444 *
45- * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.124 2006/10/0400:30:04 momjian Exp $
45+ * $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.125 2006/10/0418:58:08 tgl Exp $
4646 *
4747 *-------------------------------------------------------------------------
4848 */
@@ -1105,23 +1105,18 @@ test_config_settings(void)
11051105 * These macros define the minimum shared_buffers we want for a given
11061106 * max_connections value, and the max_fsm_pages setting to be used for a
11071107 * given shared_buffers value.The arrays show the settings to try.
1108- *
11091108 */
11101109
1111- #define MIN_BUFS_FOR_CONNS (nconns )((nconns) * 10 * (BLCKSZ/1024) )
1110+ #define MIN_BUFS_FOR_CONNS (nconns )((nconns) * 10)
11121111#define FSM_FOR_BUFS (nbuffers )((nbuffers) > 1000 ? 50 * (nbuffers) : 20000)
11131112
11141113static const int trial_conns []= {
11151114100 ,50 ,40 ,30 ,20 ,10
11161115};
1117-
1118- /*
1119- * Candidate values for shared_buffers in kB. When the value is divisible
1120- * by 1024, we write it in MB-unit to configuration files.
1121- */
11221116static const int trial_bufs []= {
1123- 32768 ,28672 ,24576 ,20480 ,16384 ,12288 ,
1124- 8192 ,7200 ,6400 ,5600 ,4800 ,4000 ,
1117+ 4096 ,3584 ,3072 ,2560 ,2048 ,1536 ,
1118+ 1000 ,900 ,800 ,700 ,600 ,500 ,
1119+ 400 ,300 ,200 ,100 ,50
11251120};
11261121
11271122char cmd [MAXPGPATH ];
@@ -1147,7 +1142,7 @@ test_config_settings(void)
11471142snprintf (cmd ,sizeof (cmd ),
11481143"%s\"%s\" --boot -x0 %s "
11491144"-c max_connections=%d "
1150- "-c shared_buffers=%dkB "
1145+ "-c shared_buffers=%d "
11511146"-c max_fsm_pages=%d "
11521147"template1 < \"%s\" > \"%s\" 2>&1%s" ,
11531148SYSTEMQUOTE ,backend_exec ,boot_options ,
@@ -1182,7 +1177,7 @@ test_config_settings(void)
11821177snprintf (cmd ,sizeof (cmd ),
11831178"%s\"%s\" --boot -x0 %s "
11841179"-c max_connections=%d "
1185- "-c shared_buffers=%dkB "
1180+ "-c shared_buffers=%d "
11861181"-c max_fsm_pages=%d "
11871182"template1 < \"%s\" > \"%s\" 2>&1%s" ,
11881183SYSTEMQUOTE ,backend_exec ,boot_options ,
@@ -1195,10 +1190,10 @@ test_config_settings(void)
11951190n_buffers = test_buffs ;
11961191n_fsm_pages = FSM_FOR_BUFS (n_buffers );
11971192
1198- if (n_buffers %1024 == 0 )
1199- printf ("%dMB/%d\n" ,n_buffers /1024 ,n_fsm_pages );
1193+ if (( n_buffers * ( BLCKSZ / 1024 )) %1024 == 0 )
1194+ printf ("%dMB/%d\n" ,( n_buffers * ( BLCKSZ / 1024 )) /1024 ,n_fsm_pages );
12001195else
1201- printf ("%dkB/%d\n" ,n_buffers ,n_fsm_pages );
1196+ printf ("%dkB/%d\n" ,n_buffers * ( BLCKSZ / 1024 ) ,n_fsm_pages );
12021197}
12031198
12041199/*
@@ -1221,10 +1216,12 @@ setup_config(void)
12211216snprintf (repltok ,sizeof (repltok ),"max_connections = %d" ,n_connections );
12221217conflines = replace_token (conflines ,"#max_connections = 100" ,repltok );
12231218
1224- if (n_buffers %1024 == 0 )
1225- snprintf (repltok ,sizeof (repltok ),"shared_buffers = %dMB" ,n_buffers /1024 );
1219+ if ((n_buffers * (BLCKSZ /1024 )) %1024 == 0 )
1220+ snprintf (repltok ,sizeof (repltok ),"shared_buffers = %dMB" ,
1221+ (n_buffers * (BLCKSZ /1024 )) /1024 );
12261222else
1227- snprintf (repltok ,sizeof (repltok ),"shared_buffers = %dkB" ,n_buffers );
1223+ snprintf (repltok ,sizeof (repltok ),"shared_buffers = %dkB" ,
1224+ n_buffers * (BLCKSZ /1024 ));
12281225conflines = replace_token (conflines ,"#shared_buffers = 32MB" ,repltok );
12291226
12301227snprintf (repltok ,sizeof (repltok ),"max_fsm_pages = %d" ,n_fsm_pages );