Re: [PATCH] Identify LWLocks in tracepoints

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Craig Ringer <craig.ringer@enterprisedb.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2021-05-09T18:55:04Z
Lists: pgsql-hackers
Hi,

On 2021-05-08 13:13:47 -0400, Tom Lane wrote:
> Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes:
> > On 05.05.21 00:15, Andres Freund wrote:
> >> I'm now getting
> >> /home/andres/src/postgresql/src/backend/storage/lmgr/lwlock.c: In function ‘LWLockAcquire’:
> >> /home/andres/src/postgresql/src/backend/storage/lmgr/lwlock.c:1322:58: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
> >> 1322 |    TRACE_POSTGRESQL_LWLOCK_WAIT_START(T_NAME(lock), mode);
> >> |                                                          ^
> 
> > What compiler are you using in this situation?

gcc - I think the warning is pulled in via -Wextra.  I think it's
something sensible to warn about, too easy to end up with misleading
behaviour when statement-like macros are defined empty.


> All of these buildfarm members are now showing this warning:
> 
> calliphoridae	gcc (Debian 10.1.0-6) 10.1.0
> culicidae	gcc (Debian 10.1.0-6) 10.1.0
> flaviventris	gcc (Debian 20200124-1) 10.0.1 20200124 (experimental)
> francolin	gcc (Debian 10.1.0-6) 10.1.0
> piculetœ	gcc (Debian 10.1.0-6) 10.1.0
> rorqual		gcc (Debian 10.1.0-6) 10.1.0
> serinus		gcc (Debian 20200124-1) 10.0.1 20200124 (experimental)
> skink		gcc (Debian 10.1.0-6) 10.1.0

I think those likely are all mine, so it's not too surprising. They all
use something like
CFLAGS => '-Og -ggdb -g3 -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers -fno-omit-frame-pointer',


> (I wonder why flaviventris and serinus are still using an "experimental"
> compiler version that is now behind mainstream.)

The upgrade script didn't install the newer version it because it had to
remove some conflicting packages... Should be fixed for runs starting
now.

Greetings,

Andres Freund



Commits

  1. Emit dummy statements for probes.d probes when disabled

  2. Prevent lwlock dtrace probes from unnecessary work

  3. doc: Fix typo in logicaldecoding.sgml.

  4. Move lwlock-release probe back where it belongs

  5. Remove bogus tracepoint

  6. Simplify LWLock tranche machinery by removing array_base/array_stride.

  7. Improve LWLock scalability.