From: Thomas Munro Date: Sun, 2 Jul 2023 03:23:28 +0000 (+1200) Subject: Trust signalfd on illumos, again. X-Git-Url: http://git.postgresql.org/gitweb/-?a=commitdiff_plain;h=4f49b3f8497d5c8c3cc06eb32942c13b8ee7209e;p=users%2Frhaas%2Fpostgres.git Trust signalfd on illumos, again. 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 --- diff --git a/src/backend/storage/ipc/latch.c b/src/backend/storage/ipc/latch.c index cdb95c1931..db889385b7 100644 --- a/src/backend/storage/ipc/latch.c +++ b/src/backend/storage/ipc/latch.c @@ -86,14 +86,12 @@ /* * 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