hugetlb.diff

text/x-patch

Filename: hugetlb.diff
Type: text/x-patch
Part: 0
Message: Re: Posix Shared Mem patch

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
File+
src/backend/port/sysv_shmem.c 5 1
diff --git a/src/backend/port/sysv_shmem.c b/src/backend/port/sysv_shmem.c
index e040400..05bbdf6 100644
--- a/src/backend/port/sysv_shmem.c
+++ b/src/backend/port/sysv_shmem.c
@@ -54,7 +54,7 @@ typedef int IpcMemoryId;		/* shared memory ID returned by shmget(2) */
 #define MAP_HASSEMAPHORE		0
 #endif
 
-#define	PG_MMAP_FLAGS			(MAP_SHARED|MAP_ANONYMOUS|MAP_HASSEMAPHORE)
+#define	PG_MMAP_FLAGS			(MAP_SHARED|MAP_ANONYMOUS|MAP_HASSEMAPHORE|MAP_HUGETLB)
 
 /* Some really old systems don't define MAP_FAILED. */
 #ifndef MAP_FAILED
@@ -407,6 +407,10 @@ PGSharedMemoryCreate(Size size, bool makePrivate, int port)
 	{
 		long	pagesize = sysconf(_SC_PAGE_SIZE);
 
+		/* round up to hugetlb size on x86-64 linux */
+		if(pagesize < (1024*2048))
+			pagesize = 1024*2048;
+
 		/*
 		 * Ensure request size is a multiple of pagesize.
 		 *