Re: Adding locks statistics

Álvaro Herrera <alvherre@kurilemu.de>

From: Álvaro Herrera <alvherre@kurilemu.de>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, Andres Freund <andres@anarazel.de>, Jeff Davis <pgsql@j-davis.com>, Greg Sabino Mullane <htamfids@gmail.com>, "L. pgsql-hackers" <pgsql-hackers@lists.postgresql.org>
Date: 2026-03-24T16:16:11Z
Lists: pgsql-hackers
Hello,

On 2026-Mar-23, Bertrand Drouvot wrote:

> So the changes done in your patches make sense to me.
> 
> I have 2 comments:
> 
> 1/ wait_event.c
> 
> -#include "storage/lmgr.h"              /* for GetLockNameFromTagType */
> -#include "storage/lwlock.h"            /* for GetLWLockIdentifier */
> +#include "storage/lmgr.h"
> +#include "storage/lwlock.h"
> +#include "storage/shmem.h"
>  #include "storage/spin.h"
> +#include "utils/hsearch.h"
> 
> hsearch.h is already included into shmem.h so its direct include is not needed.
> That said wait_event.c needs it so including it directly might make sense just from
> a coding "style" point of view (given that it is  harmless as it is protected by
> ifndef HSEARCH_H).

Hmm, right -- I don't need to add both.  Done that way.  I also made
some alphabetical sorts and pushed this part.

> 2/ Not directly linked to your patches
> 
> It looks like that aio_funcs.c does not need lock.h (reported by include-what-you-use).
> If we remove its direct include, it's still indirectly included through proc.h
> though. But I think that removing its direct include makes sense as it's not
> needed at all.

I'm not opposed to somebody else making this change, if they want, but I
think there's little practical impact.

-- 
Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
"En las profundidades de nuestro inconsciente hay una obsesiva necesidad
de un universo lógico y coherente. Pero el universo real se halla siempre
un paso más allá de la lógica" (Irulan)



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix injection point detach timing problem in TAP test for lock stats

  2. Use single LWLock for lock statistics in pgstats

  3. Add tests for lock statistics, take two

  4. Remove isolation test lock-stats

  5. Avoid including clog.h in proc.h

  6. Don't include storage/lock.h in so many headers

  7. Add support for lock statistics in pgstats

  8. Move some code blocks in lock.c and proc.c

  9. Move declarations related to locktags from lock.h to new locktag.h