Re: problems on Solaris

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Stefan Kaltenbrunner <stefan(at)kaltenbrunner(dot)cc>, Andrew Dunstan <andrew(at)dunslane(dot)net>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Dave Page <dpage(at)pgadmin(dot)org>
Subject: Re: problems on Solaris
Date: 2015-05-31 12:00:44
Message-ID: CA+TgmoZJ0VKcOAUMKrv7Jvtm_ELrLLaBj9_OH0OZXSh4uAWcBQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, May 30, 2015 at 7:09 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:
> On 2015-05-27 21:23:34 -0400, Robert Haas wrote:
>> > Oh wow, that's bad, and could explain a couple of the problems we're
>> > seing. One possible way to fix is to replace the sequence with if
>> > (!TAS(spin)) S_UNLOCK();. But that'd mean TAS() has to be a barrier,
>> > even if the lock isn't free - which e.g. isn't the case for PowerPC's
>> > implementation :(
>>
>> Another possibility is to make the fallback barrier implementation a
>> system call, like maybe kill(PostmasterPid, 0).
>
> It's not necessarily true that all system calls are effective
> barriers. I'm e.g. doubtful that kill(..., 0) is one as it only performs
> local error checking. It might be that the process existance check
> includes a lock that's sufficient, but I would not like to rely on
> it. Sending an actual signal probably would be, but has the potential of
> disrupting postmaster progress.

So pick a better system call?

> I think we should just bite the bullet and require a barrier
> implementation for all architectures that have spinlock support. That
> should be fairly straightforward, even though distinctly unpleasurable,
> exercise. And then use semaphores (PGSemaphoreUnlock();PGSemaphoreLock()
> doesn't have the issue that spinlocks have) for --disable-spinlock
> platforms.

Like maybe this.

> If people agree with that way forward, I'll go through the
> platforms. The biggest one missing is probably solaris with sun's
> compiler.

Certainly, having real barriers everywhere would be great.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2015-05-31 13:50:25 Re: [CORE] postpone next week's release
Previous Message Robert Haas 2015-05-31 11:58:29 Re: Join Filter vs. Index Cond (performance regression 9.1->9.2+/HEAD)