pgsql: Use a non-locking initial test in TAS_SPIN on x86_64.
| От | Heikki Linnakangas |
|---|---|
| Тема | pgsql: Use a non-locking initial test in TAS_SPIN on x86_64. |
| Дата | |
| Msg-id | E1VF03B-00010A-Og@gemulon.postgresql.org обсуждение исходный текст |
| Список | pgsql-committers |
Use a non-locking initial test in TAS_SPIN on x86_64. Testing done in 2011 by Tom Lane concluded that this is a win on Intel Xeons and AMD Opterons, but it was not changed back then, because of an old comment in tas() that suggested that it's a huge loss on older Opterons. However, didn't have separate TAS() and TAS_SPIN() macros back then, so the comment referred to doing a non-locked initial test even on the first access, in uncontended case. I don't have access to older Opterons, but I'm pretty sure that doing an initial unlocked test is unlikely to be a loss while spinning, even though it might be for the first access. We probably should do the same on 32-bit x86, but I'm afraid of changing it without any testing. Hence just add a note to the x86 implementation suggesting that we probably should do the same there. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/b03d196be055450c7260749f17347c2d066b4254 Modified Files -------------- src/include/storage/s_lock.h | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-)
В списке pgsql-committers по дате отправления: