Re: [HACKERS] Fix performance of generic atomics

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [HACKERS] Fix performance of generic atomics
Дата
Msg-id 1054.1504726449@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: [HACKERS] Fix performance of generic atomics  (Andres Freund <andres@anarazel.de>)
Ответы Re: [HACKERS] Fix performance of generic atomics  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Andres Freund <andres@anarazel.de> writes:
> On 2017-09-06 15:25:20 -0400, Tom Lane wrote:
>> I think we can just use "old = ptr->value" to set up for the cmpxchg
>> loop in every generic.h function that uses such a loop.

> I think we might have been talking past each other - I thought you were
> talking about changing the pg_atomic_read_u64_impl implementation for
> external users.

Ah.  I was not thinking of touching pg_atomic_read_u32/u64_impl,
although now that you mention it, it's not clear to me why we
couldn't simplify

-    return *(&ptr->value);
+    return ptr->value;

AFAIK, the compiler is entitled to, and does, simplify away that
take-a-pointer-and-immediately-dereference-it dance.  If it did
not, a whole lot of standard array locutions would be much less
efficient than they should be.  What matters here is the volatile
qualifier, which we've already got.
        regards, tom lane



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

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: [HACKERS] why not parallel seq scan for slow functions
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] why not parallel seq scan for slow functions