Re: BUG #2406: Not all systems support SHM_SHARE_MMU - Mailing list pgsql-bugs

From Paul van der Zwan
Subject Re: BUG #2406: Not all systems support SHM_SHARE_MMU
Date
Msg-id 9AC81D3F-10F3-4F0A-9057-FC82F35658F1@Sun.COM
Whole thread Raw
In response to Re: BUG #2406: Not all systems support SHM_SHARE_MMU  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
On 25-apr-2006, at 16:46, Tom Lane wrote:

> Paul van der Zwan <Paul.Vanderzwan@Sun.COM> writes:
>> AFAIK getpagesizes() appeared in 2001 so that probably means it is
>> missing in anything before Solaris 9.
>
> We could handle this without relying on getpagesizes() by just trying
> and falling back:
>
> #ifdef SHM_SHARE_MMU
>     memAddress = shmat(shmid, addr, SHM_SHARE_MMU);
>     if (memAddress == (void *) -1 && errno == EINVAL)
>         memAddress = shmat(shmid, addr, 0);
> #else
>     memAddress = shmat(shmid, addr, 0);
> #endif
>
That would be a clean solution ( and was suggested by some of my
colleagues as well)

> However, I would argue that a system is pretty broken if it exposes
> the
> SHM_SHARE_MMU #define and then rejects it at runtime.

It is just a define, the fact that this define exists has nothing to
do with it having
any meaning. It's not like a HAVE_ISM flag. shmat() can fail for a
number of reasons, one of
them is not having ISM available on the current system.

>
>> I'll see if I can get the x86 experts here to have a look at it...
>
> I think either Solaris/x86 should not expose this #define, or it
> should
> silently ignore the bit at runtime.  AFAICS, SHM_SHARE_MMU has no
> guaranteed semantic effect anyway, it's just a performance hint; so
> ignoring it on platforms that can't handle it is reasonable.
>
I disagree, I have no definite info  why it is a hard failure,
probably because
there is no way to communicate to the app that it's request is
ignored. System calls
either fail or succeed. And introducing a new errno value just for
this is overkill, I guess.
>             regards, tom lane

Regards
    Paul

pgsql-bugs by date:

Previous
From: "Anjali Arora"
Date:
Subject: Error in returning setof records
Next
From: Paul van der Zwan
Date:
Subject: Re: BUG #2406: Not all systems support SHM_SHARE_MMU