diff --git a/src/backend/port/sysv_shmem.c b/src/backend/port/sysv_shmem.c
index 9de96ed..2ac3b41 100644
--- a/src/backend/port/sysv_shmem.c
+++ b/src/backend/port/sysv_shmem.c
@@ -479,9 +479,10 @@ PGSharedMemoryAttach(IpcMemoryId shmId,
  * and the hugepage-related mmap flags to use into *mmap_flags.
  */
 static void
-GetHugePageSize(Size *hugepagesize, int *mmap_flags)
+GetHugePageSize(Size *hugepagesize, int *mmap_flags, unsigned int *total_pages)
 {
 	Size		default_hugepagesize = 0;
+	*total_pages = 0;
 
 	/*
 	 * System-dependent code to find out the default huge page size.
@@ -495,6 +496,7 @@ GetHugePageSize(Size *hugepagesize, int *mmap_flags)
 		FILE	   *fp = AllocateFile("/proc/meminfo", "r");
 		char		buf[128];
 		unsigned int sz;
+		unsigned int pg;
 		char		ch;
 
 		if (fp)
@@ -506,10 +508,13 @@ GetHugePageSize(Size *hugepagesize, int *mmap_flags)
 					if (ch == 'k')
 					{
 						default_hugepagesize = sz * (Size) 1024;
-						break;
 					}
 					/* We could accept other units besides kB, if needed */
 				}
+				else if (sscanf(buf, "HugePages_Total: %u", &pg) == 1)
+				{
+					*total_pages = pg;
+				}
 			}
 			FreeFile(fp);
 		}
@@ -582,8 +587,9 @@ CreateAnonymousSegment(Size *size)
 		 */
 		Size		hugepagesize;
 		int			mmap_flags;
+		unsigned int	total_pages;
 
-		GetHugePageSize(&hugepagesize, &mmap_flags);
+		GetHugePageSize(&hugepagesize, &mmap_flags, &total_pages);
 
 		if (allocsize % hugepagesize != 0)
 			allocsize += hugepagesize - (allocsize % hugepagesize);
@@ -592,8 +598,9 @@ CreateAnonymousSegment(Size *size)
 				   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);
+			ereport((total_pages == 0) ? DEBUG3 : LOG,
+					(errmsg("fall back anonymous shared memory to non-huge "
+						"pages: required %zu bytes for huge pages", allocsize)));
 	}
 #endif
 
diff --git a/src/backend/port/win32_shmem.c b/src/backend/port/win32_shmem.c
index d7a7199..9a9e98a 100644
--- a/src/backend/port/win32_shmem.c
+++ b/src/backend/port/win32_shmem.c
@@ -293,9 +293,9 @@ retry:
 				huge_pages == HUGE_PAGES_TRY &&
 				(flProtect & SEC_LARGE_PAGES) != 0)
 			{
-				elog(DEBUG1, "CreateFileMapping(%zu) with SEC_LARGE_PAGES failed, "
-					 "huge pages disabled",
-					 size);
+				ereport(LOG,
+						(errmsg("fall back anonymous shared memory to non-huge "
+							"pages: required %zu bytes for huge pages", size)));
 
 				/*
 				 * Use the original size, not the rounded-up value, when
