Re: Additional LWLOCK_STATS statistics

From: Jesper Pedersen <jesper(dot)pedersen(at)redhat(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Additional LWLOCK_STATS statistics
Date: 2015-09-16 16:44:21
Message-ID: 55F99C65.4070209@redhat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 09/16/2015 12:26 PM, Andres Freund wrote:
> On 2015-09-16 10:37:43 -0400, Jesper Pedersen wrote:
>> #ifdef LWLOCK_STATS
>> lwstats->spin_delay_count += SpinLockAcquire(&lock->mutex);
>> +
>> + /*
>> + * We scan the list of waiters from the back in order to find
>> + * out how many of the same lock type are waiting for a lock.
>> + * Similar types have the potential to be groupped together.
>> + *
>
> Except for LW_WAIT_UNTIL_FREE there shouldn't be much in terms of
> grouping? Can't you instead iterate and count
> counter[waiter->lwWaitMode]++ or so?
>

The sample report (-c/-j 80) shows in the exclusive report that
CLogControlLock has 79 in series, XidGenLock has 80 and ProcArrayLock
only 7. For shared CLogControlLock has 63 and ProcArrayLock has 74
(which is also its max queue size).

So, I think there is some value in keeping this information separate.

Best regards,
Jesper

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2015-09-16 16:45:40 Re: BUFFER_LOCK_* synonyms
Previous Message Andres Freund 2015-09-16 16:30:49 Re: BUFFER_LOCK_* synonyms