Re: [HACKERS] Double shared memory allocation for SLRU LWLocks
От | Teodor Sigaev |
---|---|
Тема | Re: [HACKERS] Double shared memory allocation for SLRU LWLocks |
Дата | |
Msg-id | 5bf227e7-b9a8-99f9-c79c-0f01fb2a11a8@sigaev.ru обсуждение исходный текст |
Ответ на | [HACKERS] Double shared memory allocation for SLRU LWLocks (Alexander Korotkov <a.korotkov@postgrespro.ru>) |
Ответы |
Re: [HACKERS] Double shared memory allocation for SLRU LWLocks
|
Список | 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 по дате отправления: