Re: [PATCH] Identify LWLocks in tracepoints
От | Peter Eisentraut |
---|---|
Тема | Re: [PATCH] Identify LWLocks in tracepoints |
Дата | |
Msg-id | 49d46450-3cb4-f537-4856-1b268c327843@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: [PATCH] Identify LWLocks in tracepoints (Craig Ringer <craig.ringer@enterprisedb.com>) |
Ответы |
Re: [PATCH] Identify LWLocks in tracepoints
|
Список | pgsql-hackers |
On 18.03.21 07:34, Craig Ringer wrote: > The main reason I didn't want to add more tracepoints than were strictly > necessary is that Pg doesn't enable the systemtap semaphores feature, so > right now we do a T_NAME(lock) evaluation each time we pass a tracepoint > if --enable-dtrace is compiled in, whether or not anything is tracing. > This was fine on pg11 where it was just: > > #define T_NAME(lock) \ > (LWLockTrancheArray[(lock)->tranche]) > > but since pg13 it instead expands to > > GetLWTrancheName((lock)->tranche) > > where GetLWTrancheName isn't especially trivial. We'll run that function > every single time we pass any of these tracepoints and then discard the > result, which is ... not ideal. That applies so long as Pg is compiled > with --enable-dtrace. I've been meaning to look at enabling the > systemtap semaphores feature in our build so these can be wrapped in > unlikely(TRACE_POSTGRESQL_LWLOCK_RELEASE_ENABLED()) guards, but I wanted > to wrap this patch set up first as there are some complexities around > enabling the semaphores feature. There is already support for that. See the documentation at the end of this page: https://www.postgresql.org/docs/devel/dynamic-trace.html#DEFINING-TRACE-POINTS
В списке pgsql-hackers по дате отправления: