From: | Paul van der Zwan <Paul(dot)Vanderzwan(at)Sun(dot)COM> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #2406: Not all systems support SHM_SHARE_MMU |
Date: | 2006-04-25 18:23:47 |
Message-ID: | 9AC81D3F-10F3-4F0A-9057-FC82F35658F1@Sun.COM |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On 25-apr-2006, at 16:46, Tom Lane wrote:
> Paul van der Zwan <Paul(dot)Vanderzwan(at)Sun(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-04-25 18:34:41 | Re: BUG #2406: Not all systems support SHM_SHARE_MMU |
Previous Message | Tom Lane | 2006-04-25 14:46:45 | Re: BUG #2406: Not all systems support SHM_SHARE_MMU |