Re: [HACKERS] Double shared memory allocation for SLRU LWLocks - Mailing list pgsql-hackers

From Teodor Sigaev
Subject Re: [HACKERS] Double shared memory allocation for SLRU LWLocks
Date
Msg-id 5bf227e7-b9a8-99f9-c79c-0f01fb2a11a8@sigaev.ru
Whole thread Raw
In response to [HACKERS] Double shared memory allocation for SLRU LWLocks  (Alexander Korotkov <a.korotkov@postgrespro.ru>)
Responses Re: [HACKERS] Double shared memory allocation for SLRU LWLocks
List pgsql-hackers
> It seems to me that we're allocating shared memory for SLRU lwlocks twice,
> unless I'm missing something.
I think you are right.

Did you check previous versions? i.e. should it be applyed to previous 
branches?? I suppose yes, to minimize code difference.

Also I'd like an idea to add Assert(offset <= SimpleLruShmemSize(nslots, nlsns)) 
at the end of SimpleLruInit()

>
> SimpleLruShmemSize() calculates total SLRU shared memory size including lwlocks
> size.
>
> SimpleLruInit() starts with line
>
> shared = (SlruShared) ShmemInitStruct(name,
>                                       SimpleLruShmemSize(nslots, nlsns),
>                                       &found);
>
> which allocates SLRU shared memory (LWLocks size is included because
> SimpleLruShmemSize() is used for size computation).
>
> Following line allocates shared memory for LWLocks again:
> shared->buffer_locks = (LWLockPadded *) ShmemAlloc(sizeof(LWLockPadded) * nslots);
>
> Attached patch fixes that by removing extra ShmemAlloc for SLRU.
>
> ------
> Alexander Korotkov
> Postgres Professional: http://www.postgrespro.com
> The Russian Postgres Company
>
>
>

-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/
 



pgsql-hackers by date:

Previous
From: Sandeep Thakkar
Date:
Subject: [HACKERS] PostgreSQL10 beta2 with ICU - initdb fails on MacOS
Next
From: "K S, Sandhya (Nokia - IN/Bangalore)"
Date:
Subject: Re: [HACKERS] Postgres process invoking exit resulting in sh-QUITcore