diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml
index 4549c2560e3..f2066e5f0f5 100644
--- a/doc/src/sgml/monitoring.sgml
+++ b/doc/src/sgml/monitoring.sgml
@@ -1296,6 +1296,11 @@ postgres 27093 0.0 0.0 30096 2752 ? Ss 11:34 0:00 postgres: ser
CopyFileWrite
Waiting for a write during a file copy operation.
+
+ DSMAllocate
+ Waiting for a dynamic shared memory segment to be
+ allocated.
+
DSMFillZeroWrite
Waiting to fill a dynamic shared memory backing file with
diff --git a/src/backend/storage/ipc/dsm_impl.c b/src/backend/storage/ipc/dsm_impl.c
index 6f21a757758..258d47bcfac 100644
--- a/src/backend/storage/ipc/dsm_impl.c
+++ b/src/backend/storage/ipc/dsm_impl.c
@@ -364,7 +364,7 @@ dsm_impl_posix_resize(int fd, off_t size)
*/
PG_SETMASK(&BlockSig);
- pgstat_report_wait_start(WAIT_EVENT_DSM_FILL_ZERO_WRITE);
+ pgstat_report_wait_start(WAIT_EVENT_DSM_ALLOCATE);
#if defined(HAVE_POSIX_FALLOCATE) && defined(__linux__)
/*
* On Linux, a shm_open fd is backed by a tmpfs file. If we were to use
diff --git a/src/backend/utils/activity/wait_event.c b/src/backend/utils/activity/wait_event.c
index 87c15b9c6f3..da57a93034e 100644
--- a/src/backend/utils/activity/wait_event.c
+++ b/src/backend/utils/activity/wait_event.c
@@ -585,6 +585,9 @@ pgstat_get_wait_io(WaitEventIO w)
case WAIT_EVENT_DATA_FILE_WRITE:
event_name = "DataFileWrite";
break;
+ case WAIT_EVENT_DSM_ALLOCATE:
+ event_name = "DSMAllocate";
+ break;
case WAIT_EVENT_DSM_FILL_ZERO_WRITE:
event_name = "DSMFillZeroWrite";
break;
diff --git a/src/include/utils/wait_event.h b/src/include/utils/wait_event.h
index b578e2ec757..c3ade011206 100644
--- a/src/include/utils/wait_event.h
+++ b/src/include/utils/wait_event.h
@@ -178,6 +178,7 @@ typedef enum
WAIT_EVENT_DATA_FILE_SYNC,
WAIT_EVENT_DATA_FILE_TRUNCATE,
WAIT_EVENT_DATA_FILE_WRITE,
+ WAIT_EVENT_DSM_ALLOCATE,
WAIT_EVENT_DSM_FILL_ZERO_WRITE,
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ,
WAIT_EVENT_LOCK_FILE_ADDTODATADIR_SYNC,