diff --git a/src/backend/port/sysv_shmem.c b/src/backend/port/sysv_shmem.c index e7474ce..43c615f 100644 --- a/src/backend/port/sysv_shmem.c +++ b/src/backend/port/sysv_shmem.c @@ -587,6 +587,7 @@ CreateAnonymousSegment(Size *size) Size allocsize = *size; void *ptr = MAP_FAILED; int mmap_errno = 0; + bool with_hugepages = false; #ifndef MAP_HUGETLB /* PGSharedMemoryCreate should have dealt with this case */ @@ -608,9 +609,14 @@ CreateAnonymousSegment(Size *size) ptr = mmap(NULL, allocsize, PROT_READ | PROT_WRITE, PG_MMAP_FLAGS | mmap_flags, -1, 0); mmap_errno = errno; - if (huge_pages == HUGE_PAGES_TRY && ptr == MAP_FAILED) - elog(DEBUG1, "mmap(%zu) with MAP_HUGETLB failed, huge pages disabled: %m", - allocsize); + if (ptr == MAP_FAILED) + { + if (huge_pages == HUGE_PAGES_TRY) + elog(DEBUG1, "mmap(%zu) with MAP_HUGETLB failed, huge pages disabled: %m", + allocsize); + } + else + with_hugepages = true; } #endif @@ -639,7 +645,10 @@ CreateAnonymousSegment(Size *size) "memory usage, perhaps by reducing shared_buffers or " "max_connections.", allocsize) : 0)); - } + } + + if (!with_hugepages && huge_pages == HUGE_PAGES_TRY && IsPostmasterEnvironment) + ereport(LOG, errmsg("anonymous shared memory was allocated without huge pages")); *size = allocsize; return ptr; diff --git a/src/backend/port/win32_shmem.c b/src/backend/port/win32_shmem.c index 64fde8d..a1d7f99 100644 --- a/src/backend/port/win32_shmem.c +++ b/src/backend/port/win32_shmem.c @@ -390,6 +390,9 @@ retry: /* Register on-exit routine to delete the new segment */ on_shmem_exit(pgwin32_SharedMemoryDelete, PointerGetDatum(hmap2)); + if (!(flProtect & SEC_LARGE_PAGES) && huge_pages == HUGE_PAGES_TRY && IsPostmasterEnvironment) + ereport(LOG, errmsg("anonymous shared memory was allocated without huge pages")); + *shim = hdr; return hdr; }