postgresql/src/include
Andres Freund 008608b9d5 Avoid the use of a separate spinlock to protect a LWLock's wait queue.
Previously we used a spinlock, in adition to the atomically manipulated
->state field, to protect the wait queue. But it's pretty simple to
instead perform the locking using a flag in state.

Due to 6150a1b0 BufferDescs, on platforms (like PPC) with > 1 byte
spinlocks, increased their size above 64byte. As 64 bytes are the size
we pad allocated BufferDescs to, this can increase false sharing;
causing performance problems in turn. Together with the previous commit
this reduces the size to <= 64 bytes on all common platforms.

Author: Andres Freund
Discussion: CAA4eK1+ZeB8PMwwktf+3bRS0Pt4Ux6Rs6Aom0uip8c6shJWmyg@mail.gmail.com
    20160327121858.zrmrjegmji2ymnvr@alap3.anarazel.de
2016-04-10 20:12:32 -07:00
..
access Get rid of GenericXLogUnregister(). 2016-04-09 16:39:30 -04:00
bootstrap Update copyright for 2016 2016-01-02 13:33:40 -05:00
catalog Create default roles 2016-04-08 16:56:27 -04:00
commands Support ALTER THING .. DEPENDS ON EXTENSION 2016-04-05 18:38:54 -03:00
common Avoid PGDLLIMPORT for simple local references in frontend programs. 2016-03-23 23:26:44 -04:00
datatype Be more careful about out-of-range dates and timestamps. 2016-03-16 19:09:28 -04:00
executor Rework custom scans to work more like the new extensible node stuff. 2016-03-29 11:28:04 -04:00
fe_utils Support \crosstabview in psql 2016-04-08 20:23:18 -03:00
foreign Don't require a user mapping for FDWs to work. 2016-03-28 21:50:28 -04:00
lib Add two HyperLogLog functions 2016-01-19 17:40:15 -03:00
libpq Add authentication parameters compat_realm and upn_usename for SSPI 2016-04-08 20:28:38 +02:00
mb Update copyright for 2016 2016-01-02 13:33:40 -05:00
nodes Expose more out/readfuncs support functions. 2016-04-08 14:26:36 -07:00
optimizer Use Foreign Key relationships to infer multi-column join selectivity 2016-04-08 02:51:09 +01:00
parser Support ALTER THING .. DEPENDS ON EXTENSION 2016-04-05 18:38:54 -03:00
port Call xlc __isync() after, not before, associated compare-and-swap. 2016-02-19 22:47:50 -05:00
portability Update copyright for 2016 2016-01-02 13:33:40 -05:00
postmaster Allow Pin/UnpinBuffer to operate in a lockfree manner. 2016-04-10 20:12:32 -07:00
regex Suppress compiler warnings about useless comparison of unsigned to zero. 2016-02-15 17:12:16 -05:00
replication Generic Messages for Logical Decoding 2016-04-06 10:05:41 +01:00
rewrite Update copyright for 2016 2016-01-02 13:33:40 -05:00
snowball Update copyright for 2016 2016-01-02 13:33:40 -05:00
storage Avoid the use of a separate spinlock to protect a LWLock's wait queue. 2016-04-10 20:12:32 -07:00
tcop Widen query numbers-of-tuples-processed counters to uint64. 2016-03-12 16:05:29 -05:00
tsearch Restore original tsquery operation numbering. 2016-04-08 20:11:30 +03:00
utils Reserve the "pg_" namespace for roles 2016-04-08 16:56:27 -04:00
.gitignore Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
c.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
fmgr.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
funcapi.h Widen query numbers-of-tuples-processed counters to uint64. 2016-03-12 16:05:29 -05:00
getaddrinfo.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
getopt_long.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
Makefile Create src/fe_utils/, and move stuff into there from pg_dump's dumputils. 2016-03-24 15:55:57 -04:00
miscadmin.h Use quicksort, not replacement selection, for external sorting. 2016-04-08 02:36:26 -04:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_ext.h.win32 Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Change the way that LWLocks for extensions are allocated. 2016-02-04 16:43:04 -05:00
pg_config.h.in Add BSD authentication method. 2016-04-08 13:52:06 -04:00
pg_config.h.win32 Add BSD authentication method. 2016-04-08 13:52:06 -04:00
pg_getopt.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
pg_trace.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
pgstat.h Add simple VACUUM progress reporting. 2016-03-15 13:32:56 -04:00
pgtar.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
pgtime.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
port.h On all Windows platforms, not just Cygwin, use _timezone and _tzname. 2016-03-28 20:59:25 -04:00
postgres_ext.h pgindent run for 9.4 2014-05-06 12:12:18 -04:00
postgres_fe.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
postgres.h Widen query numbers-of-tuples-processed counters to uint64. 2016-03-12 16:05:29 -05:00
rusagestub.h Update copyright for 2016 2016-01-02 13:33:40 -05:00
windowapi.h Update copyright for 2016 2016-01-02 13:33:40 -05:00