Re: ISM shared memory on solaris

From: Josh Wilmes <jwilmes(at)cisco(dot)com>
To: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org, pgsql-patches(at)postgresql(dot)org, Nick Johnson <njohnson(at)cisco(dot)com>
Subject: Re: ISM shared memory on solaris
Date: 2003-10-24 16:01:25
Message-ID: 3F994CD5.6080604@cisco.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-patches

Nope, __solaris__ is not defined on our system either.

--Josh

Bruce Momjian wrote:

> Yikes! We thought we were already using ISM on Solaris.
>
> Would you test the attached patch? It uses _solaris_ rather than
> SHM_SHARE_MMU in the define test. Does that work too?
>
> ---------------------------------------------------------------------------
>
> Josh Wilmes wrote:
>
>>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 majordomo(at)postgresql(dot)org so that your
>> message can get through to the mailing list cleanly
>>
>
>
>
> ------------------------------------------------------------------------
>
> Index: src/backend/port/sysv_shmem.c
> ===================================================================
> RCS file: /cvsroot/pgsql-server/src/backend/port/sysv_shmem.c,v
> retrieving revision 1.21
> diff -c -c -r1.21 sysv_shmem.c
> *** src/backend/port/sysv_shmem.c 13 Oct 2003 22:47:15 -0000 1.21
> --- src/backend/port/sysv_shmem.c 24 Oct 2003 15:46:03 -0000
> ***************
> *** 133,139 ****
> on_shmem_exit(IpcMemoryDelete, Int32GetDatum(shmid));
>
> /* OK, should be able to attach to the segment */
> ! #if defined(solaris) && defined(__sparc__)
> /* use intimate shared memory on SPARC Solaris */
> memAddress = shmat(shmid, 0, SHM_SHARE_MMU);
> #else
> --- 133,139 ----
> on_shmem_exit(IpcMemoryDelete, Int32GetDatum(shmid));
>
> /* OK, should be able to attach to the segment */
> ! #if defined(__solaris__) && defined(__sparc__)
> /* use intimate shared memory on SPARC Solaris */
> memAddress = shmat(shmid, 0, SHM_SHARE_MMU);
> #else
> ***************
> *** 352,358 ****
>
> hdr = (PGShmemHeader *) shmat(*shmid,
> UsedShmemSegAddr,
> ! #if defined(solaris) && defined(__sparc__)
> /* use intimate shared memory on Solaris */
> SHM_SHARE_MMU
> #else
> --- 352,358 ----
>
> hdr = (PGShmemHeader *) shmat(*shmid,
> UsedShmemSegAddr,
> ! #if defined(__solaris__) && defined(__sparc__)
> /* use intimate shared memory on Solaris */
> SHM_SHARE_MMU
> #else

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bruce Momjian 2003-10-24 16:16:28 Re: ISM shared memory on solaris
Previous Message Bruce Momjian 2003-10-24 15:47:36 Re: ISM shared memory on solaris

Browse pgsql-patches by date

  From Date Subject
Next Message Bruce Momjian 2003-10-24 16:16:28 Re: ISM shared memory on solaris
Previous Message Bruce Momjian 2003-10-24 15:47:36 Re: ISM shared memory on solaris