I hope this is the right place to send this.. the FAQ in the distribution mentions http://www.PostgreSQL.org/bugs/bugs.php, which doesn't work.

We've found that postgresql wasn't using ISM shared memory on solaris, which theoretically would cost performance. The root cause in our case was that the "solaris" define is not defined by our compilers or by postgresql itself.

The patch below simple has it check SHM_SHARE_MMU instead, which should work fine. I verified (with 'pmap') that the database is now using ISM on its shared memory, after this patch was applied.

--Josh



--- sysv_shmem.c.orig   2002-09-04 13:31:24.000000000 -0700
+++ sysv_shmem.c        2003-10-23 12:52:26.756765000 -0700
@@ -143,7 +143,7 @@
        on_shmem_exit(IpcMemoryDelete, Int32GetDatum(shmid));

/* OK, should be able to attach to the segment */
-#if defined(solaris) && defined(__sparc__)
+#if defined(SHM_SHARE_MMU) && defined(__sparc__)
/* use intimate shared memory on SPARC Solaris */
memAddress = shmat(shmid, 0, SHM_SHARE_MMU);
#else
@@ -323,8 +323,8 @@
shmid = shmget(NextShmemSegID, sizeof(PGShmemHeader), 0);
if (shmid < 0)
continue; /* failed: must be some other app's */
-
-#if defined(solaris) && defined(__sparc__)
+
+#if defined(SHM_SHARE_MMU) && defined(__sparc__)
/* use intimate shared memory on SPARC Solaris */
memAddress = shmat(shmid, 0, SHM_SHARE_MMU);
#else




---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
     subscribe-nomail command to [EMAIL PROTECTED] so that your
     message can get through to the mailing list cleanly

Reply via email to