Re: 7.2 is slow? [compile problem]

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au>
Cc: Ashley Cambrell <ash(at)freaky-namuh(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: 7.2 is slow? [compile problem]
Date: 2001-12-20 02:40:09
Message-ID: 200112200240.fBK2e9x02500@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


OK, I just committed a fix. MIN() was used in the pretty node print
patch; should have been Min().

---------------------------------------------------------------------------

> I just got the same problem on latest CVS on freebsd/i386
>
> gmake[4]: Entering directory `/home/chriskl/pgsql/src/backend/utils/time'
> gcc -pipe -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../.
> ./src/include -c -o tqual.o tqual.c
> /usr/libexec/elf/ld -r -o SUBSYS.o tqual.o
> gmake[4]: Leaving directory `/home/chriskl/pgsql/src/backend/utils/time'
> /usr/libexec/elf/ld -r -o SUBSYS.o fmgrtab.o adt/SUBSYS.o cache/SUBSYS.o
> error/SUBSYS.o fmgr/SUBSYS.o hash/SUBSYS.o init/SUBSYS.o misc/SUBS
> YS.o mmgr/SUBSYS.o sort/SUBSYS.o time/SUBSYS.o
> gmake[3]: Leaving directory `/home/chriskl/pgsql/src/backend/utils'
> gcc -pipe -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -R/home/chr
> iskl/local/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 -lcomp
> at -lm -lutil -lreadline -o postgres
> nodes/SUBSYS.o: In function `pprint':
> nodes/SUBSYS.o(.text+0xda71): undefined reference to `MIN'
> nodes/SUBSYS.o(.text+0xdade): undefined reference to `MIN'
> gmake[2]: *** [postgres] Error 1
> gmake[2]: Leaving directory `/home/chriskl/pgsql/src/backend'
> gmake[1]: *** [all] Error 2
> gmake[1]: Leaving directory `/home/chriskl/pgsql/src'
> gmake: *** [all] Error 2
>
> Chris
>
> > -----Original Message-----
> > From: pgsql-hackers-owner(at)postgresql(dot)org
> > [mailto:pgsql-hackers-owner(at)postgresql(dot)org]On Behalf Of Ashley Cambrell
> > Sent: Thursday, 20 December 2001 8:51 AM
> > To: Tom Lane
> > Cc: pgsql-hackers(at)postgresql(dot)org
> > Subject: Re: [HACKERS] 7.2 is slow? [compile problem]
> >
> >
> > 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
> > `/home/ash/ash-server/Work/build/pgsql/src/backend/utils'
> > 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
> > `/home/ash/ash-server/Work/build/pgsql/src/backend'
> > 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)
> > {
> > indentLev--;
> > indentDist = MIN(indentLev * INDENTSTOP, MAXINDENT);
> > }
> >
> >
> > If I add
> > #ifndef MIN
> > #define MIN(a,b) (((a)<(b)) ? (a) : (b))
> > #endif
> > to print.c it compiles fine.
> >
> > Ashley Cambrell
> >
> >
> > <snip>
> >
> > >
> > >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?
> > >
> > >http://www.postgresql.org/users-lounge/docs/faq.html
> > >
> >
> >
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
> >
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Vince Vielhaber 2001-12-20 03:02:52 Re: Explicit config patch 7.2B4
Previous Message Christopher Kings-Lynne 2001-12-20 02:02:42 Re: 7.2 is slow? [compile problem]