ISM shared memory on solaris
От | Josh Wilmes |
---|---|
Тема | ISM shared memory on solaris |
Дата | |
Msg-id | 3F983AAF.2060000@cisco.com обсуждение исходный текст |
Ответы |
Re: ISM shared memory on solaris
|
Список | 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 по дате отправления: