Trust signalfd on illumos, again.
authorThomas Munro <[email protected]>
Sun, 2 Jul 2023 03:23:28 +0000 (15:23 +1200)
committerThomas Munro <[email protected]>
Sun, 2 Jul 2023 03:28:48 +0000 (15:28 +1200)
Commit 3ab4fc5d avoided choosing signalfd by default on illumos, because
it triggered kernel panics.  That was fixed, so we can remove a kludge
from our code.  Users/packagers can still override the default choice at
compile time if desired, and we'll leave the back-branches unchanged so
they keep choosing self-pipe by default, but we'll default to signalfd
(like we do for Linux) in 17.  Fixed kernels should be everywhere by the
time 17 ships.

The illumos issues were:

 * https://www.illumos.org/issues/13700
 * https://www.illumos.org/issues/14892

Discussion: https://postgr.es/m/CA+hUKG+NK-K_G_i1H3OpDTwYPEsiwQi_jw58PGcW2H+-N2eVCA@mail.gmail.com

src/backend/storage/ipc/latch.c

index cdb95c1931add95c9d9ce0d9da73c17727e0b711..db889385b773a0d3bcd3d16a173fffb558eed2e9 100644 (file)
 
 /*
  * By default, we use a self-pipe with poll() and a signalfd with epoll(), if
- * available.  We avoid signalfd on illumos for now based on problem reports.
- * For testing the choice can also be manually specified.
+ * available.  For testing the choice can also be manually specified.
  */
 #if defined(WAIT_USE_POLL) || defined(WAIT_USE_EPOLL)
 #if defined(WAIT_USE_SELF_PIPE) || defined(WAIT_USE_SIGNALFD)
 /* don't overwrite manual choice */
-#elif defined(WAIT_USE_EPOLL) && defined(HAVE_SYS_SIGNALFD_H) && \
-       !defined(__illumos__)
+#elif defined(WAIT_USE_EPOLL) && defined(HAVE_SYS_SIGNALFD_H)
 #define WAIT_USE_SIGNALFD
 #else
 #define WAIT_USE_SELF_PIPE