Skip site navigation (1) Skip section navigation (2)

Re: 7.2 is slow? [compile problem]

From: Ashley Cambrell <ash(at)freaky-namuh(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: 7.2 is slow? [compile problem]
Date: 2001-12-20 00:51:03
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-hackers
I haven't actually tried to compile 7.2 from the CVS, but there seems to 
be a problem?  [maybe on my side]

make[3]: Leaving directory 
gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations  
-Wl,-rpath,/tmp//lib -export-dynamic access/SUBSYS.o bootstrap/SUBSYS.o 
catalog/SUBSYS.o parser/SUBSYS.o commands/SUBSYS.o executor/SUBSYS.o 
lib/SUBSYS.o libpq/SUBSYS.o main/SUBSYS.o nodes/SUBSYS.o 
optimizer/SUBSYS.o port/SUBSYS.o postmaster/SUBSYS.o regex/SUBSYS.o 
rewrite/SUBSYS.o storage/SUBSYS.o tcop/SUBSYS.o utils/SUBSYS.o -lz 
-lcrypt -lresolv -lnsl -ldl -lm -lreadline  -o postgres
nodes/SUBSYS.o: In function `pprint':
nodes/SUBSYS.o(.text+0xdc95): undefined reference to `MIN'
nodes/SUBSYS.o(.text+0xdcfd): undefined reference to `MIN'
collect2: ld returned 1 exit status
make[2]: *** [postgres] Error 1
make[2]: Leaving directory 
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/ash/ash-server/Work/build/pgsql/src'
make: *** [all] Error 2

In ./src/backend/nodes/print.c:

/* outdent */
if (indentLev > 0)
    indentDist = MIN(indentLev * INDENTSTOP, MAXINDENT);

If I add
#ifndef MIN
#define MIN(a,b) (((a)<(b)) ? (a) : (b))
to print.c it compiles fine.

Ashley Cambrell


>That's annoying.  The LWLock changes were intended to solve the
>inefficiency with multiple CPUs, but it seems like we still have a
>problem somewhere.
>Could you recompile the backend with profiling enabled and try to get
>a profile from your test case?  To build a profilable backend, it's
>sufficient to do
>	cd .../src/backend
>	gmake clean
>	gmake PROFILE=-pg all
>	gmake install-bin
>(assuming you are using gcc).  Then restart the postmaster, and you
>should notice "gmon.out" files being dropped into the various database
>subdirectories anytime a backend exits.  Next run your test case,
>and as soon as it finishes copy the gmon.out file to a safe place.
>(You'll only be able to get the profile from the last process to exit,
>so try to make sure that this is representative.  Might be worth
>repeating the test a few times to make sure that the results don't
>vary a whole lot.)  Finally, do
>	gprof .../bin/postgres gmon.out >resultfile
>to produce a legible result.
>Oh, one more thing: on Linuxen you are likely to find that all the
>reported routine runtimes are zero, rendering the results useless.
>Apply the attached patch (for 7.2beta) to fix this.
>			regards, tom lane
>*** src/backend/postmaster/postmaster.c.orig	Wed Dec 12 14:52:03 2001
>--- src/backend/postmaster/postmaster.c	Mon Dec 17 19:38:29 2001
>*** 1823,1828 ****
>--- 1823,1829 ----
>  {
>  	Backend    *bn;				/* for backend cleanup */
>  	pid_t		pid;
>+ 	struct itimerval svitimer;
>  	/*
>  	 * Compute the cancel key that will be assigned to this backend. The
>*** 1858,1869 ****
>--- 1859,1874 ----
>  	beos_before_backend_startup();
>  #endif
>+ 	getitimer(ITIMER_PROF, &svitimer);
>  	pid = fork();
>  	if (pid == 0)				/* child */
>  	{
>  		int			status;
>+ 		setitimer(ITIMER_PROF, &svitimer, NULL);
>  		free(bn);
>  #ifdef __BEOS__
>  		/* Specific beos backend startup actions */
>---------------------------(end of broadcast)---------------------------
>TIP 5: Have you checked our extensive FAQ?

In response to


pgsql-hackers by date

Next:From: Andrew McMillanDate: 2001-12-20 00:52:28
Subject: Re: Connection Pooling, a year later
Previous:From: Tom LaneDate: 2001-12-19 23:52:27
Subject: Re: Concerns about this release

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group