Re: postgres has no spinlock support on riscv rv64imafdc

From: Andres Freund <andres(at)anarazel(dot)de>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Henry <rrh(dot)henry(at)gmail(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: postgres has no spinlock support on riscv rv64imafdc
Date: 2019-12-12 21:59:27
Message-ID: 20191212215927.iixg2s42gq47swqr@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

On 2019-10-20 00:23:07 -0400, Tom Lane wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > On 2019-10-18 09:00:23 +0200, Tom Lane wrote:
> >> TBH, though, my preference would be for some assembly code rather than
> >> relying on GCC builtins as Richard's patch did.
>
> > -1. I think there's good arguments for using inline assembly on
> > platforms where we've done so historically, and where we have to support
> > old compilers without good support for intrinsics/builtins. But I see
> > very little reason for adding more such cases for newer platforms -
> > doing so correctly and efficiently is substantial work and fragile.
>
> The reason I'm skeptical of that line of argument is that gcc's track
> record for support of these intrinsics on non-mainstream architectures
> is just sucky. Now maybe, somebody was careful and it all works great
> on RISC-V. But IMO, the burden of proof is to show that the intrinsics
> work, not to show that they don't.

I agree there've been problems. But I don't think one can make a lot of
conclusions from the intrinsics quality for dying platforms when judging
new platforms. Most if not all new platforms with a gcc port that PG
would be run on are going to be multi-core platforms - if intrinsics are
broken, there'll be more problems. Furthermore, we're fully exposed to
the intrinsics quality due to atomics anyway - a lot more even, because
there's a shrinking amount of contended spinlocks, and a lot more
contended lwlocks etc (which use atomics). And lastly, our spinlock
implementations have been far from perfect too.

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Serdar Başyiğit 2019-12-12 23:15:33 ltrim function
Previous Message Andres Freund 2019-12-12 21:37:09 Re: REINDEX CONCURRENTLY unexpectedly fails