huge_pages_log_v7.diff
application/octet-stream
Filename: huge_pages_log_v7.diff
Type: application/octet-stream
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
Series: patch v7
| File | + | − |
|---|---|---|
| src/backend/port/sysv_shmem.c | 5 | 1 |
| src/backend/port/win32_shmem.c | 3 | 0 |
diff --git a/src/backend/port/sysv_shmem.c b/src/backend/port/sysv_shmem.c
index e7474ce..fdf343b 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 */
@@ -611,6 +612,8 @@ CreateAnonymousSegment(Size *size)
if (huge_pages == HUGE_PAGES_TRY && ptr == MAP_FAILED)
elog(DEBUG1, "mmap(%zu) with MAP_HUGETLB failed, huge pages disabled: %m",
allocsize);
+ else
+ with_hugepages = true;
}
#endif
@@ -639,7 +642,8 @@ CreateAnonymousSegment(Size *size)
"memory usage, perhaps by reducing shared_buffers or "
"max_connections.",
allocsize) : 0));
- }
+ } else if (!with_hugepages && huge_pages == HUGE_PAGES_TRY)
+ 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..04c242a 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)
+ ereport(LOG, (errmsg("Anonymous shared memory was allocated without huge pages.")));
+
*shim = hdr;
return hdr;
}