]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Report time spent in posix_fallocate() as a wait event.
authorThomas Munro <tmunro@postgresql.org>
Fri, 31 Jan 2020 04:21:47 +0000 (17:21 +1300)
committerThomas Munro <tmunro@postgresql.org>
Fri, 31 Jan 2020 04:29:41 +0000 (17:29 +1300)
When allocating DSM segments with posix_fallocate() on Linux (see commit
899bd785), report this activity as a wait event exactly as we would if
we were using file-backed DSM rather than shm_open()-backed DSM.

Author: Thomas Munro
Discussion: https://postgr.es/m/CA%2BhUKGKCSh4GARZrJrQZwqs5SYp0xDMRr9Bvb%2BHQzJKvRgL6ZA%40mail.gmail.com

src/backend/storage/ipc/dsm_impl.c

index 3f7a8a4fa08cc34ba06c37c99c536421cde70dfb..138bdec47e9696a0af95ffd32854782327780221 100644 (file)
@@ -371,10 +371,12 @@ dsm_impl_posix_resize(int fd, off_t size)
                 * interrupt pending.  This avoids the possibility of looping forever
                 * if another backend is repeatedly trying to interrupt us.
                 */
+               pgstat_report_wait_start(WAIT_EVENT_DSM_FILL_ZERO_WRITE);
                do
                {
                        rc = posix_fallocate(fd, 0, size);
                } while (rc == EINTR && !(ProcDiePending || QueryCancelPending));
+               pgstat_report_wait_end();
 
                /*
                 * The caller expects errno to be set, but posix_fallocate() doesn't