Re: Lockless queue of waiters in LWLock

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: Lockless queue of waiters in LWLock
Дата
Msg-id 20221105193240.7vmjirvrlj5qse5h@awork3.anarazel.de
обсуждение исходный текст
Ответ на Re: Lockless queue of waiters in LWLock  (Alexander Korotkov <aekorotkov@gmail.com>)
Ответы Re: Lockless queue of waiters in LWLock  (Pavel Borisov <pashkin.elfe@gmail.com>)
Список pgsql-hackers
Hi,

On 2022-11-05 12:05:43 +0300, Alexander Korotkov wrote:
> On Fri, Nov 4, 2022 at 10:07 PM Andres Freund <andres@anarazel.de> wrote:
> > The use of cmpxchg vs lock inc/lock add/xadd is one of the major reasons why
> > lwlocks are slower than a spinlock (but obviously are better under contention
> > nonetheless).
> >
> >
> > I have a benchmark program that starts a thread for each physical core and
> > just increments a counter on an atomic value.
> 
> Thank you for this insight!  I didn't know xadd is much cheaper than
> cmpxchg unless there are retries.

The magnitude of the effect is somewhat surprising, I agree. Some difference
makes sense to me, but...


> I also wonder how cmpxchg becomes faster with higher concurrency.

If you're referring to the leading 32/64 that's not concurrency, that's
32/64bit values. Sorry for not being clearer on that.

Greetings,

Andres Freund



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: pg_reload_conf() synchronously
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Check SubPlan clause for nonnullable rels/Vars