Re: xlc atomics
Noah Misch <noah@leadboat.com>
From: Noah Misch <noah@leadboat.com>
To: Andres Freund <andres@anarazel.de>
Cc: Robert Haas <robertmhaas@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>,
Peter Geoghegan <pg@heroku.com>, Pg Hackers <pgsql-hackers@postgresql.org>,
Ants Aasma <ants@cybertec.at>
Date: 2015-07-05T00:07:49Z
Lists: pgsql-hackers
Attachments
- prefer-xlc-v1.patch (text/plain) patch v1
On Sun, Jul 05, 2015 at 12:54:43AM +0200, Andres Freund wrote: > On 2015-07-04 18:40:41 -0400, Noah Misch wrote: > > (1) "IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72)". Getting it working > > required the attached patch. > Will you apply? Having the ability to test change seems to put you in a > much better spot then me. I will. > > (2) "IBM XL C/C++ for Linux, V13.1.2 (5725-C73, 5765-J08)" for ppc64le, > > http://www-01.ibm.com/support/docview.wss?uid=swg27044056&aid=1. This > > compiler has a Clang-derived C frontend. It defines __GNUC__ and offers > > GCC-style __sync_* atomics. > > Phew. I don't see much reason to try to support this. Why would that be > interesting? > > > Therefore, PostgreSQL selects generic-gcc.h. > > test_atomic_ops() fails because __sync_lock_test_and_set() of one-byte types > > segfaults at runtime. I have reported this to the vendor. Adding > > "pgac_cv_gcc_sync_char_tas=no" to the "configure" invocation is a good > > workaround. I could add a comment about that to src/test/regress/sql/lock.sql > > for affected folks to see in regression.diffs. To do better, we could make > > PGAC_HAVE_GCC__SYNC_CHAR_TAS perform a runtime test where possible. Yet > > another option is to force use of generic-xlc.h on this compiler. > > It seems fair enough to simply add another test and include > generic-xlc.h in that case. If it's indeed xlc, why not? Works for me. I'll do that as attached.
Commits
-
Avoid the use of a separate spinlock to protect a LWLock's wait queue.
- 008608b9d510 9.6.0 cited
-
Improve LWLock scalability.
- ab5194e6f617 9.5.0 cited
-
Reduce the number of semaphores used under --disable-spinlocks.
- daa7527afc22 9.4.0 cited
-
Alter the configure script to fail immediately if the C compiler does not
- d15cb38dec01 9.0.0 cited