ISM shared memory on solaris - Mailing list pgsql-bugs

From Josh Wilmes
Subject ISM shared memory on solaris
Date
Msg-id 3F983AAF.2060000@cisco.com
Whole thread Raw
Responses Re: ISM shared memory on solaris
List pgsql-bugs
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



pgsql-bugs by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: currval and nextval in 7.3.4
Next
From: j6m@adm.estp.fr
Date:
Subject: Re: currval and nextval in 7.3.4