Re: 7.2 is slow? [compile problem]
От | Christopher Kings-Lynne |
---|---|
Тема | Re: 7.2 is slow? [compile problem] |
Дата | |
Msg-id | GNELIHDDFBOCMGBFGEFOMEOACAAA.chriskl@familyhealth.com.au обсуждение исходный текст |
Ответ на | Re: 7.2 is slow? [compile problem] (Ashley Cambrell <ash@freaky-namuh.com>) |
Ответы |
Re: 7.2 is slow? [compile problem]
(Bruce Momjian <pgman@candle.pha.pa.us>)
|
Список | pgsql-hackers |
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@postgresql.org > [mailto:pgsql-hackers-owner@postgresql.org]On Behalf Of Ashley Cambrell > Sent: Thursday, 20 December 2001 8:51 AM > To: Tom Lane > Cc: pgsql-hackers@postgresql.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 >
В списке pgsql-hackers по дате отправления: